向声音文件叠加随机扰动,常被用来检验识别系统在不理想环境中的稳定性,也可用于构造训练数据。看起来只需生成一串随机数再与波形相加,实际上最容易出错的正是“加多少”和“加了什么”。若直接写成原信号乘零点九五、噪声乘零点零五,两个系数只表达幅度比例;它们没有考虑原音频与随机序列本身的功率,因此不能稳定对应某个信噪比。换一段音量更小的录音,同样的零点零五可能已经淹没语音。
白描述频谱,高斯描述取值分布
白噪声的核心条件是功率谱密度在频率上保持常数,或在离散近似中表现为不同采样时刻不相关。它的名称来自“白色”包含广泛频率成分的类比,并不规定每个样本必须服从某一种概率分布。高斯噪声则说明样本幅值服从正态分布。序列既可以是高斯白噪声,也可以由均匀分布产生、经过去均值后近似白噪声;把两个词当作同义词,会让实验说明缺少一个重要维度。
- 均值:通常应接近零,否则加入的是直流偏移。
- 方差:决定随机序列的平均功率,但最终强度仍要与原信号比较。
- 相关性:决定噪声在时间上是否带有结构,滤波后就不再是理想白谱。
- 分布:影响极端幅值出现的频率,高斯与有界均匀序列的尾部行为不同。
数字音频又受到采样率和带宽限制,所以代码生成的是有限带宽、有限长度的离散白噪声近似,而不是数学上覆盖无限频率的理想过程。这个边界不妨直接写进实验记录,避免把模型定义与文件里的有限样本混为一谈。
先用目标信噪比反推噪声尺度
设原信号均方根为RMSs,原始随机噪声均方根为RMSn,目标信噪比为SNRdB。需要的噪声均方根应为RMSs除以十的SNRdB除以二十次方,再用该目标值与RMSn的比值缩放随机序列。这样,二十分贝和五分贝分别具有明确含义,也便于不同文件之间比较。纯静音片段的RMSs为零,不能沿用这条缩放式,应先决定跳过、使用绝对噪声标尺,还是按活动语音片段估计能量。

一个向量化流程比逐样本循环更容易审计
读取音频后,波形矩阵通常以“采样点乘声道”组织。噪声应使用相同尺寸,既避免长度错位,也能明确左右声道是否独立。均匀序列可由二倍随机数减一得到,正态序列可由标准正态随机函数生成;两者都要先移除样本均值,再按目标功率缩放。固定随机种子能让同一实验重复得到相同扰动,但训练数据增强若每轮都固定同一序列,反而会降低噪声多样性,因此应把种子作为实验配置而不是硬编码常量。
[x, fs] = audioread('audio.wav'); rng(2027); n = randn(size(x)); n = n - mean(n, 1); signalRms = sqrt(mean(x(:).^2)); noiseRms = sqrt(mean(n(:).^2)); targetSnrDb = 15; n = n * (signalRms / (10^(targetSnrDb/20) * noiseRms)); y = x + n;
这段骨架刻意没有直接保存,因为相加后还要检查范围。许多音频读写接口以归一化浮点数表示波形,常见有效范围接近负一到一;若y越界,保存时可能发生削波,噪声实验就同时混入了非线性失真。简单截断虽然能避免非法值,却改变了噪声统计。更透明的做法是记录越界样本比例,并按实验目标选择降低噪声、统一缩放混合信号,或明确保留削波作为另一种扰动条件。
多声道不能只靠拉平成一列解决
立体声的两个声道可能能量不同。用全文件一个RMS缩放,保留了统一噪声标尺;按声道分别缩放,则能让每个声道达到相同信噪比。两种定义都合理,但结果并不等价。若对每个声道生成完全相同的噪声,噪声会集中在声场中央;生成独立序列则改变声道间相关性。语音识别测试、耳机听感实验和阵列信号处理对这些选择的要求不同,必须在元数据中注明。
| 决策点 | 可选做法 | 需要记录的副作用 |
|---|---|---|
| 功率基准 | 整段、活动片段或逐声道RMS | 静音占比会改变整段估计 |
| 随机分布 | 均匀或高斯 | 极端样本出现概率不同 |
| 声道关系 | 共享或独立噪声 | 空间相关性随之变化 |
| 越界处理 | 降噪、整体缩放或截断 | 响度和失真不能同时忽略 |
验收时不要只听一次播放结果
耳朵可以发现明显异常,却不足以证明配置正确。输出至少要核对四项数值:保存前后的采样率和声道数保持一致;实测信噪比接近目标;波形没有意外的直流偏移;越界或削波比例符合预期。若文件经过有损编码,重新读取后再测一次,因为编码器可能改变频谱和幅值。识别模型评测还应在多个随机种子上重复,并报告平均表现与波动,而不是选取一条随机噪声序列得出结论。
- 保存干净音频的标识、目标信噪比、分布类型和随机种子。
- 分别计算信号、噪声与混合波形的RMS及峰值。
- 抽查频谱,确认没有由实现错误产生的窄带尖峰。
- 对多个强度阶梯重复测试,让性能退化曲线而非单点支撑判断。
- 将生成脚本和参数与结果一同归档,保证后续能复现。
可控加噪的目标不是制造“听起来更吵”的文件,而是建立一组强度可量化、统计可说明、结果可重复的测试条件。
完成这些检查后,随机函数的选择才真正转化为可靠实验。均匀与高斯可以作为两类扰动,固定比例也可以作为快速演示,但任何对模型鲁棒性的比较,都应回到信噪比、声道策略、削波处理和重复次数。把这些边界写清楚,比为某个系数寻找经验上的“足够”更能让结果经得起迁移。
本文《给音频注入白噪声之前,先把强度、分布与失真算清楚》由 xkmchenmu 发布于 xkmchenmu Blog。 转载请保留原文链接并注明出处。
支付宝扫一扫