ESP GMF Audio is a collection of GMF elements related to audio processing, including audio encoding, decoding, and audio effect processing algorithms. The currently supported audio modules are listed in the table below.
| Name | TAG | Function | Method | Input Port | Output Port | Input blocking time | Output blocking time | Dependent on Audio Information |
|---|---|---|---|---|---|---|---|---|
| AUDIO_DEC | aud_dec | Audio decoder: MP3,AAC,AMRNB, AMRWB,FLAC,WAV,M4A,TS |
Nil | Single | Single | User configurable, default value is maximum delay | User configurable, default value is maximum delay | No |
| AUDIO_ENC | aud_enc | Audio encoder: AAC,AMRNB,AMRWB, ADPCM,OPUS,PCM |
Nil | Single | Single | User configurable, default value is maximum delay | User configurable, default value is maximum delay | Yes |
| RATE_CVT | aud_rate_cvt | Audio sampling rate adjustment | set_dest_rate |
Single | Single | Maximum delay | Maximum delay | Yes |
| BIT_CVT | aud_bit_cvt | Audio bit-depth conversion | set_dest_bits |
Single | Single | Maximum delay | Maximum delay | Yes |
| CH_CVT | aud_ch_cvt | Audio channel conversion | set_dest_ch |
Single | Single | Maximum delay | Maximum delay | Yes |
| ALC | aud_alc | Audio volume adjustment | set_gainget_gain |
Single | Single | Maximum delay | Maximum delay | Yes |
| EQ | aud_eq | Audio equalizer adjustment | set_paraget_paraenable_filterdisable_filter |
Single | Single | Maximum delay | Maximum delay | Yes |
| FADE | aud_fade | Audio fade-in and fade-out effects | set_modeget_modereset_weight |
Single | Single | Maximum delay | Maximum delay | Yes |
| SONIC | aud_sonic | Audio pitch and speed shifting effects | set_speedget_speedset_pitchget_pitch |
Single | Single | Maximum delay | Maximum delay | Yes |
| MIXER | aud_mixer | Audio mixing effects | set_infoset_mode |
Multiple | Single | The blocking time for the first channel is 0, while the blocking time for other channels is maximum delay | Maximum delay | No |
| INTERLEAVE | aud_intlv | Data interleaving | Nil | Multiple | Single | User configurable, default value is maximum delay | Maximum delay | Yes |
| DEINTERLEAVE | aud_deintlv | Data de-interleaving | Nil | Single | Multiple | Maximum delay | User configurable, default value is maximum delay | Yes |
The ESP GMF Audio is often used in combination to form a pipeline. For example code, please refer to test_app。
You can also create and compile a project using the following commands, taking the pipeline_play_embed_music project as an example. Before starting, make sure you have a working ESP-IDF environment.
Create the pipeline_play_embed_music example project based on the gmf_examples component (using version v0.7.0 as an example; update the version as needed):
Shell
idf.py create-project-from-example "espressif/gmf_examples=0.7.0:pipeline_play_embed_music"
Shell
cd pipeline_play_embed_music
idf.py set-target esp32s3
idf.py -p YOUR_PORT flash monitor
idf.py add-dependency "espressif/gmf_audio^0.7.0"