Python学习

【python编程】音频加入噪声

我需要对音频加入噪声做数据增强,用的方法很简单:在音频采样点上加入一点随机数。代码如下:

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有趣的知识

One comment

Leave a Comment

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据