Python | librosa:如何从音频WAV文件中提取人声?

5
给定一个人类讲话的音频wav文件(单声道,采样率16KHz),是否有一种方法可以提取出人声,从而过滤掉大部分机械和背景噪音?我正在尝试使用Python 3.6中的librosa包进行此操作,但无法弄清楚piptrack如何工作(或是否有更简单的方法)。
当尝试使用fft / ifft将频率限制为300-3400范围时,产生的声音严重失真。
sr, y = scipy.io.wavfile.read(wav_file_path)
x = np.fft.rfft(y)[0:3400]
x[0:300] = 0
x = np.fft.irfft(x)

可以请您分享一些音频录制的样本吗?之后,我或许会给您一些方向以完成这个任务。 - Abdul Basit
1个回答

0

从音频文件中提取人声是一个活跃研究的问题。在科学文献中,它通常被称为“语音增强”。该领域的最新发展往往在Interspeech和IEEE ICASSP会议上展示。您还可以查看微软的Deep Noise Surpression Challenge。

从语音记录中消除不必要的声音的复杂性高度依赖于不必要的声音以及您对其了解的程度。如果您只想过滤低频噪声,则可以使用适当的低通滤波器进行一些降噪。Librosa有一些滤波器实现,而numpy/scipy将为您提供更多选项。

简单地将fft系数归零会产生可怕的失真。请参见this stackoverflow answer,了解为什么这永远不是一个好主意。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接