HD AEC

HD AEC: High Definition Acoustic Echo Cancellation

True full-duplex operation under a wide dynamic range of audio levels.

Adaptive Digital Technologies

Listen: HD AEC Demo - Sampling Rate = 48 kHz

MICROPHONE INPUT (TX  IN)

Female voice: ECHO  –  Male voice: Near End talker 

Female voice (ECHO) is COMPLETELY REMOVED!

MICROPHONE OUTPUT (TX OUT)

Adaptive Digital’s HD AEC™ is a High Definition (HD), Multi-Mic Capable, Full-Duplex Acoustic Echo Canceller (AEC) which includes noise reduction (NR), as well as anti-howling, adaptive filtering, nonlinear processing, and double-talk detection. It supports bandwidths from 8 kHz. (Narrowband-NB) to 48 kHz. (Full-Band-FB).  

Adaptive Digital’s HD AEC product provides superior voice clarity and true full-duplex performance under a wide set of challenging acoustic environments. It is capable of eliminating the acoustic echo in difficult conditions such as unbalanced speech levels, close speaker to mic proximity, indoor/outdoor environments, background noise, reflective room surface, double talk, and echo path changes.

Adaptive Digital’s HD AEC technology can be found in a wide range of applications, like IP Intercom Systems, Conference Speakerphones for both large and small conference rooms/huddle rooms,  IP Desk Phones, Mobile Handsets, Radio over IP, and essentially anywhere where voice quality is affected by adverse room conditions.  Additionally, the HD AEC is effective in improving the performance of speech recognition algorithms when operating in an echoic environments.

Speech Recognition Preprocessor
SPEECH RECOGNITION: Additionally the HD AEC is effective in improving the performance of speech recognition algorithms when operating in an echoic environment

Features List

  • True full-duplex operation under a wide dynamic range of audio levels, even when microphone input signal is weak
  • Programmable sampling rate, supporting narrowband (8 kHz), wideband (16 kHz), super-wideband (32 kHz), and full-band (44.1, 48 kHz)
  • Improved adaptive nonlinear processor
  • Handles echo tails of up to 500 msec. and greater, with true full-duplex cancellation.
  • Spectrally representative comfort noise generator
  • Automatically adjusts for unknown bulk (buffering/audio driver) delay
  • Able to handle strong echo (speaker to microphone gains up to 20 dB)
  • Anti-Howling
  • Instantly adjusts to user-controlled speaker gain changes
  • Handles external user-controlled volume changes
  • Parameters are user configurable
  • Improved fast convergence and reconvergence
  • No divergence during double-talk
  • Integrated Automatic Gain Control (AGC)
  • Improves speech recognition performance in an echoic environment.
  • Integrated Next Gen Noise Reduction (NR)
  • Integrated Transmit Equalization

Availability

Platforms
Arm ® Devices – Armv7-A Cortex-A5/A7/A8/A9/A15/A17 | Armv8-A Cortex-A53/A57/A72 || Cortex-M4/M7/R5
Texas Instruments – TI TMS320C6000 C64x/C64x+/C66x, C674x | TMS320C5000 C55x
MIPS Architecture – MIPS64 Preliminary
Analog Devices – SHARC Preliminary

Operating Systems
Linux x86 (32-bit) / x64 (64-bit)
Windows 32-bit / 64-bit
Android
iOS

ADT HD AEC is available on the above Platforms: Other configurations are available upon request.

Specification Tables

NOTE: We specify MIPS (Millions of Instructions Per Second) as MCPS (Millions of Instruction Cycles Per Second). Unless otherwise specified, peak MIPS are indicated.

HD AEC ARM Cortex-A8/A9/A15/A17

CPU Utilization & Memory Requirements
All Memory usage is given in units of byte.
PlatformSampling RateTail Length (msec)Min MIPSAvg MIPSMax MIPSPer Channel Memory
Cortex-A88 kHz3250567424k
6452587433k
12853597954k
256536182109k
320546385143k
400546489191k
512576790
Cortex-A816 kHz329911214844k
6410211515461k
12810512116896k
256111134182180k
320116140186228k
400127155217293k
512151182250
Cortex-A832 kHz3219823231161k
6421124332796k
128226266354180k
256281321476396k
320263332479529k
400400483623718k
512467566729
Cortex-A848 kHz3229735147178k
64325380522136k
128375452650280k
256595710934678k
3206778081035932k
40081998512451302k
51295211521474

