def inject_noise_sample(self, data, noise_path, noise_level):
noise_src = load_audio(noise_path)
noise_offset_fraction = np.random.rand()
noise_dst = np.zeros_like(data)
src_offset = int(len(noise_src) * noise_offset_fraction)
src_left = len(noise_src) - src_offset
dst_offset = 0
dst_left = len(data)
while dst_left > 0:
copy_size = min(dst_left, src_left)
np.copyto(noise_dst[dst_offset:dst_offset + copy_size],
noise_src[src_offset:src_offset + copy_size])
if src_left > dst_left:
dst_left = 0
else:
dst_left -= copy_size
dst_offset += copy_size
src_left = len(noise_src)
src_offset = 0
data += noise_level * noise_dst
return data
评论列表
文章目录