perf(voice): 砍兜底等待 1.2s→0.5s + 语音提示词强制简短 + 时延测量
- voice.go: ClientEnd 兜底等待 1200ms→500ms(白吃的时延),首字出声 6.6s→5.3s - voice_task.go: JARVIS 系统提示词改"必须简短/最多三句/先给结论"(语音场景长答案既拖慢 首字又难听;注:deepseek-v4-pro 仍可能不理会长度指令,可靠收短需 max_tokens 硬顶) - voicesim: 时延拆解(提交/首字出声/朗读完毕,以"说完"为0点) 现状:首字出声 ~5.3s,大头是 deepseek 生成第一句(大模型 TTFT);管线开销(兜底+TTS握手)已压到~1s。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -156,9 +156,10 @@ func (s *voiceSession) onControl(m voice.ClientMsg) (done bool) {
|
||||
_ = s.asr.Finish() // 告知火山本轮说完
|
||||
}
|
||||
// 火山流式 ASR 只在 VAD 静音时才发 Final;客户端显式 end(点停)时不能干等——
|
||||
// 给点收尾时间让末尾部分结果到齐,再用"最新转写"兜底提交(trySubmit 去重,Final 先到就它先提交)。
|
||||
// 给一小段收尾时间让末尾部分结果到齐,再用"最新转写"兜底提交(trySubmit 去重,Final 先到就它先提交)。
|
||||
// 500ms 是"够接住末尾 partial"与"别拖慢首字出声"的折中(此前 1.2s 白白吃掉一秒多时延)。
|
||||
go func() {
|
||||
time.Sleep(1200 * time.Millisecond)
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
s.turnMu.Lock()
|
||||
txt := s.latestText
|
||||
s.turnMu.Unlock()
|
||||
|
||||
Reference in New Issue
Block a user