|
|
@ -433,16 +433,10 @@ public class AzureAsrHelper: NSObject { |
|
|
os_log("语音服务未初始化", log: log, type: .error) |
|
|
os_log("语音服务未初始化", log: log, type: .error) |
|
|
return false |
|
|
return false |
|
|
} |
|
|
} |
|
|
guard let recognizer = recognizer else { |
|
|
|
|
|
os_log("识别器为空,重置状态", log: log, type: .info) |
|
|
|
|
|
// 仍需取消潜在的挂起启动任务,避免稍后被触发 |
|
|
|
|
|
cancelPendingAudioStart() |
|
|
|
|
|
return true |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
do { |
|
|
do { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 关键:取消尚未执行的启动任务,防止 stop 后音频又被启动 |
|
|
// 关键:取消尚未执行的启动任务,防止 stop 后音频又被启动 |
|
|
cancelPendingAudioStart() |
|
|
cancelPendingAudioStart() |
|
|
|
|
|
|
|
|
@ -457,7 +451,12 @@ public class AzureAsrHelper: NSObject { |
|
|
os_log("音频停止失败", log: self.log, type: .error) |
|
|
os_log("音频停止失败", log: self.log, type: .error) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
guard let recognizer = recognizer else { |
|
|
|
|
|
os_log("识别器为空,重置状态", log: log, type: .info) |
|
|
|
|
|
// 仍需取消潜在的挂起启动任务,避免稍后被触发 |
|
|
|
|
|
cancelPendingAudioStart() |
|
|
|
|
|
return true |
|
|
|
|
|
} |
|
|
// 停止连续识别 |
|
|
// 停止连续识别 |
|
|
try recognizer.stopContinuousRecognition() |
|
|
try recognizer.stopContinuousRecognition() |
|
|
self.recognizer = nil |
|
|
self.recognizer = nil |
|
|
@ -480,6 +479,12 @@ public class AzureAsrHelper: NSObject { |
|
|
|
|
|
|
|
|
// 尝试安全地停止识别器 |
|
|
// 尝试安全地停止识别器 |
|
|
do { |
|
|
do { |
|
|
|
|
|
guard let recognizer = recognizer else { |
|
|
|
|
|
os_log("识别器为空,重置状态", log: log, type: .info) |
|
|
|
|
|
// 仍需取消潜在的挂起启动任务,避免稍后被触发 |
|
|
|
|
|
cancelPendingAudioStart() |
|
|
|
|
|
return true |
|
|
|
|
|
} |
|
|
try recognizer.stopContinuousRecognition() |
|
|
try recognizer.stopContinuousRecognition() |
|
|
self.recognizer = nil |
|
|
self.recognizer = nil |
|
|
} catch { |
|
|
} catch { |
|
|
|