Search code examples
iosswiftspeech-recognitionsfspeechrecognizer

iOS 10.0 Speech Recognition Error kAFAssistantErrorDomain


I try using speech recognition as below

    let urlpath = Bundle.main().pathForResource("myvoice2", ofType: "m4a")
    let url:URL = URL.init(fileURLWithPath: urlpath!)

    let recognizer = SFSpeechRecognizer()
    let request = SFSpeechURLRecognitionRequest(url: url)
    recognizer?.recognitionTask(with: request, resultHandler: { (result, error) in
        print (result?.bestTranscription.formattedString)

    })

The result is nil, I debug and see the error as below

Error Domain=kAFAssistantErrorDomain Code=1101 "(null)"

Do you have any idea?


Solution

  • I have the same error, but identical code worked fine on device. So, install iOS 10 beta on a physical device and run your code. Something like this ought to do the trick:

    SFSpeechRecognizer.requestAuthorization { authStatus in
        if authStatus == SFSpeechRecognizerAuthorizationStatus.authorized {
            if let path = Bundle.main().urlForResource("test", withExtension: "m4a") {
                let recognizer = SFSpeechRecognizer()
                let request = SFSpeechURLRecognitionRequest(url: path)
                recognizer?.recognitionTask(with: request, resultHandler: { (result, error) in
                    if let error = error {
                        print("There was an error: \(error)")
                    } else {
                        print (result?.bestTranscription.formattedString)
                    }
                })
            }
        }
    }
    

    I wrote about this in more detail here.