Note: MIPS generated with single mic enabled,running with on chip (internal) program and data memory only. 
Specifications measure on BeagleBoard-xM TI AM37x ARM Cortex-A-8 based MCU.

HD AEC ARM Cortex-M4

CPU Utilization & Memory Requirements
All Memory usage is given in units of byte.
PlatformSampling RateTail Length (msec)MIPS*per MicPer Channel Memory
Cortex-M48 kHz324447
644750
1285057
2565665
5128296
Cortex-M416 kHz328850
649457
12810765
25613296
512233147
Cortex-M432 kHz3213155
6413962
12814270
256180101
512250152

* with Anti-howling 
Note: HD AEC Cortex-M4 MIPS generated with 0 wait state FLASH. 
Specifications measured on TI Tiva C series ARM Cortex-M4 based MCU.

HD AEC ARM Cortex-M7

CPU Utilization & Memory Requirements
All Memory usage is given in units of byte.
PlatformSampling RateTail Length (msec)MIPS*per MicPer Channel Memory
Cortex-M78 kHz322647k
642850k
1283057k
2563465k
Cortex-M716 kHz325350k
645657k
1286465k
2567996k

* with Anti-howling 
Note: HD AEC Cortex-M4 MIPS generated with 0 wait state FLASH. 
Specifications measured on TI Tiva C series ARM Cortex-M4 based MCU.

HD AEC ARM C674x

CPU Utilization & Memory Requirements
All Memory usage is given in units of byte.
PlatformSampling RateTail Length (msec)MIPS* per MicPer Channel Memory
C674x8 kHz321925k
642034k
1282155k
25622110k
32024143k
40062160k
C674x16 kHz323345k
643461k
1283696k
25638180k
32043223k
40048250k
C674x32 kHz326556k
646786k
12871157k
25677350k
32081470k
40085470k
C674x48 kHz327868k
64103114k
128111234k
256125584k
320133814k
4001411100k

* with Anti-howling

Note: MIPS generated with single mic enabled, and running with on chip (internal) program and data memory only. 
When using external source for program and data memory, MIPS increase by 3x per enabled microphone.

 

HD AEC ARM C64x / C64x+

CPU Utilization & Memory Requirements
All Memory usage is given in units of byte.
PlatformSampling RateTail Length (msec)MIPS* per MicPer Channel Memory
C64x / C64x+8 kHz322230k
642745k
1283581k
25651179k
32057240k
40063300k
C64x / C64x+16 kHz324354k
645180k
12867140k
256101282k
320119365k
400150450k
C64x / C64x+32 kHz328575k
64103128k
128136259k
256204620k
320238847k
4003001000k
C64x / C64x+48 kHz3211099k
64132185k
128188410k
2562901085k
320
4003421534k

* with Anti-howling

Note: MIPS generated with single mic enabled, and running with on chip (internal) program and data memory only. 
When using external source for program and data memory, MIPS increase by 3x per enabled microphone.

HD AEC ARM C55x

CPU Utilization & Memory Requirements
All Memory usage is given in units of byte.
PlatformSampling RateTail Length (msec)MIPS*per MicProgram MemoryData MemoryPer Channel Memory
C55108 kHz32*3246k6k55k
C551016 kHz32*6563k

Note: MIPS generated with AGC, NR and CNG enabled. NR2 is not turned on.

 

HD AEC ARM Windows/Linux 32 Bit*

CPU Utilization & Memory Requirements
All Memory usage is given in units of byte.
*Contact Sales for 64 Bit numbers.
PlatformSampling RateTail Length (msec)MIPS* per MicPer Channel Memory
Windows/Linux
8 kHz328128k
649237k
12812758k
256186113k
320220147k
400262195k
Windows/x8616 kHz3216052k
6419468k
128248104k
256373187k
320429235k
400506301k
Windows/x8632 kHz3282156k
64108986k
1281409157k
2562284350k
3202489470k
4002702600k
Windows/x8648 kHz32126668k
64103114k
1281913234k
2562966584k
3203493814k
40014001004k

