|
|
from abc import ABC, abstractmethod |
|
|
from enum import Enum |
|
|
|
|
|
|
|
|
class AbstractASRModel(ABC): |
|
|
def __init__(self, device='cpu'): |
|
|
self.device = device |
|
|
self.name = "AbstractASRModel" |
|
|
|
|
|
@abstractmethod |
|
|
def load(self, model_dir, language): |
|
|
raise NotImplementedError |
|
|
|
|
|
@abstractmethod |
|
|
def transcribe(self, wav, language): |
|
|
raise NotImplementedError |
|
|
|
|
|
|
|
|
class ModelName(Enum): |
|
|
WHISPER = "whisper" |
|
|
WHISPER_FINETUNED = "whisper_finetuned" |
|
|
FUNASR_NANO = "funasr_nano" |
|
|
FUNASR_MLT_NANO = "funasr_mlt_nano" |
|
|
FUNASR_QUANT = "funasr_quant" |
|
|
|