语音通话demo
1、功能概述
通过wifi实现板子和手机apk双向语音通话。
2、代码路径
demo路径:
\components\demos\media\doorbell\src\doorbell.c
Aud_Intf API接口的详细说明请参考同网页:
/api-reference/multi_media/bk_aud_intf.html
3、cli命令简介
demo支持的命令如下表:
Command |
Description |
---|---|
video_transfer -a test 12345678 |
初始化语音通道 |
demo运行依赖的宏配置:
Name |
Description |
File |
value |
---|---|---|---|
CONFIG_AUDIO |
配置audio功能 |
|
y |
CONFIG_AUDIO_RISCV_IP_V1_0 |
配置audio ip |
|
y |
CONFIG_AUD_INTF |
配置aud_intf使能 |
|
y |
CONFIG_AUD_INTF_VER_NEW |
配置aud_intf版本使能 |
|
y |
CONFIG_AUD_INTF_TEST |
配置demo使能 |
|
y |
CONFIG_AUDIO_TRANSFER |
配置语音传输使能 |
|
y |
CONFIG_AUD_TRAS_MODE_CPU0 |
配置语音传输模式 |
|
y |
语音通话调试宏配置:
Name |
Description |
File |
---|---|---|
CONFIG_AUD_TRAS_AEC_DUMP_DEBUG |
配置aec dump |
|
CONFIG_AUD_TRAS_LOST_COUNT_DEBUG |
配置Tx丢包统计 |
|
CONFIG_AUD_TRAS_AEC_MIC_DELAY_DEBUG |
配置mic延迟debug |
|
CONFIG_AUD_TRAS_AEC_MIC_DELAY_POINTS |
配置mic延迟点数 |
|
- demo运行依赖的库和驱动:
DMA DMA驱动
AUD audio模块驱动
Sdcard 模块驱动
WIFI 模块
4、演示介绍
demo执行的步骤如下:
- 1.打开音频传输应用
Uart发送AT指令
video_transfer -a test 12345678
初始化语音通话应用- 2.建立wifi连接
手机wifi连接上test名字的路由, 密码为: 12345678
- 3.设置手机apk
连接成功后打开图传的app, 将
Settings->Demos Solution
设置为Video transfer
模式。- 4.开始语音通话
点击apk界面上的语音通话按钮开启语音通话
- 5.停止语音通话
再次点击apk界面上的语音通话按钮停止语音通话
5、语音通话功能适配说明
语音通话功能调试流程如下:
- 功能调试
1、关闭所有的调试宏
2、参考
bk_aud_intf_voc_init
接口的示例代码, 调用该接口初始化语音通话;3、调用
bk_aud_intf_write_spk_data
接口将收到apk端发送的语音数据写入板子播放;
- mic延迟点数调试
1、将调试宏
CONFIG_AUD_TRAS_AEC_DUMP_DEBUG
和CONFIG_AUD_TRAS_AEC_MIC_DELAY_DEBUG
设置为y, 编译bin进行测试, 通话一分钟, 将AEC算法的数据dump到tf卡;2、根据dump的数据, 计算mic的延迟点数, 并将点数值设置为宏
CONFIG_AUD_TRAS_AEC_MIC_DELAY_POINTS
的值(正常情况下使用默认值55即可);
- aec回声消除效果调试
1、打开语音通话;
2、根据听到的回声效果, 使用
Realtime Video
apk (可从github上开源的armino平台下载) 在线调试AEC和NS的参数, 并记录来最后的最优值;3、首先调整
echo depth
, 回声越大值设置越大, 当继续增大该值, 但是无法提升回声消除效果时停止设置该值;4、其次设置根据回声的大小范围设置
max amplitude
和min amplitude
的值, 优化回声消除效果;5、然后根据听到的底噪大小设置
noise level
底噪越大,设置的值越大, 优化底噪消除效果;4、最后设置
noise param
的值, 分别设置为0、1、2,选择效果最好的值;5、记录下所有参数的在线调试结果, 并设置为语音初始化时的默认参数。
备注
1.也可以采用AT指令的方式在线调试, 通过uart发送串口指令
aud_intf_set_aec_param_test {param value}
设置各参数的值。具体的调试流程和上述方法一致,详情请参考\components\demos\media\aud\aud_intf\demo\aud_intf_demo.c
中的示例.2.AEC在线调试参数设置界面如下图所示.

Figure 1. AEC参数设置入口界面

Figure 1. AEC参数设置界面
- 关闭所有调试宏
调试工作完成后关闭所有调试宏
备注
1.当前语音通话基于单mic场景, 8K采样率;