iOS: stabilize talk mode tests

This commit is contained in:
Mariano Belinky
2026-01-31 12:57:55 +01:00
committed by Mariano Belinky
parent 7b0a0f3dac
commit 78f7e5147b
2 changed files with 8 additions and 3 deletions

View File

@@ -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
} }

View File

@@ -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")