惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
月光博客
月光博客
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
博客园_首页
雷峰网
雷峰网
量子位
有赞技术团队
有赞技术团队
博客园 - 叶小钗
博客园 - 聂微东
V
V2EX
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 司徒正美
小众软件
小众软件
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
Apple Machine Learning Research
Apple Machine Learning Research
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理

分享创造

分享 KCase 脑图测试用例生成平台(AI 辅助生成测试用例) 标签页囤积症自救:写了个插件 TabRack,主打快速检索、自动分类和 AI 摘要 [file-preview]一个比较全面的在线文件预览组件库-支持 react 和 vue 撸了个 iOS 小应用[极简水印相机],直接免费 做了一个 V2EX Skill 写了个 iOS 打码 App「遮鸭 Maskduck」,纯离线免费 35 岁前端,裁员失业后,我花 1 个月做了个 AI 生图网站 亲身经历猫咪急症,我做了一款猫狗疼痛检测工具,希望能救你家毛孩一命 如何用 AI 做比较酷炫的落地页? 求真!最近 AI 生图的能力强到可怕 开源一个查看 k8s 的菜单栏工具-kubebar Packpour:我做了个专门给 App Store Connect 填多语言元数据的小工具 面对 140 年一遇的超级厄尔尼诺,我做了个全球监测小站 做了一个自动翻译的 Hacker News 客户端 做了一个 AI 头像生成器,可以免费生成 2 次 [送码 50 个] 自己手搓了个高颜值的倒数日 App——拾光机,求 V 友们指点 一个将苹果健康 APP 数据导出的工具,然后把你的数据喂给 AI 分析 我做了一个叫「订阅斩」的 iOS App,专门对付那些悄悄扣钱的订阅 做了个草率的日麻互动漫画,听听反馈 喜欢自己洗车的朋友们,我用 ai 做了一款洗车小程序 -- 洗车志 感谢 V2EX 上各位 NAS🍆 和 Datahoarder 玩家的关注和真实反馈!作为个人开发者,能得到这么多硬核玩家们的讨论,我非常荣幸。 用 AI 开发熊孩子自律的小程序 用 OpenClaw 搭建个人运动助手 今天摸鱼给 NanaAI 也接入了 GPT-Image-2 [Video Companion]一个 chrome 插件,解决大多对视频操作的需求~欢迎使用提 bug AI 时代,做产品简单了,把产品推广出去却变的更难了~ bestskills.dev - Skills 精选和评测站点 免 ROOT 强力卸载安卓广告软件 一个 All In One 的运维工具,支持 SSH、数据库、Redis 管理 [开源] Codeg V0.10:专注于代码生成的多智能体 IDE(cc、codex、gemini、opencode……),新版本重构了工作区,飞一般的体验,支持桌面端、服务器部署
做了个 AI 音频分离站,从模型选型到部署的一些踩坑
codeugar · 2026-04-28 · via 分享创造

背景

之前自己练琴想扒一首歌的贝斯线,市面上的工具要么只能分 4 轨 ( vocals/drums/bass/other ),要么订阅一个月用两次就忘了取消。 看到 Meta AI 的 htdemucs_6s 模型能分 6 轨(多了 guitar 和 piano ), 就花了几个月做了个站。

技术上踩了一些坑,分享出来给可能也想做类似东西的同学参考。

一、模型选型:为什么是 htdemucs

主流开源音频分离模型:

  • spleeter ( Deezer ,2019 ):老但稳,质量一般,4 轨
  • Demucs v3 ( Meta ,2021 ):CNN ,质量好,4 轨
  • htdemucs ( Meta ,2022 ):Hybrid Transformer ,2022 Sony MDX 冠军,4 轨
  • htdemucs_6s ( Meta ,2022 ):上面那个的 6 轨版本,多了 guitar/piano
  • BS-RoFormer ( ZFTurbo 等,2024 ):当前 SOTA ,但模型大、推理慢

对比测了 spleeter / htdemucs / BS-RoFormer:

  • 跟 spleeter 比:人声分离清洁度提升非常明显,特别是中频段
  • 跟 BS-RoFormer 比:质量差距小(盲听基本难分),但推理时间是后者的 1/3 , 对面向 C 端的服务来说,60 秒出结果 vs 3 分钟出结果差别太大

如果是离线批处理或专业制作,BS-RoFormer 应该是更好的选择。

二、推理平台:为什么是 Replicate

最早自己开了 RunPod 4090 实例跑,跑通没问题,但有几个问题:

  1. 没人用的时候 GPU 还在烧钱,每小时 $0.40 起步
  2. 自己得维护容器、模型权重、队列、错误重试一整套
  3. 流量高峰时单实例扛不住,要做多实例 + 负载均衡

后来转去 Replicate ,按秒计费,没人用就 0 成本。 htdemucs 一首 3 分钟的歌大概 25-40 秒推理时间, 按 A40 GPU 计费下来单首 GPU 成本大概 2-3 美分。 对于一个早期阶段、流量不稳定的产品,按需付费比固定 GPU 划算太多。

对比过的几家:

  • Modal:冷启动比 Replicate 慢一点,但定价灵活,适合复杂 pipeline
  • HuggingFace Inference Endpoints:贵且冷启动慢,pass
  • 自部署 RunPod / Vast.ai:除非月流水稳定上量否则不划算

三、几个非模型层面的坑

  1. YouTube 链接处理:用户贴 URL 比让他下载文件转格式 UX 好太多。 yt-dlp 是必备,但要处理大量 edge case (年龄限制、地区限制、live 流), 还得加超时和文件大小限制防滥用。

  2. 多轨同步播放器:6 个 stem 同时播放还要支持 mute/solo/seek , 一开始用 howler.js 单实例切换完全不行( latency 差几十 ms 听得出来), 最后用 Web Audio API 自己写了个共享 AudioContext 的播放器。

  3. 格式转换:用户上传可能是 MP3/WAV/FLAC/M4A/OGG/WEBM 各种格式, htdemucs 只吃 WAV 。前置 ffmpeg 转码层是必须的, 但 ffmpeg 在 Replicate 容器里跑得慢, 后来改成在自己服务器转码完再丢给 Replicate ,整体延迟降了 30%。

  4. BPM/key 检测:用 librosa 自己算的,但 librosa 的 key detection 在电子乐上准确率一般,准备后续接入 essentia 重做。

四、成品

站点:aistemsplitter.org

有免费额度,够分两三首歌看看质量。如果想多跑几首, V2EX 的同学可以在结账页用 v2ex 这个码,我加了点额度——主要是 想多收一些技术圈的反馈,特别是中文歌的分离效果。

主要想问几个问题:

  1. 有没有人在生产环境用过 BS-RoFormer 跑 C 端?延迟是怎么解的?
  2. Replicate 之外有没有更便宜的 GPU serverless 平台值得试? (需要支持自定义模型权重)
  3. 中文歌(特别是有混响/自动调音的)分离效果一般, 有没有什么改进思路?是该等更好的开源模型,还是有 预处理/后处理的方法可以缓解?

谢谢各位,欢迎拍砖。