def add_noise(gen_audio, nsfile=None, snrlevel=None):
chns = gen_audio.shape[1]
if not ((nsfile is None) or (nsfile==-1)):
_, noise= wavfile.read(nsfile)
noise = noise[0:gen_audio.shape[0]]
if not (snrlevel is None or snrlevel=='Clean'):
if nsfile is None:
noise = np.random.uniform(-1.0, 1.0, (gen_audio.shape[0],))
if nsfile == -1:
noise = np.random.uniform(-1.0, 1.0, (gen_audio.shape[0], chns))
else:
noise = np.tile(noise[:,np.newaxis], [1, chns])
noise = noise.astype(np.float32)/np.amax(np.absolute(noise.astype(np.float32)))
noise = noise/LA.norm(noise) * LA.norm(gen_audio) / np.power(10,0.05*float(snrlevel))
gen_audio= gen_audio+noise
gen_audio /=np.amax(np.absolute(gen_audio)) #Normalized Audio
return gen_audio
评论列表
文章目录