AugustAtSeattle / SpeakNote

SpeakNote: Your Personal Virtual Assistant on iOS
MIT License
2 stars 0 forks source link

migrate request microphone and speech recognition using async await #35

Closed AugustAtSeattle closed 9 months ago

AugustAtSeattle commented 10 months ago

// Wrap the speech recognition permission request in an async function func requestSpeechRecognitionPermission() async -> Bool { return await withCheckedContinuation { continuation in SFSpeechRecognizer.requestAuthorization { authStatus in DispatchQueue.main.async { continuation.resume(returning: authStatus == .authorized) } } } }

// Wrap the microphone permission request in an async function func requestMicrophonePermission() async -> Bool { return await withCheckedContinuation { continuation in AVAudioSession.sharedInstance().requestRecordPermission { granted in DispatchQueue.main.async { continuation.resume(returning: granted) } } } }

// Combine both permission requests in a single async function func requestSpeechAndMicrophonePermissions() async -> Bool { let isSpeechAuthorized = await requestSpeechRecognitionPermission() guard isSpeechAuthorized else { return false }

let isMicrophoneAuthorized = await requestMicrophonePermission()
return isMicrophoneAuthorized

}