it0/packages/services/voice-agent
hailin 8ac1884ab4 fix: use debounce timer to auto-finalize Speechmatics partial transcripts
The LiveKit framework never sends FlushSentinel to the STT stream.
Instead it pushes silence frames and waits for FINAL_TRANSCRIPT events.
In EXTERNAL turn-detection mode, Speechmatics only emits partials.

New approach: each partial transcript restarts a 700ms debounce timer.
When partials stop (user stops speaking), the timer fires and promotes
the last partial to FINAL_TRANSCRIPT, unblocking the pipeline.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 03:08:17 -08:00
..
src fix: use debounce timer to auto-finalize Speechmatics partial transcripts 2026-03-03 03:08:17 -08:00
Dockerfile fix: resolve websockets version conflict and use CPU-only torch 2026-02-28 09:02:31 -08:00
requirements.txt feat: add STT provider switching (OpenAI ↔ Speechmatics) in settings 2026-03-02 22:13:18 -08:00