2016-06-14 9 views
7

staram użyciu rozpoznawania mowy jak poniżejiOS 10,0 Spracherkennung Błąd 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) 

    }) 

wynik jest zerowa, debugować i zobacz błąd jak poniżej

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

Czy masz jakikolwiek pomysł?

+0

Czy dodać 'klucz NSSpeechRecognitionUsageDescription' w Info.plist? –

+0

Dodałem już, ale ten sam problem. –

+0

Mając taką samą reakcję z symulatorem. Kiedy otworzyłem projekt "SpeakToMe" Xcode 8 Beta zażądał konwersji z Swift 2.3 na Swift 3. Zrobiłem to ... Co wszyscy zrobili? Czy ktokolwiek myśli, że ta konwersja może być problemem? –

Odpowiedz

11

Mam ten sam błąd, ale identyczny kod działa poprawnie na urządzeniu. Dlatego zainstaluj iOS 10 beta na fizycznym urządzeniu i uruchom swój kod. Coś jak to powinno załatwić sprawę:

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

To prawda, dzięki @TwoStraws. Problem pojawia się na Symulatorze, działał na prawdziwym urządzeniu. –

+2

Testowałem na prawdziwym urządzeniu, a problem nadal występuje. To tak, jakby aplikacja działała przez jakiś czas, ale zatrzymała się z tym samym błędem: Domena błędu = kAFAssistantErrorDomain Code = 203 "Limit czasu" UserInfo = {NSLocalizedDescription = Limit czasu, NSUnderlyingError = 0x17004ff30 {Domena błędu = SiriSpeechErrorDomain Code = 100 "(zero) "}} Każda myśl o tym? Dzięki –

+3

@VaVisal błąd limitu czasu jest spowodowany przez nie wywoływanie metody endAudio instancji SFSpeechURLRecognitionRequest. –

Powiązane problemy