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:
mikkeli
2026-10-09 16:10:47 +09:00
parent c1ffba08fb
commit 62c6a79f89
+7 -2
View File
@@ -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
has to arrive here to be heard.
- TTS arrives as **discrete utterances** over the reliable channel, not as a
real-time stream. Receive the whole thing, then play it — no jitter buffer.
- TTS arrives as an **utterance: a sequence of chunks with a terminator** over the
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
the utterance, then release. That is what makes Spotify drop under the voice
without either side coordinating.