Hide navigation sidebar
Hide table of contents sidebar
Back to top
Toggle table of contents sidebar

# Audio Processing

At the core of the Voice Framework are high-performance audio processing algorithms. The algorithms are connected in a pipeline that takes its input from a pair of the microphone and executes a series of signal processing algorithms to extract a voice signal from a complex soundscape. The audio pipeline can accept a reference signal from a host system which is used to perform Acoustic Echo Cancellation (AEC) to remove audio being played by the host. The audio pipeline provides two different output channels - one that is optimized for Automatic Speech Recognition systems and the other for voice communications.

A flexible audio signal routing infrastructure and a range of digital inputs and outputs enables the Voice Framework to be integrated into a wide range of system configurations, that can be configured at start up and during operation through a set of control registers. In addition, all source code is provided to allow for full customization or the addition of other audio processing algorithms.

## Audio Features

- Acoustic Echo Canceller Library
  - Repository Structure
  - Requirements
  - API Structure
  - Getting and Building
  - AEC Overview
  - API Reference
    - AEC Data Structure and Enum Definitions
    - AEC #define constants
    - AEC API
    - lib_aec Header Files
  - On GitHub
  - API
- Noise Suppression Library
  - Repository Structure
  - Requirements
  - Getting and Building
  - NS Overview
  - API Reference
    - NS API Functions
    - NS API Structure Definitions
    - NS Header Files
  - On GitHub
  - API
- Automatic Gain Control Library
  - Repository Structure
  - Requirements
  - Getting and Building
  - AGC Overview
  - API Reference
    - AGC API Functions
    - AGC Pre-Defined Profiles
    - AGC API Structure Definitions
    - AGC Header Files
  - On GitHub
  - API
- Automatic Delay Estimation and Correction Library
  - Repository Structure
  - Getting and Building
  - ADEC Overview
  - API Reference
    - ADEC API Functions
    - ADEC #define constants
    - ADEC Data Structure and Enum definitions
    - ADEC Header Files
  - On GitHub
  - API
- Interference Canceller Library
  - Repository Structure
  - Requirements
  - API Structure
  - Getting and Building
  - IC Overview
  - API Reference
    - lib_ic API Functions
    - lib_ic API State Structure
    - lib_ic API Definitions
    - lib_ic Header Files
  - On GitHub
  - API
- Voice To Noise Ratio Estimator Library
  - Repository Structure
  - Requirements
  - API Structure
  - Getting and Building
  - VNR Inference Model
    - Integrating a TensorFlow Lite model into the VNR module
  - VNR Overview
  - API Reference
    - lib_vnr feature extraction API Functions
    - lib_vnr inference engine API Functions
    - lib_vnr #defines common to feature extraction and inference
    - lib_vnr feature extraction #defines and data structure definitions
    - lib_vnr Header Files
  - On GitHub