545 lines
24 KiB
C
545 lines
24 KiB
C
|
|
/*********************************************************************************************
|
|||
|
|
* Filename : lib_driver_config.c
|
|||
|
|
|
|||
|
|
* Description : Optimized Code & RAM (编译优化配置)
|
|||
|
|
|
|||
|
|
* Author : Bingquan
|
|||
|
|
|
|||
|
|
* Email : caibingquan@zh-jieli.com
|
|||
|
|
|
|||
|
|
* Last modifiled : 2019-03-18 14:58
|
|||
|
|
|
|||
|
|
* Copyright:(c)JIELI 2011-2019 @ , All Rights Reserved.
|
|||
|
|
*********************************************************************************************/
|
|||
|
|
#include "app_config.h"
|
|||
|
|
#include "system/includes.h"
|
|||
|
|
#include "media/includes.h"
|
|||
|
|
#include "audio_adc.h"
|
|||
|
|
#include "audio_config.h"
|
|||
|
|
#include "media/hw_fft.h"
|
|||
|
|
#if TCFG_AUDIO_ANC_ENABLE
|
|||
|
|
#include "audio_anc.h"
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#if (TCFG_AUDIO_DECODER_OCCUPY_TRACE)
|
|||
|
|
const u8 audio_decoder_occupy_trace_enable = 1;
|
|||
|
|
const u8 audio_decoder_occupy_trace_dump = 0;
|
|||
|
|
#else
|
|||
|
|
const u8 audio_decoder_occupy_trace_enable = 0;
|
|||
|
|
const u8 audio_decoder_occupy_trace_dump = 0;
|
|||
|
|
#endif/*TCFG_AUDIO_DECODER_OCCUPY_TRACE*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
const int JL_HW_FFT_V = FFT_EXT ; //FFT硬件版本
|
|||
|
|
|
|||
|
|
/* #if (TCFG_APP_MUSIC_EN && !TCFG_DEC2TWS_ENABLE) */
|
|||
|
|
|
|||
|
|
const int WMA_TWSDEC_EN = 0; // wma tws 解码控制
|
|||
|
|
|
|||
|
|
// 解码一次输出点数,1代表32对点,n就是n*32对点
|
|||
|
|
// 超过1时,解码需要使用malloc,如config_mp3_dec_use_malloc=1
|
|||
|
|
const int MP3_OUTPUT_LEN = 1;
|
|||
|
|
const int WMA_OUTPUT_LEN = 1;
|
|||
|
|
|
|||
|
|
|
|||
|
|
#define FAST_FREQ_restrict 0x01 //限制超过16k的频率不解【一般超出人耳听力范围,但是仪器会测出来】
|
|||
|
|
#define FAST_FILTER_restrict 0x02 //限制滤波器长度【子带滤波器旁瓣加大,边缘不够陡】
|
|||
|
|
#define FAST_CHANNEL_restrict 0x04 //混合左右声道,再解码【如果是左右声道独立性较强的歌曲,会牺牲空间感,特别耳机听会听出来的话】
|
|||
|
|
const int config_mp3_dec_speed_mode = 0;//FAST_FREQ_restrict | FAST_FILTER_restrict | FAST_CHANNEL_restrict; //3个开关都置上,是最快的解码模式
|
|||
|
|
/* #endif // (TCFG_APP_MUSIC_EN && !TCFG_DEC2TWS_ENABLE) */
|
|||
|
|
|
|||
|
|
|
|||
|
|
const int WAV_MAX_BITRATEV = (48 * 2 * 32); // wav最大支持比特率,单位kbps
|
|||
|
|
|
|||
|
|
|
|||
|
|
// 解码一次输出点数,建议范围32到900,例如128代表128对点
|
|||
|
|
// 超过128时,解码需要使用malloc,如config_wav_dec_use_malloc=1
|
|||
|
|
const int WAV_DECODER_PCM_POINTS = 128;
|
|||
|
|
|
|||
|
|
// output超过128时,如果不使用malloc,需要增大对应buf
|
|||
|
|
// 可以看打印中解码器需要的大小,一般输出每增加1长度增加4个字节
|
|||
|
|
int wav_mem_ext[(1336 + 3) / 4] SEC(.wav_mem); //超过128要增加这个数组的大小
|
|||
|
|
|
|||
|
|
const int OPUS_SRINDEX = 0; //选择opus解码文件的帧大小,0代表一帧40字节,1代表一帧80字节,2代表一帧160字节
|
|||
|
|
|
|||
|
|
const int WTGV2_STACK2BUF = 0; //等于1时解码buf会加大760,栈会减小
|
|||
|
|
|
|||
|
|
const int const_sel_adpcm_type = 0;//1:使用imaen_adpcm, 0:msen_adpcm
|
|||
|
|
|
|||
|
|
#ifdef CONFIG_MIDI_DEC_ADDR
|
|||
|
|
const int MIDI_TONE_MODE = 0;//0是地址访问(仅支持在内置flash,读数快,消耗mips低),1 是文件访问(内置、外挂flash,sd,u盘均可,读数慢,消耗mips较大)
|
|||
|
|
#else
|
|||
|
|
const int MIDI_TONE_MODE = 1;
|
|||
|
|
#endif
|
|||
|
|
const int MAINTRACK_USE_CHN = 0; //MAINTRACK_USE_CHN控制主通道区分方式; 0用track号区分主通道 1用chn号区分主通道
|
|||
|
|
const int MAX_PLAYER_CNT = 18; //控制可配置的最大同时发声的key数的BUF[1,32]
|
|||
|
|
|
|||
|
|
#if CONFIG_MEDIA_LIB_USE_MALLOC
|
|||
|
|
const int config_mp3_dec_use_malloc = 1;
|
|||
|
|
const int config_mp3pick_dec_use_malloc = 1;
|
|||
|
|
const int config_wma_dec_use_malloc = 1;
|
|||
|
|
const int config_wmapick_dec_use_malloc = 1;
|
|||
|
|
const int config_m4a_dec_use_malloc = 1;
|
|||
|
|
const int config_m4apick_dec_use_malloc = 1;
|
|||
|
|
const int config_wav_dec_use_malloc = 1;
|
|||
|
|
const int config_alac_dec_use_malloc = 1;
|
|||
|
|
const int config_dts_dec_use_malloc = 1;
|
|||
|
|
const int config_amr_dec_use_malloc = 1;
|
|||
|
|
const int config_flac_dec_use_malloc = 1;
|
|||
|
|
const int config_ape_dec_use_malloc = 1;
|
|||
|
|
const int config_aac_dec_use_malloc = 1;
|
|||
|
|
const int config_ldac_dec_use_malloc = 1;
|
|||
|
|
const int config_aptx_dec_use_malloc = 1;
|
|||
|
|
const int config_midi_dec_use_malloc = 1;
|
|||
|
|
const int config_lc3_dec_use_malloc = 1;
|
|||
|
|
const int config_speex_dec_use_malloc = 1;
|
|||
|
|
const int config_opus_dec_use_malloc = 1;
|
|||
|
|
#else
|
|||
|
|
const int config_mp3_dec_use_malloc = 0;
|
|||
|
|
const int config_mp3pick_dec_use_malloc = 0;
|
|||
|
|
const int config_wma_dec_use_malloc = 0;
|
|||
|
|
const int config_wmapick_dec_use_malloc = 0;
|
|||
|
|
const int config_m4a_dec_use_malloc = 0;
|
|||
|
|
const int config_m4apick_dec_use_malloc = 0;
|
|||
|
|
const int config_wav_dec_use_malloc = 0;
|
|||
|
|
const int config_alac_dec_use_malloc = 0;
|
|||
|
|
const int config_dts_dec_use_malloc = 0;
|
|||
|
|
const int config_amr_dec_use_malloc = 0;
|
|||
|
|
const int config_flac_dec_use_malloc = 0;
|
|||
|
|
const int config_ape_dec_use_malloc = 0;
|
|||
|
|
const int config_aac_dec_use_malloc = 0;
|
|||
|
|
const int config_ldac_dec_use_malloc = 0;
|
|||
|
|
const int config_aptx_dec_use_malloc = 0;
|
|||
|
|
const int config_midi_dec_use_malloc = 0;
|
|||
|
|
const int config_lc3_dec_use_malloc = 0;
|
|||
|
|
const int config_speex_dec_use_malloc = 0;
|
|||
|
|
const int config_opus_dec_use_malloc = 0;
|
|||
|
|
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
const int LC3_SUPPORT_CH = 2; //lc3解码输入通道数 1:单声道输入, 2:双声道输入(br30可支持2)
|
|||
|
|
const int LC3_DMS_VAL = 25; //单位ms, 【只支持 25,50,100】
|
|||
|
|
const int LC3_DMS_FSINDEX = 4; //配置采样率【只支持0到4】,影响用哪组表以及一次的处理长度(<=8k的时候,配0. <=16k的时候,配1.<=24k的时候,配2.<=32k的时候,配3.<=48k的时候,配4)
|
|||
|
|
const int LC3_QUALTIY_CONFIG = 4;//【范围1到4, 1需要的速度最少,这个默认先配4】
|
|||
|
|
|
|||
|
|
//wts解码支持采样率可选择,可以同时打开也可以单独打开
|
|||
|
|
const int silk_fsN_enable = 1; //支持8-12k采样率
|
|||
|
|
const int silk_fsW_enable = 1; //支持16-24k采样率
|
|||
|
|
|
|||
|
|
/*省电容mic使能配置*/
|
|||
|
|
#if TCFG_SUPPORT_MIC_CAPLESS
|
|||
|
|
const u8 const_mic_capless_en = 1;
|
|||
|
|
#else
|
|||
|
|
const u8 const_mic_capless_en = 0;
|
|||
|
|
#endif/*TCFG_SUPPORT_MIC_CAPLESS*/
|
|||
|
|
|
|||
|
|
// 快进快退到文件end返回结束消息
|
|||
|
|
const int config_decoder_ff_fr_end_return_event_end = 0;
|
|||
|
|
|
|||
|
|
|
|||
|
|
const int config_audio_eq_en = 0
|
|||
|
|
#if TCFG_EQ_ENABLE
|
|||
|
|
| EQ_EN //eq使能
|
|||
|
|
#if TCFG_EQ_ONLINE_ENABLE
|
|||
|
|
| EQ_ONLINE_EN //在线调试使能
|
|||
|
|
#endif/*TCFG_AUDIO_OUT_EQ_ENABLE*/
|
|||
|
|
#if TCFG_USE_EQ_FILE
|
|||
|
|
| EQ_FILE_EN //使用eq_cfg_hw.bin文件效果
|
|||
|
|
|
|||
|
|
#if TCFG_EQ_FILE_SWITCH_EN
|
|||
|
|
| EQ_FILE_SWITCH_EN //使能eq_cfg_hw.bin多文件切换,对应旧版config_audio_eq_file_sw_en
|
|||
|
|
#endif
|
|||
|
|
#endif/*TCFG_USE_EQ_FILE*/
|
|||
|
|
#if TCFG_AUDIO_OUT_EQ_ENABLE
|
|||
|
|
| EQ_HIGH_BASS_EN //高低音接口使能
|
|||
|
|
| EQ_HIGH_BASS_FADE_EN //高低音接口数据更新使用淡入淡出,配合config_audio_eq_fade_step步进使用
|
|||
|
|
#endif/*TCFG_AUDIO_OUT_EQ_ENABLE*/
|
|||
|
|
#if (RCSP_ADV_EN)&&(JL_EARPHONE_APP_EN)&&(TCFG_DRC_ENABLE == 0)
|
|||
|
|
/* |EQ_FILTER_COEFF_LIMITER_ZERO_EN */
|
|||
|
|
#endif
|
|||
|
|
#ifndef CONFIG_SOUNDBOX_FLASH_256K
|
|||
|
|
| EQ_HW_UPDATE_COEFF_ONLY_EN
|
|||
|
|
| EQ_HW_LR_ALONE
|
|||
|
|
#endif/* CONFIG_SOUNDBOX_FLASH_256K */
|
|||
|
|
#if defined(EQ_CORE_V1) && TCFG_DRC_ENABLE
|
|||
|
|
| EQ_SUPPORT_MULIT_CHANNEL_EN //eq是否支持多声道(3~8) 打开:支持 否则:仅支持1~2声道*/
|
|||
|
|
| EQ_HW_CROSSOVER_TYPE0_EN //硬件分频器用序列进序列出
|
|||
|
|
//|EQ_HW_CROSSOVER_TYPE1_EN //硬件分频器使用块出方式,会增加mem(该方式仅支持单声道处理)
|
|||
|
|
#endif/*(EQ_CORE_V1) && TCFG_DRC_ENABLE*/
|
|||
|
|
#if defined(TCFG_EQ_DIVIDE_ENABLE) && TCFG_EQ_DIVIDE_ENABLE
|
|||
|
|
| EQ_LR_DIVIDE_EN
|
|||
|
|
#endif/*TCFG_EQ_DIVIDE_ENABLE*/
|
|||
|
|
|
|||
|
|
#if defined(EQ_LITE_CODE) && EQ_LITE_CODE
|
|||
|
|
| EQ_LITE_VER_EN //不支持异步,不支持默认效果切换接口,仅支持文件解析
|
|||
|
|
#if TCFG_DRC_ENABLE
|
|||
|
|
| EQ_SUPPORT_32BIT_SYNC_EN //32bit同步方式eq使能,eq_lite_en后,该宏需使能
|
|||
|
|
#endif/*TCFG_DRC_ENABLE*/
|
|||
|
|
#endif/* EQ_LITE_CODE */
|
|||
|
|
| EQ_FILTER_COEFF_FADE_EN//默认系数切换更新时使用淡入淡出
|
|||
|
|
|
|||
|
|
#if defined(EQ_CORE_V1)
|
|||
|
|
| EQ_SUPPORT_OLD_VER_EN //AC700N,或上BIT(1)支持版本0.7.1.0,0.7.1.1
|
|||
|
|
#endif/*EQ_CORE_V1*/
|
|||
|
|
#endif/* TCFG_EQ_ENABLE */
|
|||
|
|
| 0; //end
|
|||
|
|
|
|||
|
|
const float config_audio_eq_fade_step = 0.1f;//播歌高低音增益调节步进
|
|||
|
|
|
|||
|
|
|
|||
|
|
const int const_eq_debug = 0;
|
|||
|
|
const int AUDIO_EQ_CLEAR_MEM_BY_MUTE_TIME_MS = 0;//300 //连续多长时间静音就清除EQ MEM
|
|||
|
|
const int AUDIO_EQ_CLEAR_MEM_BY_MUTE_LIMIT = 0; //静音判断阀值
|
|||
|
|
|
|||
|
|
const int config_audio_drc_en = 0
|
|||
|
|
#if TCFG_DRC_ENABLE
|
|||
|
|
| DRC_EN //drc使能
|
|||
|
|
#if ((defined(TCFG_AUDIO_HEARING_AID_ENABLE) && TCFG_AUDIO_HEARING_AID_ENABLE) || TCFG_CVP_UL_DRC_ENABLE || (defined(TCFG_AUDIO_BASS_BOOST)&&TCFG_AUDIO_BASS_BOOST) || defined(TCFG_AUDIO_MDRC_ENABLE) && TCFG_AUDIO_MDRC_ENABLE)
|
|||
|
|
| WDRC_TYPE_EN
|
|||
|
|
#endif
|
|||
|
|
/* |DRC_COMPRESSOF_DIS //关闭压缩器 */
|
|||
|
|
/* |DRC_NBAND_DIS //关闭多带压缩器,关闭多带限幅器 */
|
|||
|
|
#endif /*TCFG_DRC_ENABLE*/
|
|||
|
|
| 0; //end
|
|||
|
|
|
|||
|
|
#ifdef CONFIG_ANC_30C_ENABLE
|
|||
|
|
const char config_audio_30c_en = 1;
|
|||
|
|
#else
|
|||
|
|
const char config_audio_30c_en = 0;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#if AUDIO_SURROUND_CONFIG
|
|||
|
|
const int const_surround_en = BIT(2) | 1;//或上BIT(2)使能新的环绕音效
|
|||
|
|
#else
|
|||
|
|
const int const_surround_en = 0;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#if AUDIO_VBASS_CONFIG
|
|||
|
|
const int const_vbass_en = 1;
|
|||
|
|
#else
|
|||
|
|
const int const_vbass_en = 0;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
const int A2DP_AUDIO_PLC_ENABLE = 0;
|
|||
|
|
const int LPC_JUST_FADE = 0; //播歌PLC仅淡入淡出配置, 0 - 补包运算(Ram 3660bytes, Code 1268bytes),1 - 仅淡出淡入(Ram 688bytes, Code 500bytes)
|
|||
|
|
const char config_audio_mixer_ch_highlight_enable = 0; //混音器声音突出功能使能
|
|||
|
|
|
|||
|
|
#ifdef SBC_CUSTOM_DECODER_BUF_SIZE
|
|||
|
|
const short config_sbc_decoder_buf_size = 512;
|
|||
|
|
#endif
|
|||
|
|
// tws音频解码自动设置输出声道。
|
|||
|
|
// 单声道:AUDIO_CH_L/AUDIO_CH_R。双声道:AUDIO_CH_DUAL_L/AUDIO_CH_DUAL_R
|
|||
|
|
// 关闭后,按照output_ch_num和output_ch_type/ch_type设置输出声道
|
|||
|
|
const int audio_tws_auto_channel = 1;
|
|||
|
|
|
|||
|
|
const int MP3_SEARCH_MAX = 200; //本地解码设成200, 网络解码可以设成3
|
|||
|
|
const int MP3_TGF_TWS_EN = 1; //tws解码使能
|
|||
|
|
const int MP3_TGF_POSPLAY_EN = 1; //定点播放 获取ms级别时间 接口使能
|
|||
|
|
const int MP3_TGF_AB_EN = 1; //AB点复读使能
|
|||
|
|
const int MP3_TGF_FASTMO = 0; //快速解码使能【默认关闭,之前给一个sdk单独加的,配置是否解高频,解双声道等】
|
|||
|
|
|
|||
|
|
#if (TCFG_MIC_EFFECT_ENABLE || TCFG_AUDIO_DAC_MIX_ENABLE)
|
|||
|
|
const int config_audio_dac_mix_enable = 1;
|
|||
|
|
#else
|
|||
|
|
const int config_audio_dac_mix_enable = 0;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#if TCFG_AUDIO_DAC_MIX_ENABLE
|
|||
|
|
const int config_audio_dac_noisefloor_optimize_enable = 0;
|
|||
|
|
#else
|
|||
|
|
const int config_audio_dac_noisefloor_optimize_enable = BIT(1);
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
// mixer在单独任务中输出
|
|||
|
|
#if TCFG_MIXER_CYCLIC_TASK_EN
|
|||
|
|
const int config_mixer_task = 1;
|
|||
|
|
#else
|
|||
|
|
const int config_mixer_task = 0;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
// mixer各个通道拥有独立buf
|
|||
|
|
const int config_mixer_ch_self_buf_en = 0;
|
|||
|
|
|
|||
|
|
#ifdef CONFIG_256K_FLASH
|
|||
|
|
// mixer模块使能。不使能将关闭大部分功能,mix为直通
|
|||
|
|
const int config_mixer_en = 0;
|
|||
|
|
// mixer变采样使能
|
|||
|
|
const int config_mixer_src_en = 0;
|
|||
|
|
|
|||
|
|
// audio解码资源叠加功能使能。不使能,如果配置了叠加方式,将改成抢占方式
|
|||
|
|
const int config_audio_dec_wait_protect_en = 0;
|
|||
|
|
|
|||
|
|
// audio数据流分支功能使能。
|
|||
|
|
const int config_audio_stream_frame_copy_en = 0;
|
|||
|
|
|
|||
|
|
// audio dec app调用mixer相关函数控制。关闭后需上层设置数据流的输出节点
|
|||
|
|
const int audio_dec_app_mix_en = 0;
|
|||
|
|
|
|||
|
|
#else
|
|||
|
|
|
|||
|
|
// mixer模块使能。不使能将关闭大部分功能,mix为直通
|
|||
|
|
const int config_mixer_en = 1;
|
|||
|
|
// mixer变采样使能
|
|||
|
|
const int config_mixer_src_en = 1;
|
|||
|
|
|
|||
|
|
// audio解码资源叠加功能使能。不使能,如果配置了叠加方式,将改成抢占方式
|
|||
|
|
const int config_audio_dec_wait_protect_en = 1;
|
|||
|
|
|
|||
|
|
// audio数据流分支功能使能。
|
|||
|
|
const int config_audio_stream_frame_copy_en = 1;
|
|||
|
|
|
|||
|
|
// audio dec app调用mixer相关函数控制。关闭后需上层设置数据流的输出节点
|
|||
|
|
const int audio_dec_app_mix_en = 1;
|
|||
|
|
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
// audio数据流分支cbuf大小控制
|
|||
|
|
const int config_audio_stream_frame_copy_cbuf_min = 128;
|
|||
|
|
const int config_audio_stream_frame_copy_cbuf_max = 1024;
|
|||
|
|
|
|||
|
|
// 超时等待其他解码unactive步骤完成
|
|||
|
|
const int config_audio_dec_unactive_to = 0;
|
|||
|
|
// audio数据流ioctrl使能
|
|||
|
|
const int config_audio_stream_frame_ioctrl_en = 0;
|
|||
|
|
|
|||
|
|
// audio dec app tws同步使能
|
|||
|
|
const int audio_dec_app_sync_en = 0;
|
|||
|
|
|
|||
|
|
// 解码使用单独任务做输出
|
|||
|
|
#if TCFG_AUDIO_DEC_OUT_TASK
|
|||
|
|
const int config_audio_dec_out_task_en = 1;
|
|||
|
|
#else
|
|||
|
|
const int config_audio_dec_out_task_en = 0;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
|
|||
|
|
#ifdef CONFIG_256K_FLASH
|
|||
|
|
const char config_audio_mini_enable = 1;
|
|||
|
|
#else
|
|||
|
|
const char config_audio_mini_enable = 0;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
enum {
|
|||
|
|
PLATFORM_FREQSHIFT_CORDIC = 0,
|
|||
|
|
PLATFORM_FREQSHIFT_CORDICV2 = 1
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
/* 备注: */
|
|||
|
|
/* br23/br25/br30/br34/br40是PLATFORM_FREQSHIFT_CORDIC */
|
|||
|
|
/* , br36/br28/br27是PLATFORM_FREQSHIFT_CORDICV2 */
|
|||
|
|
|
|||
|
|
#if (CONFIG_CPU_BR28 || CONFIG_CPU_BR27 || CONFIG_CPU_BR36)
|
|||
|
|
#define PLATFORM_PARM_SEL PLATFORM_FREQSHIFT_CORDICV2
|
|||
|
|
#else
|
|||
|
|
#define PLATFORM_PARM_SEL PLATFORM_FREQSHIFT_CORDIC
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
const int howling_freshift_PLATFORM = PLATFORM_PARM_SEL;
|
|||
|
|
const int howling_freshift_highmode_flag = 0; //移频快速模式
|
|||
|
|
const int howling_pitchshift_fastmode_flag = 1;//移频啸叫抑制快速模式使能
|
|||
|
|
|
|||
|
|
const int vc_pitchshift_fastmode_flag = 1; //变声快速模式使能
|
|||
|
|
const int vc_pitchshift_downmode_flag = 0; //变声下采样处理使能
|
|||
|
|
const int VC_KINDO_TVM = 1; //含义为EFFECT_VOICECHANGE_KIN0是否另一种算法 : 0表示跟原来一样,1表示用另一种
|
|||
|
|
const int RS_FAST_MODE_QUALITY = 2; //软件变采样 滤波阶数配置,范围2到8, 8代表16阶的变采样模式 ,速度跟它的大小呈正相关
|
|||
|
|
const int config_howling_enable_pemafrow_mode = 0;
|
|||
|
|
const int config_howling_enable_trap_mode = 1;//陷波啸叫抑制模式使能
|
|||
|
|
const int config_howling_enable_pitchps_mode = 1; //移频啸叫抑制模式使能
|
|||
|
|
|
|||
|
|
const unsigned char config_audio_dac_underrun_protect = 1;
|
|||
|
|
|
|||
|
|
#if ((SYS_VOL_TYPE == VOL_TYPE_DIGITAL_HW) || (SYS_VOL_TYPE == VOL_TYPE_DIGITAL))
|
|||
|
|
const char config_audio_dac_trim_enable = 1;
|
|||
|
|
#else
|
|||
|
|
const char config_audio_dac_trim_enable = 1;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#if TCFG_LOWPOWER_LOWPOWER_SEL
|
|||
|
|
const int config_audio_dac_delay_off_ms = 300;
|
|||
|
|
#else
|
|||
|
|
const int config_audio_dac_delay_off_ms = 0;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
const int config_audio_dac_vcm_chsel_delay = 1500;
|
|||
|
|
|
|||
|
|
|
|||
|
|
// 解码任务测试
|
|||
|
|
const int audio_decoder_test_en = 0;
|
|||
|
|
// 当audio_decoder_test_en使能时需要实现以下接口
|
|||
|
|
#if 0
|
|||
|
|
void audio_decoder_test_out_before(struct audio_decoder *dec, void *buff, int len) {} ;
|
|||
|
|
void audio_decoder_test_out_after(struct audio_decoder *dec, int wlen) {} ;
|
|||
|
|
void audio_decoder_test_read_before(struct audio_decoder *dec, int len, u32 offset) {} ;
|
|||
|
|
void audio_decoder_test_read_after(struct audio_decoder *dec, u8 *data, int rlen) {} ;
|
|||
|
|
void audio_decoder_test_get_frame_before(struct audio_decoder *dec) {} ;
|
|||
|
|
void audio_decoder_test_get_frame_after(struct audio_decoder *dec, u8 *frame, int rlen) {} ;
|
|||
|
|
void audio_decoder_test_fetch_before(struct audio_decoder *dec) {} ;
|
|||
|
|
void audio_decoder_test_fetch_after(struct audio_decoder *dec, u8 *frame, int rlen) {} ;
|
|||
|
|
void audio_decoder_test_run_before(struct audio_decoder *dec) {} ;
|
|||
|
|
void audio_decoder_test_run_after(struct audio_decoder *dec, int err) {} ;
|
|||
|
|
#else
|
|||
|
|
// 接口实现示例
|
|||
|
|
#include "audio/demo/audio_decoder_test.c"
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
|
|||
|
|
// 编码任务测试
|
|||
|
|
const int audio_encoder_test_en = 0;
|
|||
|
|
// 当audio_encoder_test_en使能时需要实现以下接口
|
|||
|
|
#if 0
|
|||
|
|
void audio_encoder_test_out_before(struct audio_encoder *enc, void *buff, int len) {} ;
|
|||
|
|
void audio_encoder_test_out_after(struct audio_encoder *enc, int wlen) {} ;
|
|||
|
|
void audio_encoder_test_get_frame_before(struct audio_encoder *enc, u16 frame_len) {} ;
|
|||
|
|
void audio_encoder_test_get_frame_after(struct audio_encoder *enc, s16 *frame, int rlen) {} ;
|
|||
|
|
void audio_encoder_test_run_before(struct audio_encoder *enc) {} ;
|
|||
|
|
void audio_encoder_test_run_after(struct audio_encoder *enc, int err) {} ;
|
|||
|
|
#else
|
|||
|
|
// 接口实现示例
|
|||
|
|
#include "audio/demo/audio_encoder_test.c"
|
|||
|
|
#endif
|
|||
|
|
//数字音量节点 是否使用汇编优化 不支持的芯片需置0
|
|||
|
|
#if(CONFIG_CPU_BR18)
|
|||
|
|
const int const_config_digvol_use_round = 0;
|
|||
|
|
#else
|
|||
|
|
const int const_config_digvol_use_round = 1;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
/*杰理KWS关键词识别*/
|
|||
|
|
#if TCFG_SMART_VOICE_ENABLE
|
|||
|
|
const int CONFIG_KWS_WAKE_WORD_MODEL_ENABLE = 0;
|
|||
|
|
const int CONFIG_KWS_MULTI_CMD_MODEL_ENABLE = 1;
|
|||
|
|
#if TCFG_CALL_KWS_SWITCH_ENABLE
|
|||
|
|
const int CONFIG_KWS_CALL_CMD_MODEL_ENABLE = 1;
|
|||
|
|
#else
|
|||
|
|
const int CONFIG_KWS_CALL_CMD_MODEL_ENABLE = 0;
|
|||
|
|
#endif
|
|||
|
|
#ifdef CONFIG_CPU_BR28
|
|||
|
|
const int CONFIG_KWS_RAM_USE_ENABLE = 1;
|
|||
|
|
#else
|
|||
|
|
const int CONFIG_KWS_RAM_USE_ENABLE = 2;
|
|||
|
|
#endif
|
|||
|
|
const int CONFIG_KWS_ONLINE_MODEL = 1;
|
|||
|
|
const float CONFIG_KWS_MULTI_CONFIDENCE[] = {
|
|||
|
|
0.4, 0.4, 0.4, 0.4, //小杰小杰,小杰同学,播放音乐,停止播放
|
|||
|
|
0.4, 0.4, 0.4, 0.3, //暂停播放,增大音量,减小音量,上一首
|
|||
|
|
0.3, 0.35, 0.35, 0.35, //下一首,打开降噪,关闭降噪,打开通透
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
const float CONFIG_KWS_CALL_CONFIDENCE[] = {
|
|||
|
|
0.4, 0.4, //接听电话,挂断电话
|
|||
|
|
};
|
|||
|
|
#else
|
|||
|
|
const int CONFIG_KWS_WAKE_WORD_MODEL_ENABLE = 0;
|
|||
|
|
const int CONFIG_KWS_MULTI_CMD_MODEL_ENABLE = 0;
|
|||
|
|
const int CONFIG_KWS_CALL_CMD_MODEL_ENABLE = 0;
|
|||
|
|
const int CONFIG_KWS_ONLINE_MODEL = 0;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#if (defined TCFG_AUDIO_ANC_ACOUSTIC_DETECTOR_EN) && TCFG_AUDIO_ANC_ACOUSTIC_DETECTOR_EN
|
|||
|
|
const int config_resample_pcm_frame_buffer = 512;
|
|||
|
|
#else
|
|||
|
|
const int config_resample_pcm_frame_buffer = 128;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
/*第二版串口写卡工具,支持写不定长度数据*/
|
|||
|
|
u8 const_audio_pcm_debug_v2_en = 0;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief Log (Verbose/Info/Debug/Warn/Error)
|
|||
|
|
*/
|
|||
|
|
/*-----------------------------------------------------------*/
|
|||
|
|
const char log_tag_const_v_EQ_CFG AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(FALSE);
|
|||
|
|
const char log_tag_const_i_EQ_CFG AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(FALSE);
|
|||
|
|
const char log_tag_const_d_EQ_CFG AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(FALSE);
|
|||
|
|
const char log_tag_const_w_EQ_CFG AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
|
|||
|
|
const char log_tag_const_e_EQ_CFG AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
|
|||
|
|
|
|||
|
|
const char log_tag_const_v_EQ_CFG_TOOL AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(FALSE);
|
|||
|
|
const char log_tag_const_i_EQ_CFG_TOOL AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(FALSE);
|
|||
|
|
const char log_tag_const_d_EQ_CFG_TOOL AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(FALSE);
|
|||
|
|
const char log_tag_const_w_EQ_CFG_TOOL AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
|
|||
|
|
const char log_tag_const_e_EQ_CFG_TOOL AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
|
|||
|
|
|
|||
|
|
const char log_tag_const_v_EQ_APPLY AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_i_EQ_APPLY AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_d_EQ_APPLY AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_w_EQ_APPLY AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
|
|||
|
|
const char log_tag_const_e_EQ_APPLY AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
|
|||
|
|
|
|||
|
|
const char log_tag_const_v_DRC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_i_DRC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_d_DRC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_w_DRC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
|
|||
|
|
const char log_tag_const_e_DRC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
|
|||
|
|
|
|||
|
|
const char log_tag_const_v_APP_DRC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_i_APP_DRC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_d_APP_DRC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_w_APP_DRC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
|
|||
|
|
const char log_tag_const_e_APP_DRC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
|
|||
|
|
|
|||
|
|
|
|||
|
|
const char log_tag_const_v_EQ AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_i_EQ AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_d_EQ AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_w_EQ AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
|
|||
|
|
const char log_tag_const_e_EQ AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
|
|||
|
|
|
|||
|
|
const char log_tag_const_v_AUD_ADC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_i_AUD_ADC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_d_AUD_ADC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_w_AUD_ADC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_e_AUD_ADC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
|
|||
|
|
const char log_tag_const_v_AUD_DAC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_i_AUD_DAC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_d_AUD_DAC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_w_AUD_DAC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_e_AUD_DAC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
|
|||
|
|
const char log_tag_const_v_APP_DAC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_i_APP_DAC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_d_APP_DAC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_w_APP_DAC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_e_APP_DAC AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
|
|||
|
|
const char log_tag_const_v_AUD_AUX AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_i_AUD_AUX AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_d_AUD_AUX AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_w_AUD_AUX AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_e_AUD_AUX AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
|
|||
|
|
const char log_tag_const_v_MIXER AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_c_MIXER AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_i_MIXER AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_d_MIXER AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
|
|||
|
|
const char log_tag_const_e_MIXER AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
|
|||
|
|
|
|||
|
|
const char log_tag_const_v_AUDIO_STREAM AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_c_AUDIO_STREAM AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_i_AUDIO_STREAM AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_d_AUDIO_STREAM AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
|
|||
|
|
const char log_tag_const_e_AUDIO_STREAM AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
|
|||
|
|
|
|||
|
|
const char log_tag_const_v_AUDIO_DECODER AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_c_AUDIO_DECODER AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_i_AUDIO_DECODER AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_d_AUDIO_DECODER AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
|
|||
|
|
const char log_tag_const_e_AUDIO_DECODER AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
|
|||
|
|
|
|||
|
|
const char log_tag_const_v_AUDIO_ENCODER AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_c_AUDIO_ENCODER AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_i_AUDIO_ENCODER AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_d_AUDIO_ENCODER AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
|
|||
|
|
const char log_tag_const_e_AUDIO_ENCODER AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
|
|||
|
|
|
|||
|
|
|
|||
|
|
const char log_tag_const_v_SYNCTS AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_c_SYNCTS AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_i_SYNCTS AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_d_SYNCTS AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(0);
|
|||
|
|
const char log_tag_const_e_SYNCTS AT(.LOG_TAG_CONST) = CONFIG_DEBUG_LIB(TRUE);
|
|||
|
|
|
|||
|
|
|
|||
|
|
|