BES2300x笔记(5) -- 通话音量、回声与降噪调试

哈喽大家好,这是该系列博文的第五篇~ 篇~

<<【系列博文索引】快速通道 >>

通话算法调试指南下载

一、前言

一次心血来潮,使用正在开发的蓝牙耳机跟媳妇交流感情,正说着,媳妇那边却生气了,遂问原因,她说我吐字不清晰,声音又小,没一点子诚意!W.T…我明明诚意满满,难道是耳机的上行通话有问题?我赶紧换回手机,一顿口吐莲花操作,媳妇那头才消了气。
在这里插入图片描述

二、言归正传

1、声音小

打开BES的工程,在tgt_hardware.h中上行通话音量的宏CODEC_SADC_VOL默认是12,也就是对应的22dB;如图,如果通话时上行音量小,还可以加大到15(28dB)。

在这里插入图片描述
通过修改CODEC_SADC_VOL可以调整上行数字增益,增大通话上行音量,但此时会同等的把低频放大,可能会出现底噪或者通话不清晰的问题。

2、通话不清晰

通话算法的宏开关都在target.mk文件中(不同芯片,不同项目的target可能不同),含有TX的表示是上行算法参数,含有RX的表示是下行算法参数。

通话的上层数据应用在app_bt_stream.cpp文件中的bt_sco_player函数,开启通话算法时需要根据不同算法类型变更主频,所有算法参数都在 bt_sco_chain_cfg_default.c文件。
在这里插入图片描述
在这里插入图片描述

1)SPEECH_TX_EQ

首先打开宏SPEECH_TX_EQ,引入上行的EQ,通过调试EQ增益来消除底噪;(同理打开宏SPEECH_RX_EQ,可以调整下行的EQ,去掉几十Hz的背景音)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Acoustic Echo Canceller (AEC)
当双工(同时双向)通信中的一部分信号返回到源信号时,就称为“回声”。在长距离模拟和几乎所有的数字通信系统中,即使是很小的回波信号也会因为严重的往返延迟而造成干扰。

在语音通信终端中,由于扬声器和麦克风之间的声学耦合而产生声学回声。由于在通信信道中应用的非线性处理,如有损声码器和转码,回声波必须在设备内部进行局部处理(取消)。
Acoustic Noise Suppressor (ANS)
噪声抑制技术降低了单通道语音信号中的平稳和暂态噪声,提高了信噪比,提高了语音清晰度,降低了听力疲劳。

2)SPEECH_TX_AEC2FLOAT

SPEECH_TX_AEC2FLOA宏默认是打开的,也就是默认打开了回声AEC和噪音抑制ANS;(此时采用的是NS2FLOAT算法,可以把ns_enable改成false,打开更优的NS3版本的算法,更优的算法需要更高的主频,需要在bt_sco_player接口中提高主频:freq = APP_SYSFREQ_104M,否则会出现死机的情况,同样当添加第三方算法时,也需要把ns_enable改成false)。
在这里插入图片描述

3)SPEECH_TX_COMPEXP

如果出现消回声效果不理想,可尝试关闭宏SPEECH_TX_COMPEXP;由于宏SPEECH_TX_COMPEXP这里有6dB的增益,关闭宏会导致上行音量降低6dB;这时可采用后端补偿:通过打开宏SPEECH_TX_POST_GAIN,把增益增加6dB。
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zhanghuaishu0/article/details/114037337