Re: VoiceProcessingIO - echo cancellation issues
Re: VoiceProcessingIO - echo cancellation issues
- Subject: Re: VoiceProcessingIO - echo cancellation issues
- From: Raphaël - Mancing Dolecules <email@hidden>
- Date: Thu, 24 Jun 2010 00:38:51 +0200
It's software based as one of Apple engineer, Eric Allamanche, said that the higher quality algorithm in iOS4 is at the cost of higher CPU load in one of the WWDC talk.
I'm curious about the results with the iOS4, tell us what you find out :) !
Would be nice to have some clue about the inner working of the algorithms, and if the behaviors we found out are expected.
Raphaël
2010/6/23 Zachary Kulis
<email@hidden>
Hi Raphaël,
I've noticed the exact same thing on the original iPhone (Edge). If an
external mic is not connected, the input (render) callback will never
be invoked by the I/O thread. I think this must be a limitation of the
8Khz sampling rate (as you said).
I'm really trying to figure out if the AEC (acoustic echo cancellation)
is implemented in hardware (e.g., I would assume that the iPhone has a
dedicated chip to perform AEC in hands-free mode) or if it's just a
software algorithm running on the ARM. In either case, I'm really not
impressed with it. I actually wrote my own AEC last year and it
performs much better than the iPhone's VPIO audio unit. Hopefully these
issues are corrected in OS4.0 -- I am going to try right now...
Another thing that's kind of strange about the VPIO is that it seems
that the AGC (kAUVoiceIOProperty_VoiceProcessingEnableAGC) is a
software-based AGC that occurs *after* the AEC is performed. This is
not the best design, as it amplifies the residual echo that was not
canceled by the AEC algorithm. I was hoping that the AGC was
implemented as a preamplifier gain to the hardware A/D (i.e., applied
prior to performing the echo suppression), but I don't think this is
the case.
At any rate, I'm glad to hear that it works on the iPad. Also, I'm
relieved to know that I'm not the only one having trouble with this
audio unit...
-Zach
Hi Zachary,
I've done some tests today on the VoiceProcessingIO too.
I've also noticed that when using external speakers the echo
cancellation is not that good, if there is any at all (tested on an
iPod Touch 2G OS 3.1.3). On an iPhone Edge Os 3.1.3 using built-in
mic/speaker, the AU simply don't work (no callback called) whereas the
standard RemoteIO is fine, but works when headset is plugged. And on
the iPad using built-in mic/speaker, here it works quite well !
I suppose that on OS 3.X the echo cancellation is calibrated for "hand
free" use of the phone alone. Haven't tested on iOS4.
Is the VoiceProcessingIO simply not supported on the iPhone Edge using
built-in mic ? Would not be too surprised as the audio device seems to
be particular in this configuration (hardware sample rate limited to
8000Hz for example).
Thanks :) !
Raphaël
2010/6/23 Zachary Kulis
<email@hidden>
Hi
all,
I am trying to use the VoiceProcessingIO audio unit to perform acoustic
echo suppression for a VoIP chat client. I've noticed that the echo
cancellation in iPhone OS 3.X does not perform very well when the output
audio is connected to external speakers. I can hear that the VPIO unit
is performing *some* echo cancellation, but the suppression is not very
good.
I was wondering if anyone else has tried using the VPIO to perform echo
cancellation (using external speakers), and whether the results were
satisfactory. Also, iOS4 introduces a new quality parameter for the
VPIO; could anyone shed some light onto what this parameter actually
does?
Thanks,
Zach
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden