TTS: chunked utterances; buffer-then-play allowed as a first version
Brings the audio sink notes in line with project-yukart decision 12 and ORIN-RUNTIME: the wire format is chunks plus terminator from the start, and the first receiver may buffer to the terminator, so moving to streaming playback is a receiver-only change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -84,8 +84,13 @@ itself, not in a settings page or a startup log.
|
|||||||
The tablet owns the car's aux input and is the music player, so the Orin's speech
|
The tablet owns the car's aux input and is the music player, so the Orin's speech
|
||||||
has to arrive here to be heard.
|
has to arrive here to be heard.
|
||||||
|
|
||||||
- TTS arrives as **discrete utterances** over the reliable channel, not as a
|
- TTS arrives as an **utterance: a sequence of chunks with a terminator** over the
|
||||||
real-time stream. Receive the whole thing, then play it — no jitter buffer.
|
reliable channel, never as one opaque file body. Streaming playback (start on
|
||||||
|
the first chunk, append, finish on the terminator via `AudioTrack` streaming
|
||||||
|
mode) is the target.
|
||||||
|
- **Acceptable first version:** buffer the chunks and play on the terminator. With
|
||||||
|
a non-streaming TTS that is a single chunk anyway. Swapping to streaming then
|
||||||
|
changes only this receiver, not the protocol or the Orin.
|
||||||
- Duck other audio with `AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK` for the duration of
|
- Duck other audio with `AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK` for the duration of
|
||||||
the utterance, then release. That is what makes Spotify drop under the voice
|
the utterance, then release. That is what makes Spotify drop under the voice
|
||||||
without either side coordinating.
|
without either side coordinating.
|
||||||
|
|||||||
Reference in New Issue
Block a user