[Gta04-owner] Replicant: Android Echo Cancellation
Dr. H. Nikolaus Schaller
hns at goldelico.com
Sun May 10 11:34:28 CEST 2015
Am 09.05.2015 um 21:38 schrieb Adrien Dorsaz <adrien at adorsaz.ch>:
> Hi Lukas / gta04-community,
> I've begun to read Android HAL documentation and I've seen in the Audio topic  some notes which can be useful to avoid voice echo :
>> hardware/libhardware/include/hardware/audio_effect.h - represents effects that can be applied to audio such as downmixing, echo, or noise suppression.
> Just below this comment, Google says us to refer to the Samsung tuna device. So I've checked the Cyanogenmod repository for this device and I've found their audio_effects.conf file.
> Many audio effects are activated there, but I think we'll need the "Audio Echo Cancellation" (aec) module to resolve the issue about hearing self during voice call. I've noticed the URL of this configuration in that file . Just below this configuration, the "ns" module can also be interesting (Noise Suppression).
> These configuration make a reference to the 'libaudiopreprocessing.so' file (in the head of the audio_effects.conf) that I've found in my 'out/target/product/gta04/obj/lib' build directory. Maybe we'll be able to make a similar configuration for the GTA04 ?
> We've just one issue : it's to find the good UUID to set for the effects (which is used to find the good module). We've only this hint:
>> # The uuid is the implementation specific UUID as specified by the effect vendor. This is not the
>> # generic effect type UUID.
> I hope it has more meaning for someone here ? I have some hope, because I've seen in the libaudioprocessing.so files strings with 'AEC' and 'NS' refering to the module.s
> We just need the good UUID “as specified by the effect vendor".
But what could “UUID” mean in this context?
Generally echo cancellation might be done by a separate DSP or by software.
The OMAP3 chip has such a built-in DSP, but AFAIK the DSPbridge driver by Linux isn’t supported any more.
AFAIK, nobody has intensively used the DSP on open OMAP3 devices (not on BeagleBoard or OpenPanodra).
So could UUID refer to some firmware that is run by such a DSP? And the UUID identifies the filter module?
Then we would have to develop and provide it and AOSP  /  only chooses which filter should be selected.
Or, we do it like Radek when he developed a software echo cancellation filter for QtMoko. Since you mention ‘libaudiopreprocessing.so’ it could be pure software.
For hardware routing we do not need it at all since the GTM601 also has an echo cancellation filter that covers standard delay if the codec is connected directly.
We only need to do something for the software routing because the ALSA system introduces significant delays between module and speaker/microphone.
Just some speculation and random thoughts…
> Hope that's help,
> : AOSP Audio: https://source.android.com/devices/audio/implement.html
> : Audio Echo Cancellation: https://github.com/CyanogenMod/android_device_samsung_tuna/blob/6e456dc64677072b35d3720f8ced9ecab1520202/prebuilt/vendor/etc/audio_effects.conf#L102
> Gta04-owner mailing list
> Gta04-owner at goldelico.com
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Gta04-owner