Audio Voice Components
Overview
This repository allows users to add additional functionality to the Maestro Audio framework. This structure is designed for integration with Maestro and is not intended for standalone use. For information on the use of individual components, please refer to the Maestro programmer’s guide.
This repository acts as Zephyr module, to be able to use these libraries in Zephyr build system.
Content
asrc - Libraries and public files of Asynchronous Sample Rate Converter, version 1.0.0
ssrc - Libraries and public files of Synchronous Sample Rate Converter, version 1.0.0
opus - Source files of Opus decoder and encoder, version 1.3.1
opusfile - Source files for Opus streams in the Ogg container, version 0.12
ogg - Source files of Ogg container, version 1.3.5
decoders - Libraries and public files of following audio decoders:
zephyr/ - Files allowing usage of the libraries in Zephyr build
Following table contains information about libraries and source files availability:
Processor | Toolchain | Source files | |||
---|---|---|---|---|---|
Cortex-M7(F) | Cortex-M33(F) | ARM GCC | IAR | ||
ASRC | Yes | X |
Yes | X | X |
SSRC | Yes | Yes | Yes | Yes | X |
Opus | X | X | X | X | Yes |
Opus File | X | X | X | X | Yes |
Ogg Container | X | X | X | X | Yes |
AAC | Yes | Yes | Yes | X | X |
FLAC | Yes | Yes | Yes | Yes | X |
MP3 | Yes | Yes | Yes | Yes | X |
WAV | Yes | Yes | Yes | Yes | X |
Asynchronous Sample Rate Converter
The Asynchronous Sample Rate Converter (ASRC) software module compensates the drift
between two mono audio signals. This is not a frequency converter and so the nominal signal
frequency is the same before and after the ASRC.
More details about ASRC are available in the User Guide, which is located in asrc\doc\
.
Synchronous Sample Rate Converter
The Synchronous Sample Rate Converter (SSRC) software module converts an audio signal (mono or stereo) with a certain sampling frequency to an audio signal with another sampling frequency. More details about SSRC are available in the User Guide.
Opus
For Opus decoder and encoder documentation please see following link: opus.
Opus File
The Opus File provides a API for decoding and basic manipulation of Opus streams in Ogg container and depends on Opus and Ogg libraries. For Opus File documentation please see following link: opusfile.
Ogg Container
For Ogg container documentation please see following link: ogg.
Decoders
Each decoder contains libraries for supported processor and toolchain (see table above), corresponding Public API file and documentation folder.
AAC
For decoder features please see aacdec, for API Usage please see aacd_ug.
FLAC
For decoder features please see flacdec, for API Usage please see flacd_ug.
MP3
For decoder features please see mp3dec, for API Usage please see mp3d_ug.
WAV
For decoder features please see wavdec, for API Usage please see wavd_ug.
Zephyr build
To add library into the Zephyr build, add CONFIG_NXP_AUDIO_VOICE_COMPONENTS_*
for specific libraries into your prj.conf.
For all configuration options, see zephyr/Kconfig.
List of supported libraries in Zephyr:
Decoders:
AAC
FLAC
MP3
FLAC
OPUS
Encoders
OPUS