Audio unit VoiceProcessingIO have echoes remain?

I use two audio unit obj (a,b)to do the intercom demo. and unitA to do the record .unitB to do the playback, use the AVAudioSession like this :
 [sessionInstance setMode:AVAudioSessionModeDefault error:&error];

    [sessionInstance setCategory:AVAudioSessionCategoryPlayAndRecord

                     withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker|AVAudioSessionCategoryOptionDuckOthers error:&error];


I use kAudioUnitSubTypeVoiceProcessingIO to do the echo cancellation. but When we talk in a quiet room ,the VPIO have echo remain ,at the end of every sentences.

iphone1 talk with iphone2 ,and iphone1 can hear some voice of iphone1, It's not eliminated of iphone2 by the kAudioUnitSubType
VoiceProcessingIO。

so have any function to change the delay-time when we use VoiceProcessingIO ?

Replies

VPIO (VoiceProcessingIO) doesn't do echo cancellation. Instead, it *subtracts* some of the audio output from the audio input, and there are no delay parameters to adjust.

First thing to try: do you hear the same echo (same timing, same volume) if you do not turn on VPIO? It's worth checking that you are really turning VPIO on.

You said:

iphone1 talk with iphone2 ,and iphone1 can hear some voice of iphone1

OK, but I don't know what this means:

It's not eliminated of iphone2

Can you explain what you mean?


I just want to say that when we talk in a particularly empty room use kAudioUnitSubTypeVoiceProcessingIO, the echo will have a little remain . This subtracts is not completely clean, and I can Make sure it(aec) works, Because when we talk in Normal environment(not very quiet),the AEC is work well . @ Polyphonic  (I am so sorry )