"""
Contrat d'interface abstraite pour les moteurs de transcription vocale (STT / ASR).
"""
from abc import ABC, abstractmethod
import numpy as np
[docs]
class BaseStt(ABC):
"""
Interface abstraite pour les moteurs STT (Speech-to-Text) locaux.
Definit les operations de pre-chauffage et de transcription des signaux audio.
"""
[docs]
@abstractmethod
def warmUp(self) -> None:
"""
Pre-chauffe le moteur STT pour eliminer la latence du premier appel.
"""
[docs]
@abstractmethod
def transcribe(
self,
audioArray: np.ndarray,
language: str = "fr",
initialPrompt: str = "Bonjour Mirza.",
) -> str:
"""
Transcrit un tableau d'echantillons audio 16kHz en texte.
Parameters
----------
audioArray : np.ndarray
Echantillons audio monocanal a 16000 Hz au format float32.
language : str, optional
Code langue ISO (defaut: "fr").
initialPrompt : str, optional
Prompt initial pour conditionner le contexte acoustique (defaut: "Bonjour Mirza.").
Returns
-------
str
Texte transcrit nettoye.
"""
[docs]
def unload(self) -> None:
"""
Libere le modele en memoire.
Par defaut sans effet : un moteur qui ne detient aucun poids local
(synthese cloud) n'a rien a liberer.
"""
return None
@property
def isLoaded(self) -> bool:
"""
Indique si des poids resident actuellement en memoire.
Vrai par defaut : un moteur sans etat local (synthese cloud) n'a rien
a charger.
"""
return True