28 lines
814 B
Python
28 lines
814 B
Python
"""Transcription par MLX-Whisper — GPU Apple Silicon uniquement."""
|
|
import numpy as np
|
|
|
|
from core import clean_transcript
|
|
|
|
|
|
class TranscripteurMLX:
|
|
"""Implémentation du contrat Transcripteur pour Apple Silicon."""
|
|
|
|
def __init__(self, modele, langue, amorce):
|
|
self.modele = modele
|
|
self.langue = langue
|
|
self.amorce = amorce
|
|
|
|
def warmup(self):
|
|
"""Charge le modèle une fois, sur une seconde de silence."""
|
|
self.transcrire(np.zeros(16000, dtype="float32"))
|
|
|
|
def transcrire(self, audio):
|
|
import mlx_whisper
|
|
resultat = mlx_whisper.transcribe(
|
|
audio,
|
|
path_or_hf_repo=self.modele,
|
|
language=self.langue,
|
|
initial_prompt=self.amorce,
|
|
)
|
|
return clean_transcript(resultat.get("text", ""))
|