Echtzeit-Spracherkennung und -Übersetzung in C# mit Whisper
Die Anwendung erfasst Audio-Streams von Plattformen wie Teams, teilt sie basierend auf Sprachamplitude und Pausen in Sätze auf und nutzt anschließend Whisper für die Sprache-zu-Text-Umwandlung (STT) in Russisch, Englisch oder Französisch, gefolgt von einer Übersetzung. Die C#-Implementierung basiert zu etwa 20 % auf eigenem Code, der Rest wird über Integrationen realisiert. Bei Auswahl einer einzigen Sprache unterstützt das System einen Diktiermodus – lediglich die Transkription mit optionaler Audio-Speicherung.
In den Einstellungen können folgende Werte kalibriert werden:
- Schwellwerte für die Sprachamplitude zur Erkennung von Sprechen.
- Pausendauer zwischen Sätzen.
Statistiken im rechten unteren Bildschirmbereich zeigen aktuelle Audiopegel und Erkennungsflags – ideal zum Feintuning. Die Audio-Erfassung funktioniert nur mit dem System-Mixer (Kopfhörer/Lautsprecher); direkte Mikrofoneingaben werden nicht unterstützt.
Auswahl der Whisper-Modelle und Leistung
Lokale STT-Lösungen wurden getestet:
- Sherpa (ONNX): Streaming-Version für Französisch passte nicht in die Architektur.
- Foundry Local (Microsoft): Rohdaten-basierte Kommunikation, basierend auf Whisper.
Wir entschieden uns für Whisper:
| Modell | Geschwindigkeit | Logik | Hinweise |
|--------|----------------|-------|----------|
| Base | Schnell | Keine | Minimal, kein Kontext |
| Small | Mittel | Ja | Optimaler Kompromiss, Temperatur 0,1–0,2 |
| Medium | Langsam | Gut | Puffer wächst während Live-Meetings |
Ohne NPU/GPU steigt der RAM-Verbrauch, doch die Ergebnisse bleiben bei hochwertigem Meeting-Audio akzeptabel.
Integration von Übersetzungs-Diensten
Zwei Optionen stehen zur Verfügung:
- OpenAI: API-Schlüssel, Modell und URL werden in den Einstellungen konfiguriert.
- Azure Translator: Freier Tarif bietet 2 Millionen Zeichen pro Monat; benötigt ein Konto.
Das ITranslationService-Interface erleichtert die Hinzufügung neuer Anbieter (Yandex-API möglich mit Abrechnung). Lokale Übersetzer erreichten die Qualitätsbenchmarks nicht.
Beispielhafte Azure-Konfiguration:
public class AzureTranslationService : ITranslationService
{
private readonly string _key;
// ...
}
Praktische Anwendungsfälle und Einschränkungen
Dieses Tool löst den Bedarf an Echtzeit-Übersetzung mehrsprachiger Meetings ohne Aufzeichnung. Getestet wurde mit Französisch, Englisch und Russisch. Kein universeller Recorder – es werden nur System-Audio-Ausgaben erfasst.
Für mittlere bis erfahrene Entwickler: Modularer Aufbau mit Fokus auf Streaming-Chunks. Erweiterbar durch Austausch von STT-/Übersetzungs-Engines oder Hinzufügen neuer VAD-Algorithmen.
Wichtige Erkenntnisse:
- Erfassung von System-Audio mit Satzspaltung über VAD-ähnliche Parameter.
- Whisper Small ist optimal für Echtzeitanwendungen: Temperatur 0,1–0,2, keine GPU erforderlich.
- Einfaches Übersetzungs-Interface; Azure bietet 2 Mio. kostenlose Zeichen pro Monat.
- STT-Modus für Transkription ohne Übersetzung.
- Echtzeit-Statistiken zur Feinjustierung der Spracherkennung.
— Editorial Team
Noch keine Kommentare.