60 lines
6.0 KiB
ReStructuredText
Raw Normal View History

2025-10-10 16:07:00 +08:00
audio常见问题
=================================
:link_to_translation:`en:[English]`
1. 简介
---------------------------------
在开发audio应用时有些常见的问题可能会遇到下面提供一些调试方法。
Q打开UAC语音通话手机端听不到声音
A按照下述步骤排查
* 1.检查语音通话打开流程的log看是否有异常报错。
* 2.检查uac mic的数据量统计log ``[UAC] mic: 15KB/s, spk: 15KB/s`` 8k采样率和16k采样率下的uac mic数据量应该分别为15KB/s和30KB/smic的数据量为0或者小于指定值都是不对的说明获取uac mic数据存在异常需要使用usb抓包工具抓取usb协议数据进一步分析。
* 3.如果uac mic数据量正常则需要检查设备端Tx发送数据量统计log ``[AUD Tx] 7KB/s`` 如果数据量为0则说明wifi发包异常。
* 4.如果上述数据量检查都正常则需要在手机apk端把接收到的mic数据dump到文件中在pc上检查mic数据是否正常。如果mic数据正常则说明是apk播放存在异常例如手机音量为0数据处理异常等如果mic数据不正常说明uac mic采集的原始数据可能就是异常的例如数据全是0、数据不对等需要使用usb抓包工具抓取usb协议数据进一步分析确认mic数据是否异常。
Q打开板载语音通话手机端听不到声音
A按照下述步骤排查
* 1.检查语音通话打开流程的log看是否有异常报错。
* 2.检查设备端Tx发送数据量统计log ``[AUD Tx] 7KB/s`` 如果数据量为0则说明wifi发包异常。
* 3.如果上述数据量检查正常则需要在手机apk端把接收到的mic数据dump到文件中在pc上检查mic数据是否正常。如果mic数据正常则说明是apk播放存在异常例如手机音量为0数据处理异常等
Q打开UAC语音通话设备端听不到声音
A按照下述步骤排查
* 1.检查语音通话打开流程的log看是否有异常报错。
* 2.需要检查设备端Rx接收数据量统计log ``[AUD Rx] 7KB/s`` 如果数据量为0则说明wifi收包异常。
* 3.如果Rx数据量正常则检查uac mic的数据量统计log ``[UAC] mic: 15KB/s, spk: 15KB/s`` 8k采样率和16k采样率下的uac speaker数据量应该分别为15KB/s和30KB/sspeaker的数据量为0或者小于指定值都是不对的说明写uac spk数据存在异常需要使用usb抓包工具抓取usb协议数据进一步分析。
* 4.如果上述数据量检查都正常则需要在手机apk端把发送的mic数据dump到文件中在pc上检查mic数据是否正常。如果数据不正常例如数据全是0、数据不对等则说明是apk采集的mic存在问题如果数据正常则需要使用usb抓包工具抓取usb协议数据进一步分析确认向uac发送的数据是否异常如果usb总线上的数据正常则说明是uac模块播放存在异常需要联系厂家处理如果usb总线上的数据不正常则说明wifi收包和软件处理的流程存在异常需要使用uart将数据dump出来逐级分析。
Q打开板载语音通话设备端听不到声音
A按照下述步骤排查
* 1.检查语音通话打开流程的log看是否有异常报错。
* 2.需要检查设备端Rx接收数据量统计log ``[AUD Rx] 7KB/s`` 如果数据量为0则说明wifi收包异常。
* 3.检查PA是否打开如果PA没有打开设备端端speaker一定是无声的。
* 4.如果数据量和PA检查正常则需要在手机apk端把发送的mic数据dump到文件中在pc上检查mic数据是否正常。如果数据不正常例如数据全是0、数据不对等则说明是apk采集的mic存在问题如果数据正常则说明wifi收包和软件处理的流程存在异常需要使用uart将数据dump出来逐级分析。
Q打开语音通话手机端听到的声音卡顿
A按照下述步骤排查
* 1.需要检查设备端Tx发送的数据量统计log ``[AUD Tx] 7KB/s`` 8k采样率和16k采样率下Tx发送的数据量分别为7KB/s和15KB/s。如果数据量小于该值则说明wifi发包异常。
* 2.如果发包数据量检查正常则需要检查AEC功能是否打开如果打开了AEC功能则声音卡顿可能是由于AEC参数没调试好导致可以关闭AEC功能或者停止手机端发送设备端发包再次进行复测复测正常则说明确实是由于AEC导致需要优化AEC参数。如果没有打开AEC功能则需要在手机端将收到的mic数据dump出来如果是uac mic的话也需要使用usb抓包工具抓取usb协议数据进一步分析。
Q打开语音通话设备端听到的声音卡顿
A需要检查设备端Rx接收数据量统计log ``[AUD Rx] 7KB/s`` 8k采样率和16k采样率下Rx接收的数据量分别为7KB/s和15KB/s数据量在指定值附近小幅浮动1KB/s是正常的如果数据量较少远低于指定值则说明wifi收包异常丢包、不连续等导致设备端声音卡顿。
Q: 板载喇叭播放的声音破音或者太小怎么办?
A破音或者太小说明音频经过audio模块数字增益、dac模拟增益和外部PA三级放大后幅值太高或太小。有下述四种方式方案来调整
* 1.调整输入音频的幅值。例如在语音通话场景下调整手机端采集的mic语音的幅值然后再wifi传输到设备端播放。
* 2.调整audio模块数字增益。可以调用 ``aud_dac.h`` 文件中提供的 ``bk_aud_dac_set_gain`` 接口来设置。
* 3.调整dac模拟增益默认为0xF。可以调用 ``aud_dac.h`` 文件中提供的 ``bk_aud_dac_set_ana_gain`` 接口来设置。
* 4.调整外部PA的增益。可以通过调整PA匹配电路来设置。