Browse Source

修复通话翻译

newdev_shunjiawei
fdp 1 year ago
parent
commit
9e6bf300ed
  1. 14
      local_plugins/azure_speech/ios/azure_speech/Sources/azure_speech/AzureAsrHelper.swift
  2. 7
      local_plugins/azure_speech/ios/azure_speech/Sources/azure_speech/IntegratedSpeechTranslationService.swift
  3. 24
      local_plugins/azure_speech/ios/azure_speech/Sources/tools/SimpleAudioReceiver.swift

14
local_plugins/azure_speech/ios/azure_speech/Sources/azure_speech/AzureAsrHelper.swift

@ -203,7 +203,8 @@ public class AzureAsrHelper: NSObject {
*/ */
private func preInitializeAudioComponents() { private func preInitializeAudioComponents() {
if audioStream == nil { if audioStream == nil {
audioStream = SimpleAudioReceiver.shared audioStream = SimpleAudioReceiver()
audioStream?.initAudioRecord()
} }
// 预创建音频配置 // 预创建音频配置
if let pushStream = audioStream?.pushAudioStream { if let pushStream = audioStream?.pushAudioStream {
@ -345,14 +346,14 @@ public class AzureAsrHelper: NSObject {
} }
// 停止音频处理 // 停止音频处理
//audioStream?.releaseAudioResources() audioStream?.releaseAudioResources()
// 释放网络监听资源 // 释放网络监听资源
networkMonitor.dispose() networkMonitor.dispose()
// 释放资源 // 释放资源
recognizer = nil recognizer = nil
speechConfig = nil speechConfig = nil
audioConfig = nil audioConfig = nil
//audioStream = nil audioStream = nil
// 确保状态被重置 // 确保状态被重置
_isContinuousRecognitionActive = false _isContinuousRecognitionActive = false
//externalAudioStream = nil //externalAudioStream = nil
@ -465,8 +466,8 @@ public class AzureAsrHelper: NSObject {
private func setupMicrophoneStream() { private func setupMicrophoneStream() {
// 只有在 audioStream 为 nil 时才创建新实例 // 只有在 audioStream 为 nil 时才创建新实例
if audioStream == nil { if audioStream == nil {
audioStream = SimpleAudioReceiver.shared audioStream = SimpleAudioReceiver()
//audioStream?.initAudioRecord() // 确保调用初始化 audioStream?.initAudioRecord() // 确保调用初始化
} }
// 检查音频配置是否已存在 // 检查音频配置是否已存在
@ -668,7 +669,8 @@ public class AzureAsrHelper: NSObject {
if audioStream == nil { if audioStream == nil {
// 创建外部音频拉流对象 // 创建外部音频拉流对象
audioStream = SimpleAudioReceiver.shared audioStream = SimpleAudioReceiver()
audioStream?.initAudioRecord()
} }
if audioStream?.recordfile == nil { if audioStream?.recordfile == nil {

7
local_plugins/azure_speech/ios/azure_speech/Sources/azure_speech/IntegratedSpeechTranslationService.swift

@ -329,7 +329,8 @@ import os.log
* 初始化音频处理器 * 初始化音频处理器
*/ */
private func initializeAudioProcessor() { private func initializeAudioProcessor() {
audioProcessor = SimpleAudioReceiver.shared audioProcessor = SimpleAudioReceiver()
audioProcessor?.initAudioRecord()
// 检查音频配置是否已存在 // 检查音频配置是否已存在
if audioConfig == nil, let pushStream = audioProcessor?.pushAudioStream { if audioConfig == nil, let pushStream = audioProcessor?.pushAudioStream {
audioConfig = SPXAudioConfiguration(streamInput: pushStream) audioConfig = SPXAudioConfiguration(streamInput: pushStream)
@ -912,8 +913,8 @@ import os.log
audioConfig = nil audioConfig = nil
// 释放其他组件 // 释放其他组件
// audioProcessor?.releaseAudioResources() audioProcessor?.releaseAudioResources()
// audioProcessor = nil audioProcessor = nil
translationService?.dispose() translationService?.dispose()
translationService = nil translationService = nil

24
local_plugins/azure_speech/ios/azure_speech/Sources/tools/SimpleAudioReceiver.swift

@ -10,20 +10,20 @@ import os.log
*/ */
public class SimpleAudioReceiver: NSObject { public class SimpleAudioReceiver: NSObject {
// MARK: - 单例实现 // // MARK: - 单例实现
/** // /**
* 单例实例 // * 单例实例
*/ // */
public static let shared = SimpleAudioReceiver() // public static let shared = SimpleAudioReceiver()
/** // /**
* 私有初始化方法,防止外部创建实例 // * 私有初始化方法,防止外部创建实例
*/ // */
private override init() { // private override init() {
super.init() // super.init()
initAudioRecord() // initAudioRecord()
} // }
private let tag = "SimpleAudioReceiver" private let tag = "SimpleAudioReceiver"
private let log = OSLog(subsystem: "com.azure.speech", category: "SimpleAudioReceiver") private let log = OSLog(subsystem: "com.azure.speech", category: "SimpleAudioReceiver")

Loading…
Cancel
Save