diff --git a/sundynix-gateway/internal/handler/voice_tts.go b/sundynix-gateway/internal/handler/voice_tts.go index 78e0231..1d09ea5 100644 --- a/sundynix-gateway/internal/handler/voice_tts.go +++ b/sundynix-gateway/internal/handler/voice_tts.go @@ -18,7 +18,13 @@ import ( // TTS 就绪后补吐,保证第一句不丢。 func (s *voiceSession) speak(taskID string) { if !s.cfg.TTSEnabled() { - return // 没配 TTS:只回转写 + 任务,无语音朗读 + // 没配 TTS(缺 resource-id 或音色):不朗读,但**必须**回 tts_end—— + // 否则客户端永远停在"思考中",用户看到的是"提问后彻底没反应", + // 完全看不出是配置问题(这里此前是静默 return,坑了整整一天)。 + log.Printf("[voice] TTS 未配置(需 api_key + tts_resource_id + tts_voice_type 三项齐全),本轮只回文字 uid=%s", s.uid) + s.send(voice.ServerMsg{Type: voice.ServerError, Msg: "未配置语音合成(缺 TTS resource-id 或音色),本次只有文字回答"}) + s.send(voice.ServerMsg{Type: voice.ServerTTSEnd}) + return } sb := voice.NewSentenceBuffer()