first commit
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
"""STT-модуль: речь → текст.
|
||||
|
||||
Использование из других модулей:
|
||||
|
||||
from modules.stt import get_provider
|
||||
|
||||
stt = get_provider("faster-whisper", model_size="small")
|
||||
result = stt.transcribe("phrase.wav")
|
||||
print(result.text)
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
from .base import SAMPLE_RATE, AudioInput, SttProvider, TranscriptResult
|
||||
from .provider_faster_whisper import FasterWhisperProvider
|
||||
|
||||
__all__ = [
|
||||
"SAMPLE_RATE",
|
||||
"AudioInput",
|
||||
"SttProvider",
|
||||
"TranscriptResult",
|
||||
"FasterWhisperProvider",
|
||||
"get_provider",
|
||||
]
|
||||
|
||||
_PROVIDERS = {
|
||||
FasterWhisperProvider.name: FasterWhisperProvider,
|
||||
# "vosk" добавим, если faster-whisper окажется тяжёлым для ПК отца (замер в Модуле 1)
|
||||
}
|
||||
|
||||
|
||||
def get_provider(name: str, **kwargs) -> SttProvider:
|
||||
"""Фабрика провайдеров по имени (выбор из конфига)."""
|
||||
try:
|
||||
provider_cls = _PROVIDERS[name]
|
||||
except KeyError:
|
||||
raise ValueError(
|
||||
f"Неизвестный STT-провайдер: {name!r}. Доступны: {sorted(_PROVIDERS)}"
|
||||
) from None
|
||||
return provider_cls(**kwargs)
|
||||
Reference in New Issue
Block a user