资源技术动态为声音文件添加白噪音

为声音文件添加白噪音

2019-10-18 | |  94 |   0

原标题:为声音文件添加白噪音        来源:AI柠檬         

链接:https://blog.ailemon.me/2017/04/08/add-white-noise-to-sound-files/


在数字信号的处理中,我们在研究一些问题的时候,经常会用到噪音,甚至有时候专门产生噪音并添加到某些信号中来研究一些问题。比如,图像和语音识别等任务中添加一些不同的噪音来测试机器学习模型在有噪音环境下的识别率。我们就需要使用一些方法来产生噪音并且添加到原信号中去。


噪声从物理角度上看,是声波的频率、强弱变化无规律、杂乱无章的声音。[1] 白噪声,是一种功率谱密度为常数的随机信号或随机过程。“白色”仅意味着信号是不相关的,白噪声定义要求其均值为零,但没有对信号应当服从哪种概率分布作出任何假设。如果某白噪声过程服从高斯分布,则它是“高斯白噪声”。类似的,还有泊松白噪声、柯西白噪声等。[2]


所以,我们可以使用随机函数来产生分布在 (-1,1)区间内的噪音信号,在MATLAB中,可以使用rand()和randi()等函数来产生。下面我将简单介绍两种白噪音。

 

均匀分布的白噪音


均匀分布的白噪音在取值区间上,信号值服从均匀分布。在(-1,1)区间内的均匀分布期望值为0。我们通过随机函数产生白噪音后,再将原信号和噪音信号按比例混淆,即加权平均。MATLAB实现过程如下:


  1. %为语音序列添加白噪音

  2. [wav,fs]=audioread('audio.wav');    %读入声音文件

  3. noisewav(1:size(wav))=0;

  4. for i=1:size(wav)

  5.    noisewav(i)=rand*(-1)^randi(1:2);    %使用随机数对每一帧生成均匀分布的白噪音

  6. end

  7. wav2 = (wav(:)*0.95 + noisewav(:)*0.05);    %按一定比例添加噪音,0.05的噪音已经足够了

  8. player=audioplayer(wav2,ps);

  9. player.play    %播放

 


正态分布的白噪音


服从正态分布的白噪音也叫高斯白噪音。[3] 正态分布在该区间内期望为0,方差为sigma的平方。然后,我们只需要将上述的代码中随机函数部分换成能产生正态分布的随机函数。


我们可以使用MATLAB中的normrnd()函数来产生。


  1. R = normrnd (MU ,SIGMA ,m ,n)


生成m×n形式的正态分布的随机数矩阵,其中MU是期望值,SIGMA是标准差。

在这里我们将期望设为0,标准差可以设置为0.2,m和n则根据需要设定。


 

参考文献:

[1] 维基百科. 噪音 2016.07.13. https://zh.wikipedia.org/wiki/%E5%99%AA%E9%9F%B3

[2] 维基百科. 白噪音 2016.10.17.  https://zh.wikipedia.org/wiki/%E7%99%BD%E9%9B%9C%E8%A8%8A

[3] 维基百科. 加性高斯白噪音  2016.08.13. https://zh.wikipedia.org/wiki/%E5%8A%A0%E6%80%A7%E9%AB%98%E6%96%AF%E7%99%BD%E5%99%AA%E5%A3%B0

THE END

免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。

合作及投稿邮箱:E-mail:editor@tusaishared.com

上一篇:基于mxnet的mnist手写数字识别

下一篇:语音合成技术概述

用户评价
全部评价

热门资源

  • 应用笔画宽度变换...

    应用背景:是盲人辅助系统,城市环境中的机器导航...

  • GAN之根据文本描述...

    一些比较好玩的任务也就应运而生,比如图像修复、...

  • 端到端语音识别时...

    从上世纪 50 年代诞生到 2012 年引入 DNN 后识别效...

  • 人体姿态估计的过...

    人体姿态估计是计算机视觉中一个很基础的问题。从...

  • 谷歌发布TyDi QA语...

    为了鼓励对多语言问答技术的研究,谷歌发布了 TyDi...