BES通话算法调试指南

您所在的位置:网站首页 eq调试参数图 BES通话算法调试指南

BES通话算法调试指南

2023-06-10 18:08| 来源: 网络整理| 查看: 265

BES通话算法调试指南 BES通话算法列表BES通话配置和处理BES通话上下行通路BES通话算法调整上行通路通话算法介绍

本文以BES2500YP为例, 介绍了BES通话算法调试的一些基本的方法, 适合刚入门BES芯片软件开发的朋友, 读完本文可以对BES的通话算法的调试有个初步的基本的认识

BES通话算法列表

通话算法的宏开关存放在target.mk文件中(不同芯片, 不同项目的 target 可能不同), TX为上行, RX为下行, 以下为BES2500YP SDK默认的通话算法开关(不同芯片能打开的算法可能不同) 通话算法开关 SDK支持的通话算法列表, 包含单麦到三麦的通话算法, 不同通话算法占用的资源不同, 如下图 通话算法

BES通话配置和处理 首先是麦克风的配置, 根据硬件上支持的麦克风个数, 打开正确的算法开关. 比如硬件上有两个麦克风, 则需要配置如下图SPEECH_CODEC_CAPTURE_CHANNEL_NUM == 2条件下的麦克风的通道配置, 麦克风通道需要与硬件通道匹配 麦克风配置通话的上层数据应用在 app_bt_stream.cpp 文件中的 bt_sco_player 函数, 开启通话算法时需要根据不同算法类型变更主频, 比如三麦算法需要更高的主频, 则可以在bt_sco_player()函数中提高通话时的主频 设置通话主频通话算法的初始化以及使用, 在 bt_sco_chain.cpp文件中的speech_init()函数 上行通话处理speech_tx_process()函数和下行通话处理speech_rx_process()函数 通话算法的初始化 通话上下行处理, 这里可以拿到通话上下行原始的pcm数据 通话上下行处理 BES通话上下行通路

如下图为BES官方工具上画出的通话上下行的算法通路 上下行通路

BES通话算法 调整上行通路

使用默认模拟数字增益, 测试回声性能, 如果存在回声残留, 调整 AEC 相关参数, 需要注意的是调整AEC时需保证麦克风拾取的回声没有饱和, 控制麦克拾取到的回声大小. 如果最终的上行音量偏小, 需要调整 .tx_post_gain. 要注意的是CVSD编码在信号幅度大于 -6dBFs 的时候会存在失真 默认麦克风模拟增益已经最大, 默认 12dB, 参考对应的 analog_bestxxxx.c (比如 2500p系列芯片参考analog_best2500p.c), 通话模拟增益大小:

#define DEFAULT_VOICE_ADC_GAIN_DB 12

通话前级数字增益(CODEC_SAD_GAIN默认12, 一级约2dB~3dB, 参考tgt_hardware.h里面, 一般需要在无后端增益的情况下上行数据 PCM 能达到 -15dB 左右

#define CODEC_SADC_VOL (12) 通话算法介绍 回声消除算法(AEC) 回声消除算法推荐使用TX_AEC2FLOAT, 一般保持默认设置即可. 如果回声比较大的情况, 可以打开af_enable, 打开之后可能会有卡顿, 需要提升主频. 该模块还集成了通话上行噪声抑制, ns_enabled打开配合noise_supp的设置也可以有不错的噪声抑制效果 TXAEC2FLOAT通话噪声抑制算法 一般单麦算法可以直接使用AEC2FLOAT中的NS算法即可 双麦算法 推荐SPEECH_TX_2MIC_NS2 和 SPEECH_TX_2MIC_NS7 2MIC_NS2 三麦算法目前只有SPEECH_TX_3MIC_NS算法, 算法参数一般使用默认即可, 必要时可以使用audio_developer工具在线调试通话算法的质量 TX3MIC下行通话降噪 推荐RX_NS2FLOAT或SPEECH_RX_NS3 调整RX_NS2的denoise_dB的值或调整NS3的mode都能有不同的下行降噪的效果 RX降噪算法算法后级增益 算法增益即是一个简单的倍数放大, 比较简单, 单位为1dB, 算法后级增益也可以使用COMPEXP模块和EQ模块来调整. 如果打开了这两个模块, POST GAIN模块也可以不打开 算法后级增益COMPEXP模块 是一个小信号会被抑制, 大信号会被放大的模块, 一般调整makeup_gain会有不同效果 TX_COMPEXP上下行EQ SPEECH_TX_EQ和SPEECH_RX_EQ 目前最大支持20段EQ, 一般能满足客户需求. 如果需更多段数, 修改MAX_VQE_EQ_BAND重新生成libmultimedia即可. EqConfig使用常规的f0, gain, q来配置各段滤波器参数, 同时也支持使用RAWDATA滤波器参数 a1,a2,b0,b1,b2 来配置来直接配置, 其中 a0 默认为 1.f. 需要注意的是, 直接使用滤波器系数时需要同时提供宽带和窄带的滤波器系数 EQ BES通话效果调试比较麻烦, 算法涉及multimedia的lib, 不同SDK能打开的通话算法会有差异, 有时候还需要原厂支持, 通话效果调整参数项较多, 参数不太好确定效果, 无从下手的话, 建议可以使用audio developer工具的Speech Tuning功能在线调试效果


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3