如何从 100 个其他声音中过滤掉一个人的声音?

信息处理 频率 语音
2022-01-05 21:51:51

所以,我刚刚了解到人类的声音不是一个单一的正弦波,它是一堆无限的正弦波,每个正弦波都有不同的频率,

根据维基百科,

声音由人类使用声带发出的声音组成,用于说话、唱歌、大笑、哭泣、尖叫等。其频率范围约为 60 至 7000 Hz。

所以如果人的声音是一个复合信号,它包含在60Hz到7KHz之间的各种频率范围。

假设如果有一群人一起唱同一首歌,每个人都有自己的语音频率范围,

例如,

如果一个人A有以下频率, 100Hz , 250HZ 6KHz, 10Hz, 87Hz, 52Hz, 2KHz.......

和一个人B有以下,217Hz1、11Hz、12Hz、2323Hz、839Hz、4KHz、100Hz、10Hz.....

在 A 和 B 中,一定有很多相似的频率,就像在上面的例子中,100Hz 和 10Hz 的频率在两个人之间是共同的。

我正在看一个名为“边缘”的电视节目,他们从音频文件中过滤掉特定男人的声音,而那里也有其他人的声音。

那么,如果所有人都有这么多共同的频率,他们究竟如何从数百人的声音中过滤出某人的声音,这是否与人的频率幅度有关?

2个回答

如果仅使用一个麦克风记录信号,则可以使用频谱减法等方法。这种方法更适用于“恒定”噪音,例如风扇或怠速发动机的噪音。其他方法依赖于语音的统计和感知模型。如果信号是用多个麦克风录制的,您可以使用盲源分离来分离(语音)信号。就目前而言,您不会得到完美的结果。典型的最终结果总是在“噪声”和感兴趣的语音信号的清晰度之间进行权衡。更多“噪声”抑制->感兴趣信号的更多退化。

好吧,假设我们有一个两个人说话的声音文件.. 如果他们不齐声说话,就有可能分离他们说话的音调元素。将他们语音中的噪音元素(ssss 或 fffff 声音)分开可能会更棘手,但如果他们不齐声说话,这可能是可能的。如果我们可以在不丢失相位信息的情况下对声音进行频谱分析,这将容易得多。

基本上,频谱分析采用波形(声音为单波或线)并分离所有单独的音调,以便您可以及时从低到高以及从左到右看到它们。这样做时,显示单个波形上升和下降的大部分信息都会丢失。如果我们可以保留相位信息,这将容易得多,因为一个声音的所有单个分量频率将彼此谐波相关,因此它们的相位将对齐。

目前,我不知道有什么算法可以实现这一点,但我相信它在理论上是可能的。我记得读过一篇关于 melodyne 的创作者 peter neubäcker 正在研究如何做到这一点的文章,这样两个一起唱歌的歌手就可以分开,但我不知道我怎么会再次找到这篇文章