This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AIC3254 and echo cancelation

Other Parts Discussed in Thread: TLV320AIC3254

We are trying to implement an audio echo cancelation system based on the AIC3254 Codec/DSP using PurePath studio. In the data sheet for the AIC3254 it states as one of the key uses for the chip is for use in acoustic echo cancellation (AEC). Are there any PurePath modules to implement this type of system? Does TI have any white papers or other resources describing how to accomplish this?
 
Thank you
Keith

 

  • Hello Keith,

    The AEC module will be made available in 3 weeks. Documentation will be distributed with the component, including instructions for algorithm application and tuning.

    Regards,

    JA

  • Any news on the echo cancelation ?

    For which sampling rates will it be able to run ?

  • Mikael,

    Our AEC algorithm runs at an 8kHz sampling rate.

    We are working hard on having this component released as soon as possible. We will let you know as soon as it is available.

    Regards,

    JA

     

  • JA,

    This sound good, we are looking for AEC component for AIC3254 too.

    Best Regards

    Andy Lu

  • Sorry for resurrecting an old thread but what is the status on the echo cancelation module for Purepath Studio?  Has this been released?  Has anyone tried it out? If so how well did you find it to work?  What was the learning curve on getting it up and running?

  • Hi Nkeddem,

    Yes. The AEC module has been released as of PurePath Studio for Portable Audio v2.0. The AEC component can be found under TI Algorithms. Documentation can be found by right-clicking the component and selecting Help. This component uses an 8kHz sampling rate framework called AIC3254_AEC.

    Regards,

    JA

  • In the premade examples from TI, the AEC demo uses I2S as the input/output for audio.

    In an embedded design, it's intresting to use the A/D & D/A of the CODEC for input/output combined with the AEC.

    Is it possible to instead use analog Input/Outputs under the AEC framework? And if so, which block should I use ?

    Regards

     

    Mikael

  • Mikael,

    The interprocessor component allows you to transfer data from the miniDSP_A to the miniDSP_D.

    Regards,

    J-

  • Something is at least happing now in the PurePath AEC-demo with the new win7 driver (2.03) [:D].

    I will try the AEC demo futher tomorrow (Stockholm time).

     

  • Using the little 'trick' to change the sampling rate from Windows perspective as well to 8 kHz; I'm now able to run the AEC-demo fed with speaking voices (from youtube) and listen in the headphone. [:D]

    The DSP is running since it is affecting the audio in real time, so I guess both the DSP-code and config are correct at least for ½ of the total Audio-path.

    Next step is to record the digital input to evaluate the performance of the AEC (but not with headphones of course)

  • I am currently testing Pure Path Studio 3.20 flow 'AIC3254_AEC_32_1' in conjuntion with the ASoC codec driver provided for tlv320aic3254 but I have the following problem:

    - If I load .cfg file through TiLoad utility at startup and try a simple 'aplay' command I can't hear anything.

    - If I issue an 'aplay' command before loading .cfg file through TiLoad, then if I issue another 'aplay' again I can listen to music but I suspect AEC is not running.

    Reviewing .cfg file it seems that it touches some registers that could interfer with the ASoC driver. For example, it touches 'DAC channel setup', 'ADC channel setup' registers and more.

    Can PPS generate a .cfg file that just loads AEC algorithm to miniDSPs and enable it without interferring with the ASoC driver?

     

    Thank you.

  • Hello Javier,

    PurePath Studio also has an option to generate header files. See http://e2e.ti.com/forums/p/10545/41226.aspx#41226.

    Regards,

    J-

  • Hi JA,

    is it possible to change the sampling to 16 kHz with that component or is it possible to do so in general?

  • Micky,

    If using USB Audio, you would need to re-program the firmware of the EVM to the correct sample rate. See the USBfirmware directory in the PurePath GDE installation folder for more information.

    There is a new feature in the GDE that allows editing the init script that is executed when loading the miniDSP code. You can paste (i.e. replace) the SystemSettingsCode (in attached zip) in the framework properties. This version of the code sets the codec clock settings depending on the selected sample rate variable in PurePath GDE.

    Regards,

    J-

    AIC3254_SystemSettingsCode.zip
  • In the help on the AEC Component I found:

    Additional information regarding the use and implementation of the AEC solution can be found in the following application note

       1. AIC3254 Acoustic Echo Cancellation (AEC) Application Note, version 1.1, May 29th, 2009

    Where can I find this note?

     

     

  • Micky,

    You can find it here:

    C:\Program Files\Texas Instruments Inc\PurePath Studio Portable Audio\ApplicationNotes

    Regards,

    J-

  • Hi,

    I've one more question, regarding the AEC: I'm having a somehow easier but different problem :

    I need to supress the echo of a simple microphone signal (no far end), just an input with an room or hall echo. Can I use the AEC modules then?

    Thanks in advance

    Micky

  • Micky,

    That's a different application. You could try one mic noise reduction or noise gating.

    Regards,

    J-

  • Hi.

    I now added an noise gate and have the following error:

    MemoryType usage: miniDSP_A_coeff: 236, miniDSP_A_data: 401, miniDSP_A_instr: 1006, miniDSP_A_instr_alloc: 1013, miniDSP_A_cycles: 889, miniDSP_A_cycles_alloc: 904,miniDSP_D_coeff: 146, miniDSP_D_data: 299, miniDSP_D_instr: 894, miniDSP_D_instr_alloc: 907, miniDSP_D_cycles: 771, miniDSP_D_cycles_alloc: 904

    Assemble failed
    Error: aic_gen.asm(12793): Address Expected : NoiseGate_1_one_m_beta - must be a Coefficient variable reference or a hex, decimal, or binary integer
    1 error detected
    Assembler was terminated.
    Summary: 1 Error(s)

    What do I wrong here?

  • HI,

      Could you send the process flow in which you see the above error. We shall have a look at it and get back to you.

    Regards,

    -M

  • Hi,

    Can you provide an email to where I should send it?

    regards

  • Hi,

      You could upload it here in the community. Please zip the .pfw file. 

    You can click on Options and upload it

    Regards,

    Mukund

  • Hi, I have the same compiler issue with the noise gate block, has this issue been resolved yet? How would I go about fixing this?

    Generating code for base_main_Rate16 .. assembling ...MemoryType usage: miniDSP_A_coeff: 83, miniDSP_A_data: 167, miniDSP_A_instr: 208, miniDSP_A_instr_alloc: 222, miniDSP_A_cycles: 208, miniDSP_A_cycles_alloc: 904,miniDSP_D_coeff: 85, miniDSP_D_data: 177, miniDSP_D_instr: 343, miniDSP_D_instr_alloc: 374, miniDSP_D_cycles: 301, miniDSP_D_cycles_alloc: 904

    Error: aic_gen.asm(2338): Address Expected : NoiseGate_1_one_m_beta - must be a Coefficient variable reference or a hex, decimal, or binary integer
    1 error detected
    Assembler was terminated.
    Summary: 1 Error(s)
    Code generation terminated on base main Rate16
    Build failed.
    NoiseGate_1: TargetProcessor value changed to miniDSP_A.

    Thanks

    M
  • This post was answered in another E2E thread:

    e2e.ti.com/.../2157284

    Best regards,
    Luis Fernando Rodríguez S.