* with Anti-howling

Note: MIPS generated with single mic enabled, and running with on chip (internal) program and data memory only. 
When using external source for program and data memory, MIPS increase by 3x per enabled microphone.

Demos

HD AEC: Get the demos

Demo request form will put you in contact with our sales team. They will supply you with a complete list of hardware requirements. Demo/Eval agreement will be required to download the software. Thank you for your interest!

HD AEC STM32F746xx ARM® 32-bit Cortex®-M7

Hardware Requirements: STM32F769I-DISCOVERY Development Board 

HD AEC Full Duplex STM32F4 Demo ARM® 32-bit Cortex®-M74

Hardware Requirements: STM32F407G-DISC1, combined with the STM32F4BIS-BB extension board

HD AEC Linux VoIP Engine BeagleBone Green Demo

Hardware Requirements: BeagleBone Green (BBG), or BeagleBone Green Wireless (BBGW)

Click above to view HD AEC CPU Usage and Memory Requirements: Texas Instruments’ TMS320C6000, TMS320C5000 | Arm Architectures (v5, v6, v7-A/R, Armv7E-M, Armv8-A, Armv8-R) | Linux 32-bit/64-bit | Windows x86 / x64.

Adaptive Digital Technologies’ high definition acoustic echo canceller (HD AEC), has integrated Noise Reduction and AGC into its AEC algorithm and created appropriate hooks to make them work together seamlessly.

NOISE REDUCTION

Noise Reduction is done pre-NLP, resulting in a far cleaner audio stream feeding into the non-linear processor. By making the AGC aware of the AEC state, we can avoid having the AGC becoming a cause of howling. Changes in gain can adversely affect an AEC; Adaptive Digital’s HD AEC has the ability to adapt to changes in the acoustic path (including gain/loss changes.) And when the changes are known, like in the case of controlled gain changes, Adaptive Digital’s HD AEC has hooks that enable the application to tell it the nature of the gain change so it can adjust immediately rather than take time to reconverge.

AUTO GAIN CONTROL

Automatic Gain Control (AGC) is provided to help boost lower level speech signals in hands-free environments. The AGC algorithm is used to automatically adjust the speech level of an audio signal so that the level falls within a user-defined output level range. 

ANTI-HOWLING

Howling can occur when there is a full-duplex communication link with echo at both ends. These echo, or coupling, paths create feedback loops. In full-duplex communication systems where, by definition, both communication paths are open at all time, howling can be a serious issue. With Anti-howling enabled the HD AEC identifies when instability is starting to occur and takes action to mitigate the instance of feedback looping. HD AEC electronically removes both direct coupling and reflected echo, enabling true full-duplex hands-free telephony.

FAST CONVERGENCE and RECONVERGENCE

Convergence time is the time it takes the echo cancel algorithm to analyze the signal. This number can never be “0” as analyzing the signal is a critical part of the echo cancellation process. Adaptive Digital’s HD AEC analyses the signal in as finite a period as is possible to best develop the echo model, and then cancels the echo immediately.

DOUBLE-TALK

Superior Double-talk performance. Double talk occurs when the speech of two talkers overlap causing the audio signals to arrive simultaneously at the echo canceller. Detection of double-talk is vital to the performance of an acoustic echo canceller.

HD AEC VARIANTS

Single microphone (standard), Multi-microphone , and 

Dual-microphone with Noise Reduction. 

Single-microphone is used in most applications. Multi-microphone is used in applications such as high-end conference phones that make use of multiple microphones that are placed around conference room table. Dual-microphone with noise reduction is used in devices that have a primary microphone to capture speech and a secondary microphone that is used to measure background noise.

USER CONTROLLED PARAMETERS (SUMMARY)

  • Sampling Rate
  • Tail Length
  • Frame Size
  • NLP Control
  • AGC Control
  • Equalizer Control
  • Noise Reduction Control
  • Howling Control

Functional Description

 

The figure below is a simplified block diagram of the HD Acoustic Echo Canceller.HD AEC block diagram

 

