Skip to content

nxp-mcuxpresso/audio-voice-components

Repository files navigation

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:
    • aac - AAC decoder, version 1.0.0
    • flac - FLAC decoder, version 1.0.0
    • mp3 - MP3 decoder, version 1.0.0
    • wav - WAV decoder, version 1.0.0
  • zephyr/ - Files allowing usage of the libraries in Zephyr build

Following table contains information about libraries and source files availability:

<style type="text/css"> .tg {border-collapse:collapse;border-spacing:0;} .tg td{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:12px; overflow:hidden;padding:3px 5px;word-break:normal;} .tg th{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:12px; font-weight:normal;overflow:hidden;padding:3px 5px;word-break:normal;} .tg .tg-0lax{background-color:#ffffff;color:#000000;text-align:left;vertical-align:top} .tg .tg-1lax{background-color:#374F7F;color:#ffffff;text-align:left;vertical-align:center} </style>
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, which is located in ssrc\doc\.

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_ud.

FLAC

For decoder features please see flacdec, for API Usage please see flacd_ud.

MP3

For decoder features please see mp3dec, for API Usage please see mp3d_ud.

WAV

For decoder features please see wavdec, for API Usage please see wavd_ud.

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

About

NXP audio and voice libraries

Resources

License

Stars

Watchers

Forks

Packages

No packages published