diff --git a/docs/impl/plans/INITIAL.md b/docs/impl/plans/INITIAL.md index 9f08025..65891ae 100644 --- a/docs/impl/plans/INITIAL.md +++ b/docs/impl/plans/INITIAL.md @@ -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.