feat: add transcriber module with faster-whisper integration
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
"""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
|
||||
Reference in New Issue
Block a user