你下载了一段演唱会现场录像,想把主唱的人声抠出来做二创。丢进分离工具跑完,伴奏确实拿走了,可人声轨里还裹着三种东西:场馆里嗡嗡的场地混响、前排观众的欢呼、以及一层断断续续的底噪。你把降噪强度往上推,人声跟着一起发闷发飘;换个工具重跑,那层混响还稳稳挂在原地。
底层原理:分离是能量的再分配,不是干净的切割
承接上面的判断,先看清分离到底做了什么。分离模型在时频平面上工作:STFT 把波形转成「频率 × 时间」的能量图,模型对每一格输出一组掩码,决定这格能量有多大比例归人声、多大比例归伴奏。约束是掩码之和恒等于 1——它假设输入里的每一份能量都属于某个已知类别,这就是封闭集合假设。
现场素材里的观众声和混响不在模型的类别表里,但它们同样要被分掉,结果就是被「摊派」进人声轨或伴奏轨。这决定了两件事:
其一,分离没法让观众声凭空消失,只会改变它落在哪条轨上;其二,混响与人声是同一个声源,掩码把它判给人声在类别上完全正确,所以混响会跟着人声一起被分出来,甩不掉。
四个步骤,顺序别乱
第一步:提取音频,拿到尽量完整的源
先把视频文件里的音轨剥离出来。这一步的原则是尽量少一层转码:能拿原始文件就别用二次转录版,每次重编码都会叠加量化噪声,也砍掉高频信息,直接影响后面分离的掩码精度。全程用 WAV 这类无损中间格式,别在中途反复存成有损格式。
第二步:人声分离,先把主干拆开
把混合音频拆成分轨,是人声和伴奏的分水岭。现场素材建议走多音轨分离而不是简单的人声/伴奏两分:观众声、掌声这类不确定的能量,出口越多越分散,人声轨上被摊派的量就越少。这一步只解决「主干分离」,别指望它顺手把混响也一起弄干净。
第三步:去混响,处理挂在人声轨上的场地感
去混响(Dereverberation)与降噪是两个独立任务,用不同的算法,不能互相替代。混响是原声经过多次反射叠加的结果,能量随时间指数衰减,在时频图上与人声的持续音、气音大量同格。分离阶段分不开它,只能在人声轨上单独做一遍去混响。强度要保守:去混响同时对干声本体有损伤,推过头会让尾音发干、断层。
第四步:人声轨收尾——轻度降噪、清理频谱、响度归一
分离后的人声轨上剩下的才是「真正的噪声」:话筒底噪、推流编码的量化噪声、分离时被摊派过来的碎噪。这一步做轻度降噪,压制量宁可保守,因为嘶声频段与齿音、气音高度重叠,压重了人声必然发闷发水。低频端再用高通切掉 80~100Hz 以下的无用能量,去掉轰头感。最后做一次响度归一,让整段人声的一致听感稳定下来。
演唱会去掉跟唱声/尖叫声步骤
理清顺序之后,执行本身并不复杂。如果只是处理一次素材、不想为此配一套本地环境,网页端工具可以覆盖整条链。第一步用视频转音频把录像里的音轨剥离出来,对应「拿到尽量完整的源」;第二步用多音轨分离拆出人声轨,对应「主干分离」;第三步在人声轨上做保守的去混响;第四步回到降噪与均衡做收尾,最后响度归一。
最后
现场人声净化不是「找一个更强的分离工具」,而是「认清人声轨上挂着哪几类东西、按正确顺序各处理一层」。观众声、混响、底噪的性质不同,对应工序也不同;顺序错了,后面的努力会打折扣甚至反伤。先花十分钟想清楚哪一步在解决哪一类问题,比反复重跑参数有效得多。