3.6 KiB
3.6 KiB
Google Voice (STT / TTS)
Zentrale Sprach-Pipeline im Gateway: Google Cloud Speech-to-Text (v1) und Text-to-Speech über die Fassade VoiceObjects (interfaceVoiceObjects.py) und den Connector ConnectorGoogleSpeech (connectorVoiceGoogle.py). Kein direkter Feature-Code soll den Connector umgehen; Billing-Hooks hängen an der Interface-Schicht (u. a. Streaming-STT bei finalen Segmenten).
Batch-Erkennung (speechToText)
- API:
SpeechClient.recognize(ein Request pro Audioclip). - Parameter (optional, abwaertskompatibel):
model: z. B.latest_long(Default),latest_short.lightweight:Trueschaltet u. a. ab: Word-Timestamps, Word-Confidence,max_alternatives>1,use_enhanced. Ziel: geringere Latenz/Kosten bei Kurzäusserungen.audioFormat: z. B.webm_opus,linear16,mp3,flac,wav— wenn gesetzt, entfälltvalidateAudioFormat()(Fast-Path); fehlende Sample-Rate wird formattypisch defaulted (z. B.webm_opus→ 48 kHz).
- Fallbacks: Bei leeren Ergebnissen (wenn nicht
skipFallbacks) weiterhin Encoding-/Modell-Matrix; erstes Fallback-Modell ist der vom Caller gewähltemodel-Wert.
Streaming-Erkennung
- Route:
POST /voice-google/stt/token(kurzlebigeswsToken), WebSocket/voice-google/stt/stream?wsToken=...(routeVoiceGoogle.py). - Client-Protokoll (JSON):
open:language, optionalmodel,lightweight,singleUtterance(Booleans).audio:chunk(Base64), typisch WebM/Opus-Fragmente vomMediaRecorder.close/ping/pongunveraendert.
- Server-Antworten:
interim,final, optionalend_of_single_utterance(mitaudioDurationSec) wenn Google Single-Utterance-Modus endet — Client sendet daraufhin erneutopenmit denselben STT-Optionen (Recorder laeuft weiter). - Connector:
streamingRecognize—StreamingRecognitionConfig.single_utterancesteuerbar; Abrechnungs-Dauer fuer Finals bevorzugt ausresult_end_timeder Streaming-Results (Fallback: Byte-Heuristik).
Feature-Zuordnung (Ist-Stand)
| Bereich | STT-Pfad | Konfiguration (Kurz) |
|---|---|---|
| CommCoach Live | Streaming WS → Text → Coach | Frontend (useVoiceStream): latest_short, lightweight, singleUtterance: true (useVoiceController). |
| CommCoach Batch | processAudioMessage → speechToText |
latest_short, lightweight: true (Format weiterhin Auto-Detect wenn kein audioFormat). |
| Workspace | Gleicher generischer WS | start(language) ohne Extra-Optionen → Defaults wie frueher (latest_long, kein Single-Utterance). |
| Teamsbot | Pro Audio-Chunk speechToText (Batch) |
Gemeinsamer Connector; audioFormat: linear16 (bekannte PCM-Chunks); Modell/Default wie bisher latest_long + volle Features (lightweight: false). |
Agent-Tool _mediaTools.speechToText |
Batch | Keine zusaetzlichen Argumente → Default-Verhalten. |
TTS
Unveraendert ueber textToSpeech / Gemini-TTS-Pfad im Connector; diese Seite fokussiert STT.
Weiterfuehrung
- Evaluation Speech-to-Text v2 / Chirp:
wiki/c-work/1-plan/stt-chirp-v2-evaluation.md.