1. 环境搭建
1.1. 安装 Python 3.8.0
请前往 Python 官方网站: Python。
Python 3.8.0 (64-bit) Setup 界面说明:
- Install Now: 使用默认设置安装 Python。
- Customize installation: 选择安装选项以启用或禁用功能。
- Includes IDLE, pip and documentation: 包含 IDLE、pip 和文档。
- Creates shortcuts and file associations: 创建快捷方式和文件关联。
- Install launcher for all users (recommended): 为所有用户安装启动器 (推荐)。
- Add Python 3.8 to PATH: 将 Python 3.8 添加到 PATH 环境变量。
1.2. 设置系统环境变量
- 在系统属性 > 高级设置中,找到环境变量。
- 在系统变量下,选择 Path 并编辑。
- 单击 新建,并将
python.exe
和pip.exe
程序的路径添加到环境变量中。例如以下路径(注意用您的实际用户名替换路径中的用户名):- C:\Users\用户名\AppData\Local\Programs\Python\Python38\
- C:\Users\用户名\AppData\Local\Programs\Python\Python38\Scripts\
1.3. Python 安装包
- 播放/录音 (
audio_uart_dump.py
) 安装包:python -m pip install --upgrade pip pip install pyserial
- 信号分析 (
audio_test.py
) 安装包:pip install numpy pip install soundfile pip install scipy pip install matplotlib
1.4. 安装音频分析软件 Audacity
请前往 Audacity 官方网站: Audacity。
2. 测试前准备
2.1. DUT 固件要求
新发布的 T5 软件支持声学测试,例如新软件编译出来的固件: tuyaos_demo_ai_toy_QIO_evb1.0.5.bin
。
2.2. 工具接线说明
工具: USB转 UART 板,用于 PC 与待测设备的命令通讯。
接线方法: 串口板连接到产品的 RX0、TX0、GND。
图片描述: 第一张图片展示了一个 TUYA 品牌的 USB 转 UART 适配器。第二张图片展示了 T5AI-EVB 开发板,它通过连接线与 UART 适配器相连,开发板上有屏幕和多个接口。
2.3. Python 脚本
请参考以下脚本:
audio_uart_dump.py
audio_test.py
3. 测试说明
3.1. 开始测试
打开 Windows 的命令提示符,进入 audio_uart_dump.py
文件夹运行 Python 脚本。
命令提示符示例:
d: cd D:\Test\T5AI-EVB python audio_uart_dump.py
命令提示符输出说明:
- 显示可用串口列表,例如:
COM6 Silicon Labs CP210x USB to UART Bridge (COM6)
。 - 提示选择串口号。
- 显示已打开的串口和波特率,例如:
已打开串口:COM6,波特率:2M
。 - 列出支持的命令及其说明。
3.2. 测试命令
3.2.1. 命令说明
命令 | 说明 |
---|---|
start | 启动录音 |
stop | 停止录音 |
reset | 重置录音 |
dump 0 | 转储麦克风通道到 dump_mic.pcm |
dump 1 | 转储参考通道到 dump_ref.pcm |
dump 2 | 转储 AEC 通道到 dump_aec.pcm |
bg 0 | 播放 White noise,即白噪音 |
bg 1 | 播放 1KHz/0dB (格式: bg 1 1000 ) |
bg 2 | 播放 Sweep frequency constantly,即连续扫频信号 |
bg 3 | 播放 Sweep discrete frequency,即多点扫频信号 |
bg 4 | 播放 Min single frequency,即最小单频信号 |
volume 50 | 设置音量为50% |
quit | 退出程序 |
3.2.2. 播放的音频信号说明
命令 | 说明 |
---|---|
bg 0 | White noise,即白噪音,-3dB,持续5秒 |
bg 1 | 1KHz 正弦波信号,0dB,持续5秒 |
bg 2 | 连续扫频信号(7500 Hz ~ 100 Hz), -3 dB,持续10秒 |
bg 3 | 多点扫频信号(7500 Hz ~ 50 Hz), -6 dB,持续7秒 |
bg 4 | 1KHz 信号,-90dB,持续5秒,用于测试设备底噪 |
举例说明:
bg 1 500
: 播放 500 Hz 的正弦波信号volume 70
: 设置音量为70%
bg 3 默认21个频点,频率和时长如下表:
频率 | 1000 | 7500 | 5800 | 4500 | 3500 | 2750 | 2150 | 1700 | 1300 | 1000 | 785 |
---|---|---|---|---|---|---|---|---|---|---|---|
时长 | 0.5 | 0.3 | 0.3 | 0.3 | 0.3 | 0.3 | 0.3 | 0.3 | 0.3 | 0.3 | 0.3 |
频率 | 600 | 475 | 370 | 285 | 255 | 175 | 135 | 100 | 80 | 65 | 50 |
---|---|---|---|---|---|---|---|---|---|---|---|
时长 | 0.3 | 0.3 | 0.3 | 0.3 | 0.3 | 0.3 | 0.3 | 0.3 | 0.5 | 0.5 | 0.5 |
bg 3 对应的文件: Sweep_7500-50Hz-21pt.xlsx
4. 声学性能测试和分析
4.1. 功放输出测试
测试内容: 输出功率、频响、底噪、THD。
方法: 通过 audio_uart_dump.py
产生测试信号,再用音频分析仪或示波器测量功放的输出信号。
4.2. MIC 测试
测试内容: 幅值、底噪、频响、THD 测试。
方法: 在消音室内用人工嘴外播测试信号,通过 audio_uart_dump.py
录音并转存 Mic 声道的音频文件,使用 Audacity 分析音频文件。
4.3. Ref 测试
测试内容: 幅值、底噪、频响、THD。
方法: DUT 自播自录,通过 audio_uart_dump.py
产生测试信号,录音并转存 Ref 声道的音频文件,使用 Audacity 分析音频文件。
4.4. Audacity 导入音频的方法
- 在 Audacity 中,单击 文件(F) > 导入 > 原始数据。
- 在“导入原始数据”窗口,按照如下图所示进行配置:
图片描述: Audacity 软件界面显示了“文件”菜单展开,并选中了“导入”下的“原始数据”选项。导入原始数据窗口显示了编码、字节序、声道、开始偏移、总计要导入和采样率等配置项。
4.5. 使用 audio_test.py 分析音频信号 (可选)
打开 Windows 的命令提示符,进入 audio_test.py
文件夹,运行 Python 脚本,例如:
d: cd D:\Test\T5AI-EVB\audio_test python audio_test.py --micl test_1k_mic.pcm --ref test_1k_ref.pcm --test_case 1k_single
audio_test.py
说明:
- 命令:
python audio_test.py --micl dump_mic.pcm --ref dump_ref.pcm --test_case 1k_single
- 参数:
参数 说明 mic1 测试音频文件 ref 参考音频文件 test_case 测试选项,有: 1k_single
、white_noise
、silence
不同文件对应不同测试项:
文件 | 测试项 |
---|---|
1K 单频对应测试项 | thdt , dc_offset |
白噪声对应测试项 | dc_offset , coherence , clip_detect , delay_stability |
静音文件对应测试项 | noise_floor |
测试项说明:
参数 | 说明 |
---|---|
dc_offset | DC 偏移量(通过/不通过) |
coherence | Mic 和 Ref 相关性(越接近1越好) |
noise_floor | 底噪 |
clip_detect | 音频截幅检测 |
thd | 总谐波失真(通过/不通过) |
delay_stability | 音频延迟稳定性 |
命令提示符输出示例 (测试结果):
开始测试 直流偏置(DC Offset): dc offset: 通过 dc offset: 通过 Micl: -0.000052, Ref: -0.000042 总谐波失真(THD): THD:通过 THD:通过 Mic1: 0.0059, Ref: 0.0017 结束测试