b8095688ba
火山合成远快于真实语速:一句话的 PCM 秒级全推到客户端,被 nextStart 预约到未来时刻顺序播。此前 tts_end 直接 resetPlayback() stop 掉所有还 没播的 source,于是只听到前三四个字就断。 改:tts_end 走 drainThenReady()——不打断,按 nextStart 算剩余时长等排队 音频自然放完,末段结束再回 ready;speaking 态维持到真播完(HUD 频谱靠它)。 resetPlayback 只留给 barge-in/close,并清 drainTimer 防迟到定时器改状态。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>