router: deutsche Spracherkennung mit whisper.cpp (CPU-only)
- STT-Worker (stt_worker.py): langlebiger HTTP-Service auf Port 8084
- whisper-cli als Subprozess (CPU-only, 8 Threads)
- Audio-Vorbereitung via ffmpeg (WebM/Opus/M4A → 16 kHz WAV)
- Nativ: WAV, MP3, OGG, FLAC
- Health-Endpunkt: GET /status
- Transkription: POST /transcribe (Multipart-Form-Data)
- Router-Integration:
- POST /v1/audio/transcriptions (OpenAI-kompatibel)
- GET /v1/audio/models (whisper-1, kokoro-german)
- GET /v1/audio/voices (martin, victoria)
- /status mit stt-Section
- model=whisper-1 akzeptiert
- response_format: json, verbose_json
- systemd-Service: mike-ai-whisper.service
- Boot-Start, Restart on failure, journald
- CPU-only, kein GPU-Lock
- Deploy-Dateien aktualisiert (deploy.sh, install.sh)
- Mock-STT-Worker für lokale Tests (dev/mock_stt_worker.py)
- Tests ergänzt: STT Status, WAV, language=de, unbekanntes Modell,
Worker down, Recovery, Audio-Modelle, Audio-Voices,
STT+Qwen parallel, STT+TTS parallel
- README.md: STT-Section mit Endpunkten, Benchmarks, Doku
Benchmarks (CPU-only, 8 Threads):
7.3 s Audio → 8.9 s (RTF 1.22×)
30 s Audio → 16.8 s (RTF 0.56×)
50 s Audio → 18.5 s (RTF 0.37×)
RAM: ~1.7 GB (Modell), Worker: ~20 MB