今天完成了wav语音文件添加噪声的功能。为啥要要添加噪声呢?在机器学习里面,笔者有三个方面的考量。
1、增加样本数量。wav语音文件增加噪声,同样的一个样本可以增加不同的噪声,可以增加样本的数量。这在样本实例获取成本较高时,这样可以大大增加样本数量。这个就和图像上下左右移动偏转是一样的。
2、增加样本多样性。在机器学习中样本输入到算法中,但是在泛化时可能存在较大误差,这可能是因为在在泛化时采集的语音存在较大的背景噪声,那么如果在学习的样本中提供有噪声的样本进行学习,在泛化时的效果可能更好。
3、在oneclass单样本分类中,笔者想在原始语音的基础上增加噪声,测试oneclass算法的准确度。在语音oneclass遇到噪声时,看看到底效果咋样,然后根据实际需求,在oneclass学习样本中增加有噪声的语音。
增加噪声的功能很简单,定义一个函数来完成即可。
第一步,载入wav文件。audio, rate= librosa.load(vhf_wav_file, sr=None)
第二部,定义添加噪声函数。
第三步,使用函数完成噪声添加,使用ipd.Audio播放语音,发现添加后存在噪声,可以通过coef参数来调整噪声大小。
实际运行中,没有等于0的静音段,所以会在所有语音上加噪声。可先删除wav静音期后再添加噪声。原始wav文件的频谱图如下:
添加噪声后频谱图,可以看到明显的区别。
如果需要将目录下全部wav文件应用添加噪声功能,可以参考笔者以前的几个文章-python完成wav语音文件分割 ,里面有关于批量处理的方法,这里就不再赘述了。
网友评论