2016-12-13 33 views
2

Appleを実行しようとしていますSpeakToMe:AVAudioEngineでの音声認識の使用のサンプルtheir website hereです。私の問題は、AVAudioEngineとSpeechRecognizerを停止すると、もはやシステムサウンドを使用できなくなることです。録音後のAVAudioEngineブロック音声の音声認識

AVAudioEngineとSpeechRecognizerをリリースして、録音が停止した後でサウンドが再び機能するようにするにはどうすればよいですか?

は、これを複製するには:

  • ダウンロードサンプルコード
  • ストーリーボードにするUITextFieldを追加します。
  • プロジェクトを実行し、テキストフィールドに入力します(入力イベントの音が聞こえることがわかります)。
  • これが唯一の本当のデバイス上で発生

UPDATE

(今音は鳴りません)次に、録音を開始し、再びテキストフィールドに

  • タイプの記録を停止 - ありませんシミュレータ上で

  • 答えて

    4

    何時間ものデバッグの後、私は解放されていないオブジェクトを見つけ、問題を引き起こしました。サンプルコードでは、AVAudioSessionを解放しません。これにより、サウンドチャネルがブロックされます。

    修正がAVAudioSession財産にすることです。その後、

    private var audioSession : AVAudioSession? 
    

    と記録を停止したときにfalseにaudioSession.activeを設定します。

    if let audioSession = audioSession { 
        do { 
         try audioSession.setActive(false, with: .notifyOthersOnDeactivation) 
        } catch { 
         // handle error 
        } 
    }