2017-05-16 17 views
0

「com.apple.coreaudio.avfaudio」、理由:「必要な条件が偽である:_recordingTapの==コードでクラッシュを取得nilのシリ実装アプリがキャッチされない例外によりにアプリを終了クラッシュの理由を取得

1. 
guard let inputNode = audioEngine.inputNode else { 
     fatalError("Audio engine has no input node") 
    } 
2. 
inputNode.installTap(onBus: 0, bufferSize: 1024, format: recordingFormat) { (buffer, when) in 
     self.recognitionRequest?.append(buffer) 
} 

も口述筆記した後、それは

我々は、テキストの口述を持っているがクラッシュしたばかりシリを再初期化しようとすると、私はSPからテキストをキャプチャしますeech。初回は、それはエラーがすでにそのバスに、あなたができることを、タップをインストールしていることを語っている

func getSpeech(asSpeach:String) 
{ 
    print("===================") 

    let audioSession = AVAudioSession.sharedInstance() 
    do { 
     try audioSession.overrideOutputAudioPort(.speaker) 
    } catch { 
     print(error.localizedDescription) 
    } 


    /// <#Description#> 
    let synthesizer = AVSpeechSynthesizer() 
    let utterance = AVSpeechUtterance(string: asSpeach) 
    utterance.rate = AVSpeechUtteranceDefaultSpeechRate 
    utterance.volume = 1.0 
    utterance.pitchMultiplier = 1.0 
    synthesizer.delegate=self 
    synthesizer.speak(utterance) 

    //  synthesizer.rSpeaking(at: .word) 


} 

答えて

0

の下に与えられたライン2

音声ディクテーション機能でクラッシュを取得して、[OK]が、2番目の時間です別のものがある。

最初にlisten()を呼び出すと、バスにタップがインストールされます。 次にstopListening()を呼び出し、認識を停止しますが、タップについては何もしません。 その後、もう一度listen()を呼び出すと、エラーを生成するタップを再度インストールしようとしています。

stopListening()を実行するときにremoveTapOnBusに何かを追加することができます。これは、再度リスンを開始するときに再び追加できることを意味します。

関連する問題