从 mp3 中删除人声并仅保留乐器

从 mp3 中删除人声并仅保留乐器

我怎样才能从文件中获取乐器并删除人声?

我知道这叫卡拉OK。

答案1

可以做到这一点的软件叫做袜子 安装 sox

它有一个卡拉 OK 选项:

哎呀

异相立体声效果。将立体声混合为双单声道,其中每个单声道包含左右立体声声道之间的差异。这有时被称为“卡拉 OK”效果,因为它通常会消除录音中的大部分或全部人声。

因此从命令行这个...

sox song.wav music.wav oops

会创作没有声音的音乐。

不能更简单吗?


还有更多程序。大胆 安装 audacity也可以。它是图形化的。

这里有一个如何。您需要使用 audacity 手动完成 sox 自动化操作,因此这有点困难,但也可以让您进行更多调整(因此根据经验,其中一个可能是更好的选择)。

答案2

为了从立体声录音中实时删除人声,我们可以添加LADSPA 过滤器作为 pulseaudio 的声音输出。Steve Harris 的 LADSPA 插件它将从立体声录音中删除中央人声,并且还可以与 Audacity 一起使用。

这些插件将随软件包一起安装swh-插件 安装 swh-plugins. 语音消除量和连续单声道转换量以 dB 为单位作为控制参数。

要应用效果,我们需要知道默认音频接收器的 pulseaudio 名称

pacmd list-sinks

默认接收器名称以星号标记,如下例所示:

* index: 1
      name: <alsa_output.pci-0000_00_14.2.analog-stereo>

然后我们可以使用以下命令应用 karako 过滤器

pactl load-module module-ladspa-sink sink_name=Karaoke master=<name> plugin=karaoke_1409 label=karaoke control=-30

替换<name>为您的音频设备的名称(例如alsa_output.pci-0000_00_14.2.analog-stereo)。

记下上述命令输出的模块编号,以防我们再次想要删除它(pactl unload-module <nmber>)。所有模块都将被删除,并且默认值将重置为pulseaudio -k

control参数在此处给出语音去除的-30dB,值越高(即负值越小,如-10),人声越多(但音乐效果更好),值越低(即负值越大,如-60),人声越少,但原始音乐去除效果也更好。正值也是可以的,但会导致严重失真。

在开始播放音乐播放器之前,选择这个新创建的音频输出接收器作为声音设置中的输出。

在此处输入图片描述

请注意,并非所有音乐录音都适合此卡拉 OK 插件,人声越集中越好。单声道录音不适用。

答案3

大多数程序中的“移除人声”选项都使用了一个巧妙的技巧。通常,录制歌曲时,人声位于中央,这意味着它们在左右声道中的音量相同。另一方面,乐器通常位于中心之外,这意味着它们在左声道或右声道中的声音较大。因此,您可以尝试通过“减去”两个声道来移除人声。由于两个声道中的人声相同,因此它们会完全消失。由于乐器在一个声道中的声音比另一个声道中的声音大,因此它们会更安静,但仍然存在。

这种技术显然不适用于没有单独左右声道的单声道文件。此外,它或多或少会产生单声道输出。即使是录制时人声居中而乐器不在中心的歌曲,它通常也无法完全消除人声。

虽然 Virtual DJ 可能使用了一些秘密或专有算法来实现更好的性能,但我认为这不太可能,尤其是考虑到他们的有关该主题的常见问题解答。事实上,他们甚至推荐了一个替代方案,碰巧的是,这个方案和我本来要推荐的方案是一样的。

试用大胆。您可以在 Ubuntu 存储库中找到它。要删除人声,请按照本页上的步骤

相关内容