更新时间:2025-08-27 07:40:42下载pdf
输出Mic通道的数据 - 输出回采通道的数据 = AEC处理后的数据
脚本路径:apps/tuyaos_demo_ai_toy/scripts/audio_test.py
python audio_test.py --mic1 dump_mic.pcm --ref dump_ref.pcm --test all
如果提示这个错误:
ModuleNotFoundError: No module named ‘numpy’
解决:pip install numpy
ModuleNotFoundError: No module named ‘soundfile’
解决:pip install soundfile
ModuleNotFoundError: No module named ‘scipy’
解决:pip install scipy
ModuleNotFoundError: No module named ‘matplotlib’
解决:pip install matplotlib
参数 | 含义 | 作用 |
---|---|---|
start_threshold_ms | VAD 激活(判定为 “有语音”)的持续时间,单位 ms | 当检测到语音信号时,需持续 300ms 才判定为 “有效语音”,避免短暂噪声误触发(如突发杂音)。 |
silence_threshold_ms | VAD 失活(判定为 “无语音”)的持续时间,单位 ms | 当语音消失后,需持续 500ms 无语音才判定为 “静音”,避免语音中间的短暂停顿被误判为结束(如说话时的自然换气) |
end_threshold_ms | VAD 静音超时时间,单位 ms | 若持续 30 秒未检测到语音,自动结束录音或重置 VAD 状态,避免长时间无语音时的无效等待 |
vad_frame_duration | VAD 的检测帧长,单位 ms | 将音频按 10ms 为一帧进行 VAD 分析,帧长越短,VAD 响应越灵敏(但计算量越大),10ms 是语音处理的常用帧长 |
scale | 灵敏度系数 | 调整语音检测的敏感度(0.1~3.0),值越小越敏感 |
参数 | 作用 |
---|---|
SPthr[0](中低频能量阈值) | VAD 判断的 “基础能量门槛”,用于过滤低能量的噪声(如环境杂音、电流声) |
SPthr[1](vad激活分数阈值) | 决定 VAD 从 “非激活” 到 “激活(判定为语音)” 的触发门槛。 |
SPthr[2](累计分数上限) | 限制 VAD 累计分数的最大值,避免分数无限增长影响 “语音结束” 的判断。 |
SPthr[3](语音帧评分权重(高概率)) | 对 “高概率为语音” 的音频帧,在累计分数时的加权值。 |
SPthr[4](语音帧评分权重(中概率) | 对 “中概率为语音” 的音频帧(如带轻微噪声的语音)的加权值。 |
SPthr[5](静音衰减步长) | 当判定为 “静音帧” 时,累计分数的衰减速度(每帧减少的值)。 |
SPthr [6]~SPthr [13](VAD 能量阈值辅助参数) | 这些参数是更精细的能量判断标准,用于补充基础阈值(SPthr [0]),通常与不同频段、时间窗口或能量比例相关 |
参数 | 作用 | 默认值(参考值) | 使用方式(场景) |
---|---|---|---|
ec_depth(回声消除深度) | 控制回声消除算法的强度,值越大,对回声的抑制能力越强。 | 20 (1-50) | ○强回声场景(如空旷房间、扬声器音量大、麦克风灵敏度高):设为 30~50(如会议室用音响外放时)。○弱回声场景(如小房间、耳机通话、低音量播放):设为 1~10(避免过度处理导致语音模糊)。 |
mic_delay(麦克风延迟补偿值) | 麦克风采集信号与扬声器播放信号的时间差(单位:采样点) | 0 (ms * Khz) | ○硬件延迟场景(如音频通过蓝牙传输、视频通话中音视频同步导致的延迟):通过分析 dump 数据中的回声信号与原始信号的时间差,设置对应采样点(例如延迟 10ms,采样率 48kHz 时,延时 = 10×48=480 采样点,设为 480)。○若未校准,AEC 会因回声信号与参考信号 “不同步” 而失效,导致回声残留。 |
ref_scale (参考信号缩放) | 调整 “参考信号”(即远端传来的语音,也是回声的源头)的幅度(0 = 最小,2 = 最大) | 0 (0、1、2) | ○远端信号弱(如对方说话声音小):设为 1 或 2,增强参考信号幅度,帮助 AEC 更精准识别回声。○远端信号过强(如对方音量过大导致参考信号失真):设为 0,避免参考信号过载影响回声判断。 |
voice_vol (语音音量) | 调整经过 AEC 处理后的音频输出音量 | 需要查看芯片手册 | ○本地环境嘈杂(如户外通话):增大值(如 15~20),让对方更清晰听到你的声音。○本地环境安静(如办公室):减小值(如 10~12),避免音量过高刺耳。 |
TxRxThr & TxRxFlr(发送 / 接收阈值(上下限) | 两者配合定义 “双工通话”(双方同时说话)时的幅度判断范围,控制本地语音(发送)和远端语音(接收)的平衡,避免一方声音被过度压制 | 上 30(20~50)下 6(3 ~10) | ○需优先保证本地语音发送(如演讲者发言):提高 TxRxThr(如 40),降低 TxRxFlr(如 4),扩大 “本地语音优先发送” 的范围。○双工平等场景(如普通聊天):保持默认值,确保双方同时说话时,声音都能被清晰传输(既不压制本地,也不忽略远端)。 |
ns_level ( 噪声抑制级别) | 控制对背景噪声(如电流声、环境杂音)的消除强度,值越大,降噪越强(但可能损失语音细节) | 5(1~8) | ○高噪声环境(如地铁、菜市场):设为 6~8,强力抑制背景噪声。○低噪声环境(如安静卧室):设为 1~3,保留更多语音细节(避免 “消声过度” 导致声音发闷)。 |
ns_para (噪声抑制参数) | 对ns_level的精细调节,值越小,对语音的保护越强(减少因降噪对语音的损伤) | 2(0、1、2) | ○噪声略高但语音较清晰(如办公室有空调声):ns_level=5时,ns_para=2(增强降噪)。○噪声极低(如专业录音室):ns_level=1时,ns_para=0(最小化对语音的影响)。 |
drc (动态范围压缩) | 平衡音频的动态范围(即 loud 与 soft 声音的差距),值越大,压缩越强,可使小声更清晰、大声不过载 | 4(0x10~0x1f) | ○音量波动大的场景(如车载通话,时远时近讲话):设为 0x1f(31),强压缩让音量更稳定。○需要保留语音动态的场景(如播客录制):设为 0x10(16),弱压缩保留自然的音量起伏。 |
https://doc.weixin.qq.com/doc/w3_AR0AegZIAOYCNRCmtWTOGTSG1twjZ?scode=AGQAugfWAAkcqlzACfAJMAEgYIAFA
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