mirror of
https://github.com/openclaw/openclaw.git
synced 2026-02-09 05:19:32 +08:00
iOS: stabilize talk mode tests
This commit is contained in:
committed by
Mariano Belinky
parent
7b0a0f3dac
commit
78f7e5147b
@@ -17,6 +17,7 @@ final class TalkModeManager: NSObject {
|
|||||||
var statusText: String = "Off"
|
var statusText: String = "Off"
|
||||||
|
|
||||||
private let audioEngine = AVAudioEngine()
|
private let audioEngine = AVAudioEngine()
|
||||||
|
private var inputTapInstalled = false
|
||||||
private var speechRecognizer: SFSpeechRecognizer?
|
private var speechRecognizer: SFSpeechRecognizer?
|
||||||
private var recognitionRequest: SFSpeechAudioBufferRecognitionRequest?
|
private var recognitionRequest: SFSpeechAudioBufferRecognitionRequest?
|
||||||
private var recognitionTask: SFSpeechRecognitionTask?
|
private var recognitionTask: SFSpeechRecognitionTask?
|
||||||
@@ -160,6 +161,7 @@ final class TalkModeManager: NSObject {
|
|||||||
input.removeTap(onBus: 0)
|
input.removeTap(onBus: 0)
|
||||||
let tapBlock = Self.makeAudioTapAppendCallback(request: request)
|
let tapBlock = Self.makeAudioTapAppendCallback(request: request)
|
||||||
input.installTap(onBus: 0, bufferSize: 2048, format: format, block: tapBlock)
|
input.installTap(onBus: 0, bufferSize: 2048, format: format, block: tapBlock)
|
||||||
|
self.inputTapInstalled = true
|
||||||
|
|
||||||
self.audioEngine.prepare()
|
self.audioEngine.prepare()
|
||||||
try self.audioEngine.start()
|
try self.audioEngine.start()
|
||||||
@@ -185,7 +187,10 @@ final class TalkModeManager: NSObject {
|
|||||||
self.recognitionTask = nil
|
self.recognitionTask = nil
|
||||||
self.recognitionRequest?.endAudio()
|
self.recognitionRequest?.endAudio()
|
||||||
self.recognitionRequest = nil
|
self.recognitionRequest = nil
|
||||||
self.audioEngine.inputNode.removeTap(onBus: 0)
|
if self.inputTapInstalled {
|
||||||
|
self.audioEngine.inputNode.removeTap(onBus: 0)
|
||||||
|
self.inputTapInstalled = false
|
||||||
|
}
|
||||||
self.audioEngine.stop()
|
self.audioEngine.stop()
|
||||||
self.speechRecognizer = nil
|
self.speechRecognizer = nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ private struct KeychainEntry: Hashable {
|
|||||||
let account: String
|
let account: String
|
||||||
}
|
}
|
||||||
|
|
||||||
private let gatewayService = "bot.molt.gateway"
|
private let gatewayService = "ai.openclaw.gateway"
|
||||||
private let nodeService = "bot.molt.node"
|
private let nodeService = "ai.openclaw.node"
|
||||||
private let instanceIdEntry = KeychainEntry(service: nodeService, account: "instanceId")
|
private let instanceIdEntry = KeychainEntry(service: nodeService, account: "instanceId")
|
||||||
private let preferredGatewayEntry = KeychainEntry(service: gatewayService, account: "preferredStableID")
|
private let preferredGatewayEntry = KeychainEntry(service: gatewayService, account: "preferredStableID")
|
||||||
private let lastGatewayEntry = KeychainEntry(service: gatewayService, account: "lastDiscoveredStableID")
|
private let lastGatewayEntry = KeychainEntry(service: gatewayService, account: "lastDiscoveredStableID")
|
||||||
|
|||||||
Reference in New Issue
Block a user