The top half of the diagram shows the receive signal path, or the signal path from the telephone network to the speaker. The bottom half of the diagram shows the transmit signal path from the microphone toward the telephone network. The HD AEC cancels the echo that occurs between the speaker output and the microphone input.

 

The terms Rx (Receive) and Tx (Transmit) may be confusing at first because both the receive and transmit paths have inputs and outputs. The names receive and transmit are used from the point-of-view of the person at the speaker/microphone side.

The RxIn signal coming from the network is fed into the RxNLP (Receive Nonlinear Processor). Under difficult acoustic conditions, the RxNLP can improve full-duplex operation and hence the overall voice quality.

The output of the RxNLP is fed both to the transmit output (TxOut) and into the bulk delay block. The bulk delay block compensates for the buffering delay at the RxOut and TxIn interfaces as well as any other non-acoustic system delays in the path between RxOut and TxIn. The output of the bulk delay is fed to the adaptive filter.

The adaptive filter estimates the echo and subtracts it from the TxIn signal to form the residual signal.

The residual signal is fed to the noise reduction block. This noise reduction block removes background noise and therefore improves the signal to noise ratio of the transmit signal.

The adaptive filter works in conjunction with the bulk delay monitor, which monitors and adjusts bulk delay in situations where the bulk delay is unknown due non-deterministic audio drivers.

The output of the noise reduction block is fed into an equalizer. The equalizer is used to flatten out the frequency response of the transmit channel. This may be necessary due to the acoustics of the hands-free device and due to the characteristics of the microphone itself.

The output of the transmit equalizer is fed into the transmit non-linear processor (TxNLP). The TxNLP increases the echo attenuation by attenuating the residual by a variable amount based upon the talk state. The TxNLP block also includes a comfort noise generator.

Automatic Gain Control (AGC) is provided to help boost lower level speech signals in hands-free environments. The compute gain block computes the AGC gain. The output of the TxNLP is fed into the AGC gain block, which provides gain or loss depending upon the residual signal level. The output of the AGC is fed to the TxOut output of the AEC.

In the multi-microphone case, there is still a single receive path but there is one transmit path per microphone.
In the case of multi-microphone noise reduction, there is a single receive path, a complete transmit path for the primary microphone, and a partial transmit path for the secondary microphone. In this case, there are two transmit inputs (one for each microphone) but only one transmit output containing the echo cancelled and noise reduced signal.

speech

Significant Upgrades

"We have made significant changes to our core algorithm in order to boost efficiency. HD AEC operate in a higher audio bandwidth. We have improved implementation by simplifying and providing straight forward API."

Audio

Full-Duplex Operation

Even in challenging conditions such as unbalanced speech levels, close speaker to mic proximity, background noise, double talk, and echo path changes, AEC HD achieves good full-duplex performance.

Enhancements

  • Bi-directional NLP: Handles unbalanced speech levels of more than 18dB apart.

  • Achieves full-duplex performance even in close mic to speaker proximity: Automatic gain and level controls adjust levels automatically.

  • High Echo Return Loss (ERL) ratio: Ability to handle long tail lengths, speaker to microphone loss/gain, and feedback.

  • Enhanced double-talk detection /double-talk handling.

  • Fast reconvergence: Ability to adjust for echo path changes which can occur when someone moves inside the room, passes an object across the table, or enters or exits the room.

Function APIs

API function call summary

HDAEC_
AEC_ADT_create(..)         Create and initializes an echo canceller
AEC_ADT_createMMIC(…)         – channel (single mic, multi-mic, dual-mic with noise reduction)
AEC_ADT_createDMNR(…)         

AEC_ADT_apply(…)           Executes cancellation function 
AEC_ADT_applyMMIC(…)
 

AEC_ADT_applyTx(…)            Executes Transmit Only (for applications that require split tx/rx processing
AEC_ADT_applyRx(…)            Executes Receive Only (for applications that require split tx/rx processing
AEC_ADT_control(…)            Modify AEC parameters. Obtain status.
AEC_ADT_controlMMIC(…)
 

AEC_ADT_delete(…)             Deletes an echo canceller channel
AEC_ADT_deleteMMIC(…)

Translate »