Commit Graph

3 Commits

Author SHA1 Message Date
chenglun.hu
5a9fd4de5c
fix(voice-call): align OpenAI Realtime STT with GA API format
The OpenAI Realtime STT provider was using an outdated Beta API format
that doesn't produce transcriptions when using the GA endpoint.

Changes:
- Event type: transcription_session.update → session.update
- Session type: Added type: "transcription"
- Structure: Flat session → nested session.audio.input
- Format: g711_ulaw → audio/pcmu (MIME type)

Fixes #3447

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:15:11 +08:00
Dan Guido
101d0f451f
fix(voice-call): prevent audio overlap with TTS queue (#1713)
* fix(voice-call): prevent audio overlap with TTS queue

Add a TTS queue to serialize audio playback and prevent overlapping
speech during voice calls. Previously, concurrent speak() calls could
send audio chunks simultaneously, causing garbled/choppy output.

Changes:
- Add queueTts() to MediaStreamHandler for sequential TTS playback
- Wrap playTtsViaStream() audio sending in the queue
- Clear queue on barge-in (when user starts speaking)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(voice-call): use iterative queue processing to prevent heap exhaustion

The recursive processQueue() pattern accumulated stack frames, causing
JavaScript heap out of memory errors on macOS CI. Convert to while loop
for constant stack usage regardless of queue depth.

* fix: prevent voice-call TTS overlap (#1713) (thanks @dguido)

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-25 12:02:17 +00:00
Peter Steinberger
42c17adb5e feat: restore voice-call plugin parity 2026-01-12 21:44:19 +00:00