音频制作

如何在浏览器中分离人声、制作卡拉 OK 伴奏

浏览器可以靠算术而不是机器学习模型,从立体声混音中去掉居中的人声。这种方法在有些录音上效果好得多,在动手之前,最好先知道是哪些。

中置声道相消是怎么回事

立体声就是两个声道。混音里被正中央摆位的内容,也就是在左右声道中位置完全相同的内容,会在两个声道里表现为同一个信号。用一个声道减去另一个声道,相同的部分就会相互抵消归零,剩下的只是两个声道之间不同的部分。这个差异就是混音的侧向内容:宽阔的吉他、立体声键盘、混响的尾音。

这项技术就是这么简单。左声道减右声道得到伴奏,左声道加右声道得到中置内容。模拟设备用这个办法已经用了几十年,计算它几乎不花什么成本,也不需要模型、训练数据或服务器。但它完全依赖于人声真的被摆在了正中央这个前提。

为什么它在有些录音上效果好,在有些上效果差

它在较老、混音简单的录音上效果最好:主唱正好摆在正中央,干声或接近干声,乐队则围在周围。找一张六十年代的灵魂乐唱片或一场朴素的原声演出试试,人声几乎能完全消失。

现代流行乐就难得多。制作人经常会把人声轨加宽,把主唱复制一份,再把两份拉开摆位,或者把人声放进宽立体声混响和延迟里。这些处理在两个声道里都不是完全相同的,所以都不会被抵消。您听到的不是寂静,而是一层人声的残影,而且即便干声大部分被去掉,混响通常还是会留下来。

跟人声一起消失的还有什么

这是没人会提前提醒您的部分。这项技术根本不知道什么是人声。它只是去掉一切居中的内容,而在常规混音里,正中央是个很拥挤的位置。底鼓在正中央,军鼓在正中央,贝斯也几乎无一例外地在正中央,因为低频通常被放在中间,以免影响黑胶刻纹和大型 PA 系统的表现。主奏乐器和独奏段落也常常摆在那里。

所以,一个单纯做了中置相消的音轨,往往会出现低频被掏空、鼓声变弱的问题。这款工具会保护其中最低的那部分:大约 120 Hz 以下,也就是底鼓和贝斯基频所在的区域,不参与相消运算。军鼓、贝斯的中高部分,以及任何居中的主奏乐器,仍然会跟人声一起被去掉,在有些录音上,效果会直接不能用,因为问题出在混音本身,而不是这款工具。

这两个文件到底是什么

这里有必要说清楚,因为这两个名字容易让人期待过高。伴奏文件是每个原始声道减去 120 Hz 以上那部分中置内容后的结果。强度拉满时,居中的人声会被抵消掉。把强度滑块调低,一部分中置内容会保留下来,这样会留一点人声,但音轨听起来没那么空。单声道播放仍然是个问题:手机扬声器或单声道 PA 会把两个声道加在一起,侧向内容会被抵消,强度拉满时,您听到的基本上只剩贝斯和底鼓。如果打算在公开场合使用,请先用单声道试听一遍。

第二个文件并不是分离出来的人声。它是混音中 120 Hz 以上的中置内容:人声,以及和它一起居中的其他内容,比如军鼓或主奏吉他。用它来听清歌词或跟着旋律走,是个不错的参考。它不是纯人声轨,如果把它当成纯人声轨来用,效果站不住脚。

两个文件都以 WAV 格式返回,所以体积较大,分离模式也可以让您只要其中一个。源文件必须是立体声:单声道文件没有侧向内容可供处理,工具会明确说明这一点,而不是假装做了什么。

它到底适合用来做什么

给老歌做个粗糙的卡拉 OK 版本。凭耳朵扒贝斯线或人声旋律。听听制作人在混音正中央放了什么,这其实很能学到东西。在家练习用的一段快速伴奏。

它不适合用来做什么:任何要发行、出售或公开发布的内容。在像样的音箱上,这些处理痕迹是听得出来的,声音平衡也不对,而且分离一段录音并不会让您获得任何本来没有的权利。

什么时候需要真正的人声分离

Demucs、Spleeter 这类音源分离模型做的是真正不同的另一件事。它们在海量音乐上训练而成,能对每种乐器分别做出估计,所以即使面对宽阔、混响很重的现代混音,也能把人声提取出来,还能顺带给您分开的鼓组和贝斯音轨。它们的效果完全是另一个层次,对任何接近专业水准的工作来说,都是唯一说得过去的选择。

代价是算力和便利性。这些模型都很重,所以大多数提供这类功能的网络服务,都是把您的音频上传到服务器上运行,这在隐私上和这里发生的事完全是两回事。在自己电脑上跑 Demucs,需要一个 Python 环境,还需要一点耐心。如果您需要能用于正式工作的干净音轨,这才是该走的路。如果您只是想在十秒钟内得到一首 1971 年老歌的卡拉 OK 版本,还不想让文件离开笔记本电脑,算术就够用了。

不会上传任何内容

解码、相减运算和写出 WAV 文件,全部都在您打开的这个页面里完成。您的音乐永远不会到达服务器,如果这段音轨是您自己尚未发布的录音,而不是从流媒体服务上下载的东西,这一点就很重要。打开浏览器开发者工具里的网络面板,运行一次分离:没有任何请求带着音频,因为根本没有发出过这样的请求。

动手试试

人声分离在当前标签页中将人声与伴奏分开,不上传任何内容。

打开人声分离