前幾天分別完成了 STT、TTS 和 Voice Cloning,但它們目前都還是各自運作。
所以今天的目標很單純:
把 STT、LLM、TTS 串起來,完成第一版完整的語音對話流程。
目前的流程是:
Microphone
↓
VAD
↓
Speech End
↓
Final STT
↓
Groq LLM
↓
Kokoro
↓
Playback
也就是使用者說完一句話後,系統會先辨識內容,再交給 LLM 產生回答,最後透過 TTS 轉成語音播放。
到這裡,AI Companion 終於第一次完成:
聽到我說話 → 理解內容 → 用聲音回答我。
今天先使用 Kokoro 的固定聲線,Day 04 的 Voice Cloning 之後再接進來。
Day 02 做 Rolling Transcription 時,我會每隔一段時間更新 Partial 字幕,但最後一次 Partial 不一定包含完整句尾。
所以目前仍然維持:
Rolling STT → 顯示字幕
VAD 判定說完
↓
Final STT
↓
送進 LLM
真正交給 LLM 的一定是完整重新辨識後的 Final Text。
這次使用 Groq,並實際測了四個模型。
其中 llama-3.1-8b-instant 首個 Token 延遲約 0.341 秒,是這次測試最快的,而且繁體中文輸出也比較乾淨,因此先選它作為即時對話的 LLM。
在完整 Pipeline 中,LLM 從收到 Final STT 到完整回覆生成完成約需要 0.48~0.71 秒。
另外幾個候選則是:
qwen3.6-27b 0.467s
llama-3.3-70b-versatile 0.473s
gpt-oss-20b 0.622s
STT 和 TTS 則維持在本機執行。
不過這也代表對話文字會送到雲端。在真實長照情境中,隱私會是需要處理的問題,之後會再評估本機模型或送出前的資訊過濾。
今天最想觀察的指標是:
Speech End → First Audio
也就是使用者講完,到 AI 真正開始出聲需要多久。
目前先使用既有 WAV 注入完整 Pipeline 測試三次:
Turn 1:1.61 s
Turn 2:0.99 s
Turn 3:1.14 s
範圍約 0.99~1.61 秒,平均 1.25 秒。
其中 Final STT 約 0.23~0.25 秒、LLM 約 0.48~0.71 秒、TTS 約 0.23~0.52 秒。
這組數據目前還不是「真人對著麥克風說話」的結果,之後會再補實際語音測試。
下一步,就是繼續縮短 Speech End → First Audio,讓 AI 的回應更接近真正即時的對話。