Files
whisper-local/whisper_local/transcriber.py
T
2026-04-06 20:26:53 +02:00

27 lines
945 B
Python

"""Whisper-Transkription via faster-whisper."""
import logging
import numpy as np
from faster_whisper import WhisperModel
logger = logging.getLogger(__name__)
class Transcriber:
def __init__(self, model_name: str = "small", compute_type: str = "int8", language: str = "de"):
self.language = language
logger.info("Lade Whisper-Modell '%s' (compute_type=%s)...", model_name, compute_type)
self.model = WhisperModel(model_name, compute_type=compute_type)
logger.info("Modell geladen")
def transcribe(self, audio: np.ndarray) -> str:
"""Transkribiert Audio-Array zu Text."""
segments, _ = self.model.transcribe(audio, language=self.language)
text = " ".join(segment.text.strip() for segment in segments if segment.text.strip())
if text:
logger.info("Transkribiert: %s", text)
else:
logger.info("Keine Sprache erkannt")
return text