尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

AI音频分离一次搞定:用Demucs把任意歌曲的人声、鼓点、贝斯拆得干干净净

AI音频分离一次搞定:用Demucs把任意歌曲的人声、鼓点、贝斯拆得干干净净 AI音频分离一次搞定用Demucs把任意歌曲的人声、鼓点、贝斯拆得干干净净【免费下载链接】demucsCode for the paper Hybrid Spectrogram and Waveform Source Separation项目地址: https://gitcode.com/gh_mirrors/de/demucs总有人说把一首成品歌里的人声和伴奏分开是音乐制作里最麻烦的体力活。直到我遇到开源的AI音频分离工具Demucs才发现一条命令就能把整首歌拆成四条独立音轨。这篇文章不谈玄乎的理论就从一次真实翻唱制作出发带你走完安装—分离—优化的全过程。先讲个真实场景翻唱视频做到一半卡在伴奏上去年冬天一个做翻唱的朋友急得团团转。他看上了一首冷门日文歌网上翻遍也没有官方的伴奏版我们俗称消音版。他自己试过一种土办法把左右声道反向叠加来消掉人声结果鼓点一起跟着糊了贝斯直接消失出来一团浆糊。后来他换了个思路——不是消人声而是让AI把这首歌按乐器重新拆开再丢掉人声。他用的就是这个开源项目Demucs。一个下午不到他手里就多了四条干干净净的音轨人声、鼓、贝斯、其他伴奏。一句话说清它到底在干嘛你可以把一首混好的歌想象成一块烤好的蛋糕面粉、鸡蛋、糖全部搅在一起肉眼根本分不开。Demucs 干的事就是反向烘焙——把蛋糕重新还原成面粉、鸡蛋和糖。技术上的叫法是音源分离Source Separation。Demucs 用深度学习模型在海量歌曲上学习鼓声听起来什么样、人声听起来什么样拿到新歌后它把混合信号里的不同成分各归各路。模型属于第四代名叫Hybrid Transformer Demucs在 MUSDB HQ 评测集上拿到了9.00 dB 的 SDRSDR 是衡量分离干净程度的指标数值越高越好行业普遍水平在 57 dB 左右。拆出来的四样东西各是什么成色默认情况下随便扔一首歌进去Demucs 会返回四个 44.1kHz 的立体声 WAV 文件输出文件里面是什么常见用途vocals.wav纯净人声轨道做翻唱、做 Remix 的干声素材drums.wav整套鼓组研究编曲、重新混音bass.wav贝斯线学演奏、提取律动other.wav除前三者外的所有伴奏当伴奏用、去人声如果你还想要吉他和钢琴可以换成 6 源模型htdemucs_6s它会多拆出 guitar 和 piano 两条轨。要注意目前钢琴源分离得还不太理想会出现串音急用时慎选。上图画的就是这套模型的骨架一条分支盯着原始波形时域一条分支盯着频谱图频域中间的 Transformer 把两边信息互相串起来。双管齐下各取所长——这就是它比纯时域或纯频域方法更少伪影的原因。图看着复杂但你完全不用懂它命令行只需一条。从安装到第一份分离结果五步走完第一步确认环境。需要 Python 3.8 以上版本Windows / macOS / Linux 都行。命令行里敲python3 --version第二步安装。一条命令搞定模型会在第一次使用时自动下载python3 -m pip install -U demucs第三步开始分离。在终端里进入音频所在目录执行demucs 我的收藏/最喜欢的歌.mp3注意路径带空格时一定要加引号否则会报文件不存在。第四步找到结果。输出不在原文件夹里而是生成在separated/htdemucs/最喜欢的歌/目录下里面就是 vocals、drums、bass、other 四个 WAV。第一次跑会自动下载默认的 htdemucs 模型耐心等一会儿。第五步直接做伴奏。如果只想要人声 无伴奏两轨加一个参数demucs --two-stemsvocals 最喜欢的歌.mp3这次输出变成 vocals.wav 和 no_vocals.wav 两个文件后者就是现成的卡拉OK伴奏。新手最容易踩的四个坑坑一显卡爆显存。默认参数下约需 7GB 显存只有 3GB 小卡的同学会直接报错。解决方法是把音频切成小段再处理demucs --segment 8 大型现场.wav--segment后面的数字是每段秒数越小越省显存8 秒是个保守又靠谱的值。另外设个环境变量也能救命export PYTORCH_NO_CUDA_MEMORY_CACHING1。坑二根本没有显卡。没 GPU 没关系指定用 CPU 跑demucs -d cpu 歌曲.mp3处理时间大约是音频时长的 1.5 倍——一首四分钟的歌大概六分钟出结果能接受。CPU 够强的话还能并行demucs -d cpu -j 4 歌曲.mp3-j 4用 4 个核心同时算内存占用也会翻几倍老机器悠着点。坑三输出爆音。分离有时会带来削波声音爆掉。Demucs 默认会自动按比例缩放每个音轨来避免但这会破坏音轨间相对音量。想要硬性削波、保住比例就加demucs --clip-mode clamp 歌曲.mp3坑四把--segment调得太大。Transformer 模型有训练时的分段上限htdemucs 系列最多只能支持 7.8 秒的段长超了会直接拒绝运行。段长不是越大越好够用就行。同一首歌怎么压出更干净的分离结果如果嫌默认效果不够惊艳按花钱从少到多的顺序试这三招换微调模型。-n htdemucs_ft是在基础模型上精调过的版本效果更好代价是慢大约 4 倍demucs -n htdemucs_ft 歌曲.mp3多预测取平均。加--shifts 4让模型把输入随机平移几次、分开预测再平均能显著减少抖动和伪影。论文里用的是 10 次效果最好但也最慢没 GPU 不建议开demucs --shifts 4 歌曲.mp3微调重叠度。--overlap控制分段的交叠比例默认 0.25。嫌慢就降到 0.1速度提升肉眼可见质量几乎不掉demucs --overlap 0.1 歌曲.mp3另外想要 MP3 输出就直接指定格式和码率省得后面再转码demucs --mp3 --mp3-bitrate 320 无损音源.flac需要 24bit 或 32bit 浮点的专业文件分别用--int24和--float32。不同的人都怎么用它音乐人 / Remix 玩家拆出干声和分轨素材重新编曲或提取鼓组做采样。播客主 / 视频博主给背景音乐做人声分离一键生成干净的伴奏垫底也能反过来清理录音里不小心录进的音乐声。乐器学习者把心爱歌手的曲子拆出人声或贝斯轨单独跟着学比整首歌听得清楚得多。开发者可以把它嵌进自己的流程里用 Python 直接调用。在代码里写一行效果和命令行完全一致import demucs.separate demucs.separate.main([--two-stems, vocals, 歌曲.mp3])想深入改源码、重新训练模型也可以用git clone https://gitcode.com/gh_mirrors/de/demucs拉下仓库自己研究。今晚就能做的一个小实验回到开头那个翻唱朋友。他最后的做法很简单拿喜欢的歌跑一遍--two-stemsvocals得到伴奏轨后录自己的干声最后合并导出一个像模像样的翻唱作品就出来了。你也可以今晚就试试挑一首最熟悉的歌跑下面这条命令demucs --two-stemsvocals 你最熟的那首歌.mp3然后到separated/htdemucs/里听听no_vocals.wav——第一次听到官方伴奏从自己电脑里诞生那种感觉很奇妙。下载的模型没满足你就再试-n htdemucs_ft和--shifts同一首歌你能听出好几个版本的区别。最后提醒一句AI 拆轨技术很强大但拿别人的歌做商业发行前请先确认版权。玩归玩别踩线。【免费下载链接】demucsCode for the paper Hybrid Spectrogram and Waveform Source Separation项目地址: https://gitcode.com/gh_mirrors/de/demucs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表