From 9e6bf300edc06ff76f40c120be81cbb818bc4aed Mon Sep 17 00:00:00 2001 From: fdp <1286779656@qq.com> Date: Mon, 25 Aug 2025 01:14:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=80=9A=E8=AF=9D=E7=BF=BB?= =?UTF-8?q?=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sources/azure_speech/AzureAsrHelper.swift | 14 ++++++----- .../IntegratedSpeechTranslationService.swift | 7 +++--- .../Sources/tools/SimpleAudioReceiver.swift | 24 +++++++++---------- 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/local_plugins/azure_speech/ios/azure_speech/Sources/azure_speech/AzureAsrHelper.swift b/local_plugins/azure_speech/ios/azure_speech/Sources/azure_speech/AzureAsrHelper.swift index f3fa241ce..dd070d8af 100644 --- a/local_plugins/azure_speech/ios/azure_speech/Sources/azure_speech/AzureAsrHelper.swift +++ b/local_plugins/azure_speech/ios/azure_speech/Sources/azure_speech/AzureAsrHelper.swift @@ -203,7 +203,8 @@ public class AzureAsrHelper: NSObject { */ private func preInitializeAudioComponents() { if audioStream == nil { - audioStream = SimpleAudioReceiver.shared + audioStream = SimpleAudioReceiver() + audioStream?.initAudioRecord() } // 预创建音频配置 if let pushStream = audioStream?.pushAudioStream { @@ -345,14 +346,14 @@ public class AzureAsrHelper: NSObject { } // 停止音频处理 - //audioStream?.releaseAudioResources() + audioStream?.releaseAudioResources() // 释放网络监听资源 networkMonitor.dispose() // 释放资源 recognizer = nil speechConfig = nil audioConfig = nil - //audioStream = nil + audioStream = nil // 确保状态被重置 _isContinuousRecognitionActive = false //externalAudioStream = nil @@ -465,8 +466,8 @@ public class AzureAsrHelper: NSObject { private func setupMicrophoneStream() { // 只有在 audioStream 为 nil 时才创建新实例 if audioStream == nil { - audioStream = SimpleAudioReceiver.shared - //audioStream?.initAudioRecord() // 确保调用初始化 + audioStream = SimpleAudioReceiver() + audioStream?.initAudioRecord() // 确保调用初始化 } // 检查音频配置是否已存在 @@ -668,7 +669,8 @@ public class AzureAsrHelper: NSObject { if audioStream == nil { // 创建外部音频拉流对象 - audioStream = SimpleAudioReceiver.shared + audioStream = SimpleAudioReceiver() + audioStream?.initAudioRecord() } if audioStream?.recordfile == nil { diff --git a/local_plugins/azure_speech/ios/azure_speech/Sources/azure_speech/IntegratedSpeechTranslationService.swift b/local_plugins/azure_speech/ios/azure_speech/Sources/azure_speech/IntegratedSpeechTranslationService.swift index c596bac85..a922f92f0 100644 --- a/local_plugins/azure_speech/ios/azure_speech/Sources/azure_speech/IntegratedSpeechTranslationService.swift +++ b/local_plugins/azure_speech/ios/azure_speech/Sources/azure_speech/IntegratedSpeechTranslationService.swift @@ -329,7 +329,8 @@ import os.log * 初始化音频处理器 */ private func initializeAudioProcessor() { - audioProcessor = SimpleAudioReceiver.shared + audioProcessor = SimpleAudioReceiver() + audioProcessor?.initAudioRecord() // 检查音频配置是否已存在 if audioConfig == nil, let pushStream = audioProcessor?.pushAudioStream { audioConfig = SPXAudioConfiguration(streamInput: pushStream) @@ -912,8 +913,8 @@ import os.log audioConfig = nil // 释放其他组件 - // audioProcessor?.releaseAudioResources() - // audioProcessor = nil + audioProcessor?.releaseAudioResources() + audioProcessor = nil translationService?.dispose() translationService = nil diff --git a/local_plugins/azure_speech/ios/azure_speech/Sources/tools/SimpleAudioReceiver.swift b/local_plugins/azure_speech/ios/azure_speech/Sources/tools/SimpleAudioReceiver.swift index da992a1df..22cb05061 100644 --- a/local_plugins/azure_speech/ios/azure_speech/Sources/tools/SimpleAudioReceiver.swift +++ b/local_plugins/azure_speech/ios/azure_speech/Sources/tools/SimpleAudioReceiver.swift @@ -10,20 +10,20 @@ import os.log */ public class SimpleAudioReceiver: NSObject { - // MARK: - 单例实现 + // // MARK: - 单例实现 - /** - * 单例实例 - */ - public static let shared = SimpleAudioReceiver() + // /** + // * 单例实例 + // */ + // public static let shared = SimpleAudioReceiver() - /** - * 私有初始化方法,防止外部创建实例 - */ - private override init() { - super.init() - initAudioRecord() - } + // /** + // * 私有初始化方法,防止外部创建实例 + // */ + // private override init() { + // super.init() + // initAudioRecord() + // } private let tag = "SimpleAudioReceiver" private let log = OSLog(subsystem: "com.azure.speech", category: "SimpleAudioReceiver")