# STT (Speech-to-Text) Konfiguration

## Aktueller Status (Stand 2026-05-10)

- **Provider:** `local` (faster-whisper)
- **Modell:** `medium` (25MB)
- **Sprache:** `de` (explizit gesetzt)
- **Installation:** ✅ faster-whisper im venv installiert via `uv pip install`
- **Gateway-Neustart:** Erforderlich nach Config-Änderungen (`openclaw gateway restart`)

## Installation (wenn nötig)

```bash
# pip im venv funktioniert NICHT — verwende uv
uv pip install faster-whisper --python /home/agent/.hermes/hermes-agent/venv/bin/python3

# Config setzen
hermes config set stt.local.model medium
hermes config set stt.local.language de

# Gateway neu starten
openclaw gateway restart
```

## Modell-Vergleich

| Modell | Grösse | Deutsch-Qualität | Geschwindigkeit | Status |
|--------|--------|------------------|-----------------|--------|
| tiny   | 7MB    | Schlecht         | Sehr schnell    | ❌ Nicht verwenden |
| base   | 15MB   | Mittel           | Schnell         | ❌ Zu schwach |
| small  | 25MB   | Gut              | Mittel          | ✅ Gute Option |
| medium | 25MB   | Sehr gut         | Langsam         | ✅ **Aktuell konfiguriert** |
| large-v3 | 100MB | Ausgezeichnet    | Sehr langsam    | ⚠️ Nur bei Bedarf |

## Sprachen

- **Hochdeutsch**: ✅ Gut unterstützt
- **Schweizerdeutsch (Dialekt)**: ❌ NICHT unterstützt — wird fehlerhaft transkribiert
- **Empfehlung**: User spricht Hochdeutsch für beste Ergebnisse

## Alternative Provider

| Provider | Qualität | Deutsch | Bemerkung |
|----------|----------|---------|-----------|
| Groq Whisper | ⭐⭐⭐⭐⭐ | ✅ Gut | Kostenlos, braucht API-Key |
| OpenAI Whisper Turbo | ⭐⭐⭐⭐⭐ | ✅ Sehr gut | ~$0.006/Min, schnell |
| Mistral Voxtral | ⭐⭐⭐⭐ | ✅ Gut | Bereits konfiguriert |

## Diagnose

```python
# Prüfe Installation
import subprocess
venv_python = "/home/agent/.hermes/hermes-agent/venv/bin/python3"
result = subprocess.run([venv_python, "-c", "from faster_whisper import WhisperModel; print('OK')"], 
                       capture_output=True, text=True)
print("faster-whisper funktioniert:", result.returncode == 0 and 'OK' in result.stdout)
```
