VoiceWake: keep listening until silence, gate enable on permissions

This commit is contained in:
Peter Steinberger
2025-12-07 02:18:37 +01:00
parent 9d0415f9e9
commit e906b87450
4 changed files with 88 additions and 3 deletions

View File

@@ -82,6 +82,17 @@ enum PermissionManager {
return results
}
static func voiceWakePermissionsGranted() -> Bool {
let mic = AVCaptureDevice.authorizationStatus(for: .audio) == .authorized
let speech = SFSpeechRecognizer.authorizationStatus() == .authorized
return mic && speech
}
static func ensureVoiceWakePermissions(interactive: Bool) async -> Bool {
let results = await self.ensure([.microphone, .speechRecognition], interactive: interactive)
return results[.microphone] == true && results[.speechRecognition] == true
}
static func status(_ caps: [Capability] = Capability.allCases) async -> [Capability: Bool] {
var results: [Capability: Bool] = [:]
for cap in caps {