• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: VoiceProcessingIO - echo cancellation issues
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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

  • Follow-Ups:
    • Problem with AudioQueueOfflineRender in iOS4
      • From: Zachary Kulis <email@hidden>
References: 
 >VoiceProcessingIO - echo cancellation issues (From: Zachary Kulis <email@hidden>)
 >Re: VoiceProcessingIO - echo cancellation issues (From: Raphaël - Mancing Dolecules <email@hidden>)
 >Re: VoiceProcessingIO - echo cancellation issues (From: Zachary Kulis <email@hidden>)

  • Prev by Date: Re: iOS4 questions about Core Audio
  • Next by Date: QuickTime movie audio samples access on iOS
  • Previous by thread: Re: VoiceProcessingIO - echo cancellation issues
  • Next by thread: Problem with AudioQueueOfflineRender in iOS4
  • Index(es):
    • Date
    • Thread