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

# lib_voice: Voice processing library

Introduction

`lib_voice` is a collection of DSP components used to build a front-end voice processing pipeline.

At its core, the library provides high-performance audio processing algorithms that are combined into a configurable pipeline. The pipeline takes input from a pair of microphones and applies a sequence of signal processing stages to extract a clean voice signal from complex acoustic environments. An optional reference signal from a host system can be provided to enable Acoustic Echo Cancellation (AEC), removing echo from the microphone signal.

The pipeline produces two output streams: one optimized for Automatic Speech Recognition (ASR) systems and another suitable for voice communications.

`lib_voice` includes a flexible audio routing infrastructure and supports a range of digital inputs and outputs, allowing it to be integrated into a wide variety of system configurations. The pipeline can be configured at startup and adjusted during operation via a set configuration parameters. All source code is provided, enabling full customization and the integration of additional audio processing algorithms.

Usage

`lib_voice` is intended to be used with the XCommon CMake , the XMOS application build and dependency management system.

To use this library in an application include `lib_voice` in the application’s `APP_DEPENDENT_MODULES` list in CMakeLists.txt, for example:

    set(APP_DEPENDENT_MODULES "lib_voice")

Note

Dependent modules should be pinned to release versions where possible, otherwise the latest commit on the develop branch will be used. For further details on managing modules, pinning to a release version and other options, please see the page xcommon-cmake Dependency Management.

All `lib_voice` functions can be accessed via the `voice.h` header file, for example:

    #include "voice.h"

Documentation structure

This document will cover the following topics:

1. Audio processing : A walkthrough of the DSP modules supported by `lib_voice`.

2. Examples : Simple demonstrations of how to put APIs together and get them running.

3. Resource usage : Memory and CPU requirements for `lib_voice` DSP components

4. API reference : References to all DSP components’ APIs.