Я следую простому учебнику здесь , чтобы заставить работать распознавание речи в iOS.
Даже когда пользователь запрещает доступ к микрофону, когда я запускаю его в симуляторе, он всегда идет в авторизованном случае и печатает авторизованный , даже до того, как пользователь выберет Разрешить в приглашении. Мой askSpeechPermission
никогда не называется. Как мне это исправить?
let audioEngine = AVAudioEngine()
let speechRecognizer = SFSpeechRecognizer(locale: Locale.init(identifier: "en-US"))
let request = SFSpeechAudioBufferRecognitionRequest()
var recognitionTask: SFSpeechRecognitionTask?
override func viewDidLoad() {
super.viewDidLoad()
switch SFSpeechRecognizer.authorizationStatus() {
case .notDetermined:
askSpeechPermission()
print("not determined")
case .authorized:
self.status = .ready
print("authorized")
case .denied, .restricted:
self.status = .unavailable
print("denied or restricted")
}
}
func askSpeechPermission() {
SFSpeechRecognizer.requestAuthorization { status in
OperationQueue.main.addOperation {
switch status {
case .authorized:
self.status = .ready
default:
self.status = .unavailable
}
}
}
}