2017-08-07 38 views
1

私はAVAudioEngineをオーディオストリーミングに使用しています。しかし、私がマイクにどんな言葉を話しても、それはエコー効果と同じように、何度も繰り返されます。私は話したい時は、一度だけ聞こえ、複数回は聞こえません。エコーや余分なノイズをキャンセルしたい。AVAudioEngineでエコー/リピート音をキャンセルまたは削除するにはどうすればよいですか?

どうすればこの問題を解決できますか?

var peerAudioEngine: AVAudioEngine = AVAudioEngine() 
var peerAudioPlayer: AVAudioPlayerNode = AVAudioPlayerNode() 
var peerInput: AVAudioInputNode? 
var peerInputFormat: AVAudioFormat? 

func setUpAVPlayer() { 
    self.peerInput = self.peerAudioEngine.inputNode 
    self.peerAudioEngine.attach(self.peerAudioPlayer) 
    self.peerInputFormat = AVAudioFormat.init(commonFormat: .pcmFormatFloat32, sampleRate: 44100, channels: 1, interleaved: false) 
    self.peerAudioEngine.connect(self.peerAudioPlayer, to: self.peerAudioEngine.mainMixerNode, format: self.peerInputFormat) 

    print("\(#file) > \(#function) > peerInputFormat = \(self.peerInputFormat.debugDescription)") 
} 
+0

を訪問することができます詳細情報については

私たちにあなたがこれまでに行っているかについて、いくつかのコードを表示してください。 –

+0

@ParasGorasiya私のコードを確認してください –

+0

エコーを作成する環境に何かを録音していますか? –

答えて

0

は、私はあなたがこのコードをあなたが話した後、あなたのマイクをミュートすることができている他のアプローチを検討する必要があります。また

var reverbNode = AVAudioUnitReverb() 
reverbNode.loadFactoryPreset(AVAudioUnitReverbPreset.Cathedral) 
reverbNode.wetDryMix = 60 
// Attach the audio effect node corresponding to the user selected effect 
peerAudioEngine.attachNode(reverbNode) 

とあなたが持っていることによって、あなたの問題を解決することができるはずだと思いますpeerAudioEngineが入力オーディオをミュートしていないときに手動で検出します。

これは、スピーチからのエコーを完全に排除します。あなたは http://asciiwwdc.com/2014/sessions/502

+0

動作していない、エコーキャンセルしない:( –

+0

他に解決策はありますか? –

関連する問題