2016-06-14 13 views
7

Ich versuche, mit Spracherkennung wie unteniOS 10.0 Spracherkennung Fehler kAFAssistantErrorDomain

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) 

    }) 

Das Ergebnis ist gleich Null, ich debuggen und sehen Sie die Fehler wie unten

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

Haben Sie irgendwelche Idee?

+0

Haben Sie hinzufügen 'NSSpeechRecognitionUsageDescription' Schlüssel in info.plist? –

+0

habe ich bereits hinzugefügt, aber das gleiche Problem. –

+0

Die gleiche Reaktion mit dem Simulator. Als ich das Projekt "SpeakToMe" eröffnete, bat Xcode 8 Beta um eine Konvertierung von Swift 2.3 zu Swift 3. Ich habe es konvertiert ... Was haben alle gemacht? Und glaubt jemand, dass diese Umwandlung das Problem sein könnte? –

Antwort

11

Ich habe den gleichen Fehler, aber der gleiche Code funktionierte gut auf dem Gerät. Installieren Sie iOS 10 Beta auf einem physischen Gerät und führen Sie Ihren Code aus. So etwas wie dies sollte den Trick tun:

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.

+2

Das stimmt, danke @TwoStraws. Das Problem tritt bei Simulator auf, es funktionierte auf einem echten Gerät. –

+2

Ich habe auf einem echten Gerät getestet und das Problem ist immer noch da. Es ist wie die App läuft für eine Weile, aber es endete mit dem gleichen Fehler: Fehler Domain = kAFAssistantErrorDomain Code = 203 "Timeout" UserInfo = {NSLocalizedDescription = Timeout, NSUnderlyingError = 0x17004ff30 {Fehler Domain = SiriSpeechErrorDomain Code = 100 "(null) "}} Haben Sie darüber nachgedacht? Danke –

+3

@VaVisal der Timeout-Fehler wird verursacht, nie endAudio-Methode der SFSpeechURLRecognitionRequest-Instanz aufrufen. –