From ec634c4133c97d780f61bdeac5d08417f52db1b2 Mon Sep 17 00:00:00 2001 From: ssurui Date: Thu, 3 Sep 2026 15:07:01 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=AF=AD=E9=9F=B3=E8=BE=93=E5=87=BA?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E8=BE=B9=E7=94=9F=E6=88=90=E8=BE=B9=E6=92=AD?= =?UTF-8?q?=E6=8A=A5=EF=BC=8C=E4=B8=8D=E5=86=8D=E7=AD=89=E6=95=B4=E6=AE=B5?= =?UTF-8?q?=E7=AD=94=E6=A1=88=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TtsPlayer 本来就实现了完整的流式播报能力(append() 按句子边界切分 入队、flush() 收尾剩余文本),只是 ChatPanel 一直没接上,只在 querying 结束后调用一次 speakWithAnnouncement(全文)。 改为在 onDelta 里实时 append(delta),onDone/onError 里 flush() 收尾。删除了原来 querying 结束时整段朗读的 watch(不删会导致 整段答案被朗读两遍)。效果:不用等生成完,第一句话生成出来就 开始播,播放速度跟不上文字输出时 TtsPlayer 自带的自适应语速会 自动降速跟上。 Co-Authored-By: Claude Sonnet 5 --- src/renderer/src/components/ChatPanel.vue | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/renderer/src/components/ChatPanel.vue b/src/renderer/src/components/ChatPanel.vue index 6f9f915..a3f8bfc 100644 --- a/src/renderer/src/components/ChatPanel.vue +++ b/src/renderer/src/components/ChatPanel.vue @@ -1,5 +1,5 @@