硬核干货!瑞芯微平台音频自动化测试套件全解析

电子说

1.4w人已加入

描述

 

 

 

 

在嵌入式音频开发中,瑞芯微(Rockchip)平台的音频编解码器(ACodec)测试一直是个繁琐活”——手动验证播放/采集、调节增益、校验链路稳定性,不仅效率低,还容易遗漏边界场景。今天给大家分享一套基于Shell脚本实现的瑞芯微音频功能自动化测试套件,覆盖音频全链路测试场景,彻底解放双手!

自动化测试

一、套件核心定位:解决音频测试的三大痛点

 

 

这套脚本专为瑞芯微平台音频硬件调试、功能验证设计,核心解决传统手动测试的三大问题:

 

 

 手动调节音量/增益,参数覆盖不全;

 

 

 长期稳定性测试(如5小时回环)耗时耗力;

 

 

 测试结果无标准化校验,异常定位难;

 

 

套件全部基于Shell脚本开发,轻量化、无额外依赖(仅需嵌入式Linux标配工具),支持交互式选择测试场景,开箱即用。

 

 

二、核心架构:一站式交互式测试入口

 

 

套件的核心入口是audio_functions_test.sh,运行后会弹出交互式选择界面,覆盖三大核心测试场景,新手也能快速上手:

 

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
******************************************************      Rockchip Platform Audio Functions Test       *******************************************************  Loop playback:                              [0]  *  # 循环播放(多采样率/格式)*  Loop capture:                               [1]  *  # 循环采集(全参数覆盖)*  Test loopback:                              [2]  *  # 播放→采集回环(长期稳定性)*  Exit audio test:                            [q]  ******************************************************

只需输入数字/字母,即可一键启动对应测试,无需手动敲复杂命令!

 

 

三、核心功能模块拆解

 

 

1. 循环播放测试:全参数覆盖兼容性

 

 

Loop playback0号选项)会自动遍历全采样率+多比特位+双声道组合,验证音频播放的兼容性:

 

 

采样率:8k/11.025k/16k…192k(覆盖12种常用规格);

 

 

比特位:16/24/32位;

 

 

声道:单/双声道(脚本默认遍历验证);

 

 

核心逻辑:通过sox生成440Hz标准正弦波,自动切换参数循环播放,无需提前准备音频文件。

 

 

2. 循环采集测试:验证采集链路完整性

 

 

Loop capture1号选项)是播放测试的反向验证,先初始化麦克风采集参数(PGA多路选择、数字增益、静音关闭等),再遍历多采样率/格式采集音频,生成标准化WAV文件:

 

 

  •  
  •  
# 采集文件命名规范(自动生成)cap_fs16000_format_S16_LE_ch2.wav

测试完成后,可通过adb pull /tmp/audio_test/cap_files/导出采集文件,本地验证音质与参数正确性。

 

 

3. 回环测试:长期稳定性的压测神器

 

 

Test loopback2号选项)是套件的核心功能,验证播放采集全链路的长期稳定性(默认5小时):

 

 

前置配置:初始化麦克风采集参数,确保链路畅通;

 

 

动态增益:ADC MIC增益按3dB步长循环切换,覆盖不同增益场景;

 

 

自动化流程:sox生成1000Hz正弦波持续播放,arecord采集并生成带增益标识的WAV文件(如loopback_fs16000_format_S16_LE_ch2_mic3db_0001.wav);

 

 

持久化存储:测试文件默认存/tmp/cap_files,避免占用设备持久化存储。

 

 

4. 精细化音量/增益控制:适配不同硬件链路

 

 

套件内置多套音量/增益调节脚本(acodec_test/目录),覆盖音频编解码器全参数:

 

 

脚本名

 

 

功能

 

 

可调范围

 

 

set_hpout_volume.sh

 

 

耳机输出音量调节

 

 

0~33

 

 

set_adc_mic_volume.sh

 

 

麦克风增益调节

 

 

数字0192/PGA 08

 

 

set_adc_alc_volume.sh

 

 

ALC采集音量调节

 

 

0~15

 

 

以调节耳机音量为例,只需一行命令:

 

 

  •  
  •  
# 设置耳机输出音量为20bash set_hpout_volume.sh 20

5. 结果校验+异常测试:精准定位问题

 

 

结果校验check_wavs.sh批量解析WAV文件的左右声道峰值电平,对比阈值(默认-15dB),生成stat.log(单文件统计)、result.log(最终结果),异常文件一目了然;

 

 

异常场景测试test_err_agc_gain.sh直接操作音频编解码器寄存器,验证AGC增益异常场景的边界条件,适配硬件调试的极端场景

 

 

6. 进程管理:避免测试残留

 

 

套件还内置stop_aplay.sh/stop_arecord.sh脚本,通过PID查找并强制终止播放/采集进程,解决测试中进程残留导致的设备占用问题。

 

 

四、快速上手:3步启动测试

 

 

步骤1:推送脚本到设备

 

 

  •  
  •  
  •  
adb shellcd /tmp/audiobash audio_functions_test.sh

步骤2:运行主测试脚本

 

 

  •  
  •  
  •  
adb shellcd /tmp/audiobash audio_functions_test.sh

步骤3:选择测试场景

 

 

输入数字(0/1/2)或q退出,脚本自动执行对应测试,全程无需人工干预。

 

 

五、扩展与定制:适配你的硬件场景

 

 

套件采用模块化脚本设计,可轻松适配不同瑞芯微硬件平台:

 

 

1.调整采样率/比特位:修改loop_playback()/loop_capture()中的fs_tbl/bits_tbl

 

 

2.新增测试场景:在audio_functions_test.shcase分支中添加自定义脚本调用;

 

 

3.调整回环测试时长:修改test_loopback.sh中的test_hours参数(默认5小时);

 

 

4.适配不同音频设备:调用脚本时传入自定义设备名(如bash audio_functions_test.sh hw:0,0 hw:0,1)。

 

 

六、总结

 

 

这套瑞芯微音频自动化测试套件,以Shell脚本为核心,覆盖播放采集回环校验全流程,既解决了手动测试的效率问题,又保证了测试覆盖度与可追溯性。无论是音频硬件调试、功能验证,还是长期稳定性压测,都是嵌入式音频开发的利器

 

 

如果你的项目也基于瑞芯微平台做音频开发,不妨试试这套脚本,欢迎在评论区交流适配经验~


审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分