我需要对音频加入噪声做数据增强,用的方法很简单:在音频采样点上加入一点随机数。代码如下:
import librosa import numpy as np def add_noise(data): wn = np.random.normal(0,1,len(data)) data_noise = np.where(data != 0.0, data.astype('float64') + 0.02 * wn, 0.0).astype(np.float32) return data_noise data, fs = librosa.core.load('..\sample\\女1.wav') data_noise = add_noise(data) librosa.output.write_wav('2.wav', data_noise, fs)
经过librosa的load,读进来的音频是np.float32,这是可以通过load函数里面的参数设置的。
但是悲剧的是一加入噪声,类型就变成np.float64了,没有发现问题所在,折腾了半天。
在噪声生成那行代码加入astype就可以了。就这么简单~
补充:
python生成随机数(np.random.normal)就是会成为np.float64类型的np数组。
关于更多dtype的知识:参见
更多dtype有趣的知识
This aгticle is in ffact ɑ gooid onne itt assists new ihternet visitors, who are wishing for blogging.