前言
对于音频的调试, BES提供了Audio Developer工具, 该工具不仅可以在线通话质量调试, 还可以支持将音频数据dump出来, 形成音频文件, 开发者可以导出音频文件, 播放音频文件试听调试算法.
实时抓取pcm数据时, 需要注意以下几点:
- 设置DEBUG UART的波特率, 波特率要大于dump时的数据量, 否则会丢包, 一个通道数据需要的波特率大概为400000(数值仅供参考, 具体数值请按实际测试的来计算);
- 调试用串口小板要能够支持DEBUG UART设定的波特率
准备工具
- 调试用串口小板(高速串口小板)
- 带线调试平台(以下以BES2500YP平台为例)
- audio_developer_v1.1.0或以上, CSDN下载地址: audio_developer
代码修改
以BES2500YP的SDK为例
-
在target.mk文件配置中增加AUDIO_DEBUG的宏定义, 参考如图
-
使能后串口打印波特率默认为2M波特率(图中波特率为默认设置, 请按项目实际需求修改), 注意串口也小板需要能够支持2M波特率
-
以下以dump麦克风上行pcm数据为例:
在bt_sco_chain.c文件中打开宏BT_SCO_CHAIN_AUDIO_DUMP
-
在apps/audioplayers/bt_sco_chain.c中调用audio_dump_init(), audio_dump_clear_up(), audio_dump_add_channel_data(), audio_dump_run()系列函数, 使用方法参考头文件中的注释说明
audio_dump_init中确认dump的音频通道数, 此处初始化了dump 4路通道的数据
-
使用audio_dump_add_channel_data()填入对应通道的pcm数据
如下图则表示通道2填入的是TX_AEC之前的pcm数据, 通道3填入的是TX_AEC之后的pcm数据
工具使用
- 打开dist目录下的main.exe启动audio developer工具
- 因为我们代码写的是dump通话 AEC前后的数据, 所以在通话的时候按以下步骤来进行设置
- 有dump出数据之后在数据保存的路径中会生成通话dump出来的音频文件.pcm文件, 此时可以使用AU工具或者cool edit工具打开音频pcm文件, 注意打开的时候选择的通道数要与初始化时候的通道数对应