From 9874d9c73b335e115ad9e3386be08fd18cd1047e Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Thu, 22 Jan 2026 20:12:18 +0800 Subject: [PATCH] =?UTF-8?q?fix(agent=5Fservice):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E8=AF=AD=E9=9F=B3=E8=AF=86=E5=88=AB=E5=92=8C=E6=96=87=E6=9C=AC?= =?UTF-8?q?=E5=A4=84=E7=90=86=E4=B8=AD=E7=9A=84=E7=8A=B6=E6=80=81=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复停止语音识别时未取消AI流的问题 调整文本输入处理前的状态重置逻辑 移除重复的TTS参数设置 --- .../agent_service/AgentServiceImpl.swift | 22 ++++++++++++++----- .../chat_storage/ChatStorageHelper.swift | 1 - 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/local_plugins/agent_service/ios/agent_service/Sources/agent_service/AgentServiceImpl.swift b/local_plugins/agent_service/ios/agent_service/Sources/agent_service/AgentServiceImpl.swift index 0196a1d46..bbe269dbc 100644 --- a/local_plugins/agent_service/ios/agent_service/Sources/agent_service/AgentServiceImpl.swift +++ b/local_plugins/agent_service/ios/agent_service/Sources/agent_service/AgentServiceImpl.swift @@ -509,6 +509,10 @@ class AgentServiceImpl: NSObject { } } stopRecognition() + if isAiStreaming { + isAiStreaming = false + _ = chatApiService?.cancelCurrentStream() + } stopTts() @@ -537,7 +541,7 @@ class AgentServiceImpl: NSObject { print("ai启动语音=\(audioSourceType)=\(useBle)") guard let success = azureAsrHelper?.startContinuousRecognition( - // callback: self, + mod:self.currentRecognitionMode, audioSourceType: audioSourceType, isRemoveFirstPunctuation: false ), success else { @@ -642,9 +646,6 @@ class AgentServiceImpl: NSObject { if text.isEmpty { return false } - - _ = azureTtsHelper?.setSpeechParams(rate: ttsRatePercent, pitch: 0, volume: 100) - _ = azureTtsHelper?.setPhoneCallMode(mod: currentRecognitionMode) return azureTtsHelper?.speakOnce(sessionid:sessionid,text) ?? false } @@ -706,8 +707,16 @@ class AgentServiceImpl: NSObject { sendError("文本输入不能为空", code: "EMPTY_TEXT") return false } - + stopIdleCheck() + if isAiStreaming { + isAiStreaming = false + _ = chatApiService?.cancelCurrentStream() + } + stopTts() + currentRecognitionMode = "normal" + os_log("开始处理文本输入", log: logger, type: .info) + processWithChatApiService(sessionid: sessionid, text: text, speakResponse: speakResponse) return true } @@ -717,7 +726,8 @@ class AgentServiceImpl: NSObject { sendError("ChatAPI服务未初始化", code: "CHATAPI_NOT_INITIALIZED") return } - + _ = azureTtsHelper?.setSpeechParams(rate: ttsRatePercent, pitch: 0, volume: 100) + _ = azureTtsHelper?.setPhoneCallMode(mod: currentRecognitionMode) let userMessage = chatApiService.createUserMessage(content: text) processWithChatApiServiceInternal(sessionid: sessionid,userMessage: userMessage, displayText: text, speakResponse: speakResponse) } diff --git a/local_plugins/chat_storage/ios/chat_storage/Sources/chat_storage/ChatStorageHelper.swift b/local_plugins/chat_storage/ios/chat_storage/Sources/chat_storage/ChatStorageHelper.swift index 6fdd60df2..eb224827b 100644 --- a/local_plugins/chat_storage/ios/chat_storage/Sources/chat_storage/ChatStorageHelper.swift +++ b/local_plugins/chat_storage/ios/chat_storage/Sources/chat_storage/ChatStorageHelper.swift @@ -245,7 +245,6 @@ public class ChatStorageHelper { sqlite3_bind_text(deleteStatement, 1, (agentId as NSString).utf8String, -1, nil) if sqlite3_step(deleteStatement) == SQLITE_DONE { - sqlite3_finalize(deleteStatement) result = true } else { let errmsg = String(cString: sqlite3_errmsg(db)!)