【工具分享】给播客加音乐:找到一个免费能商用的 AI 音乐 API

24 min

同样是 AI 把文章念成播客,为什么有的听着像”念稿机器人”,有的却像”一档正经节目”?

差距往往不在脚本、也不在 TTS,而在最后一公里——音乐。片头片尾那段几秒的标志音乐、垫在人声底下若有似无的 BGM,是”一段录音”和”一档节目”的分水岭。

但这一环偏偏最少人讲透:能商用的不好找、免费的更难、混音还全是连环坑。这篇就讲我怎么找到一个免费、能商用、还省事的 AI 音乐 API(ACE-Step 1.5 的云端版 acemusic.ai),把播客生成流程里缺的这一块补齐——从选型、调 API、给提示词,到最终把音乐混进人声听感还自然。

(系列上一篇《AI 帮我把文章讲成播客:脚本、评分与 TTS 的完整流程》讲了脚本改写、7 维评分、单次 TTS 合成,那套流程跑通后,音乐是唯一没展开的尾巴——本篇补上它。文末有踩坑速查表,赶时间可直接翻到最后当 checklist 用。)

一、为什么要给播客加音乐

对单人独白播客尤其重要,加音乐有四个实打实的好处:

  1. 专业感的分水岭:同样一段独白,加了片头片尾音乐 + BGM,听感立刻从”一段录音”变成”一档节目”。
  2. 节奏填充:单人没有搭档接话,音乐能填补节奏空隙、营造氛围。
  3. 品牌标识:片头片尾的音乐就是节目的”声音 logo”(业内叫 jingle,就是新闻联播开场、播客片头那种几秒的标志性短乐),一听就知道是哪档。
  4. 降低枯燥感:研究说独白吸引力偏低,BGM 是补偿手段之一。

具体要加两种音乐,它们的诉求还不一样:

  • 片头片尾音乐独特性优先(要一听就认出是你的节目)。
  • BGM(背景音乐)一致性优先(轻、不抢戏、每期风格稳定)。

诉求不同,选型时就得分开考虑。

二、有哪些免费的方案

为了让选型有底,我先让 AI 把市面上”免费”的 AI 音乐方案搜了一遍,拿到一份十几项的清单。但清单只是起点——每一项我都去翻了它的官网授权协议(LICENSE)文件和文档,结果发现”免费”和”能用”之间隔着一道叫授权的墙。下面按”能不能商用”分成三类,这是选型的第一道筛子。

方案 A:本地开源模型

这是最容易被”开源”两个字误导的一类。开源 ≠ 能商用,下面这些模型的授权协议(LICENSE)差异极大:

能商用(Apache 2.0 / MIT)

模型授权协议特点维护方
ACE-Step 1.5MIT器乐/人声全流派,4GB VRAM 可跑,对标 SunoACE Studio × StepFun
DiffRhythm(谛韵)Apache 2.0扩散架构,10 秒生成 ~4 分 45 秒带人声完整歌曲,速度快ASLP-lab(西北工大)
YuEApache 2.0主打歌词 → 完整歌曲(带人声 + 伴奏),可生成 ~5 分钟长曲m-a-p(HKUST)
InspireMusicApache 2.0音乐/歌曲/音频统一工具包,中文社区文档全阿里通义 FunAudioLLM

⚠️ 授权历史的一个坑:YuE 早期是 CC-BY-NC(非商用),2025.01.29 才改为 Apache 2.0。所以网上很多老文章还写着”YuE 不能商用”——以仓库当前的授权协议(LICENSE)为准,别信二手转述。同理,HuggingFace 上一些旧 checkpoint 的 metadata 还挂着 CC-BY-NC,下载前看清楚版本。

能商用但”不是音乐专用”(别误用):

模型授权协议为什么单列
RiffusionMIT基于 Stable Diffusion 的”音频版”,实时生成短乐段,但质量偏”玩具级”,适合 demo 不适合成品
BarkMIT实际是 TTS(语音合成)模型,带一点音效能力,不是音乐生成模型,别拿来当 BGM 用

不能商用(NC / 自定义 License)

模型授权协议为什么不能商用
MusicGen(audiocraft)CC-BY-NC 4.0明确”非商用”
AudioLDM 2CC-BY-NC-SA-4.0明确”非商用”,且衍生需相同协议分享
Stable Audio Open 1.0Stability Community License明确”非商用”
腾讯 SongGeneration 2腾讯自定义非商业授权⚠️ 大坑:很多中文媒体报”开源可商用”,但官方授权协议(LICENSE)写明”仅学术/研究/教育用途,禁止商用”

真实代价:免费、可离线,但要 GPU(≥4GB 显存)+ ~10GB 磁盘装模型;而且授权协议(LICENSE)是雷区——尤其腾讯 SongGeneration 2 的”伪开源”陷阱最坑,第三方网站(如 songgeneration.net)声称可商用,但官方仓库的授权协议白纸黑字禁止,照抄媒体会踩雷。

方案 B:免费托管 API

不用本地部署、调 API 就生成,听起来最省事——但”免费”背后常藏授权或额度限制:

平台免费?商用?真相
acemusic.ai✅ 真·免费✅ 可以ACE-Step 官方云端版,同一个 MIT 模型
Suno(官网)✅ 有免费额度❌ 免费层不可商用Pro 计划(~$10/月)才含商用授权
ElevenLabs Music✅ 有免费层(~20 分钟)❌ 免费层不可商用Starter 计划(5/月)起才开放商用,API另收5/月)起才开放商用,API 另收0.15/分钟
Google Lyria 3❌ 无免费层✅ 可以(付费)~$0.08/首,通过 Gemini API 调用
HuggingFace Serverless API✅ 有免费额度⚠️ 看具体模型平台免费,但调哪个模型就受那个模型的授权协议(LICENSE)约束——MusicGen 免调用也不可商用,ACE-Step/MIT 模型才可商用

真实代价:唯一真正免费 + 能商用的只有 acemusic.ai 一个。其他平台要么免费层不可商用(Suno、ElevenLabs),要么干脆没免费层(Lyria 3)。别看到”free”就上——要查清楚是”免费体验”还是”免费用”。

还有个域名混淆坑:acemusic.ai(官方免费)和 acestep.io(第三方站,免费计划限 personal use、商用要付费)长得像,搜索时差点认错。关键选型回到一手文档(官方 GitHub README)

方案 C:免版权音乐库

平台商用?注意点
Pixabay✅ 多数 OK、免署名要看每条的授权说明(Content License)
Freesound✅ 只取 CC0 的可以必须严格按授权类型过滤,只取 CC0(完全放弃版权、可任意商用)的那种

真实代价:零成本零依赖、专业制作级,但非定制(你要的和现有曲子不一定对得上)、要手动挑。

三类免费方案的对比
三类免费方案的对比

小结

三条路筛下来:

  • 本地开源能商用的:ACE-Step、DiffRhythm、YuE、InspireMusic(都要 GPU 环境)
  • 免费托管 API 能商用的:acemusic.ai(HuggingFace 免费但要自己卡模型的授权协议)
  • 免版权库:可用但非定制,要手动挑(Pixabay/Freesound 都得自己翻、按授权类型过滤)

选型第一关不是”哪个音质好”,而是”免费能不能商用”——下面就是按这个筛的。

三、选型落定:ACE-Step 1.5

上面的清单是 AI 帮我搜出来的,但选型不能只看清单——清单上每个”能商用”的模型,我都去翻了它的 GitHub 授权协议(LICENSE)、README 和官方文档,确认授权条款、硬件门槛、有没有现成的云端版。翻完一圈,能真正进决赛的有四个:ACE-Step 1.5、DiffRhythm、YuE、InspireMusic。最后我选了 ACE-Step 1.5。

为什么是它:三个维度都对得上

① 授权最干净

翻 ACE-Step 1.5 的 GitHub 授权协议(LICENSE),白纸黑字是 MIT(v1 是 Apache 2.0)。这是四个能商用模型里授权最宽松的——MIT 比 Apache 2.0 还简单,几乎没有附加义务。而且它由 ACE Studio 和 StepFun 联合开发,训练数据明确走”已授权 + 免版税 + 合成”的合规路线,v1.5 在 2026 年 1 月 28 日开源发布。相比之下,DiffRhythm、YuE、InspireMusic 虽是 Apache 2.0(也能商用),但授权条款比 MIT 多几条专利相关的义务。

② 能力最强

README 里写消费级显卡 4GB VRAM 就能本地跑,还能生成带人声的完整歌曲——这个门槛在开源音乐模型里是最低的一档。质量上,社区和媒体普遍说它”对标 Suno”,是当下开源里最强的一档。YuE 强在歌词→带人声长曲(可到 5 分钟),DiffRhythm 强在扩散架构生成快(10 秒出 4 分多钟的歌),但我要的是片头片尾器乐和 BGM,不是带人声的长曲,这俩的优势用不上;InspireMusic 能力够用,但翻它的 commit 记录,更新节奏明显比 ACE-Step 慢,社区热度也不如后者。

③ 云端版免费(这是决定性优势)

这一点是我翻 ACE-Step 的 GitHub README 时发现的——README 顶上有一句容易被忽略的话:“Try acemusic.ai — 100% free!”。acemusic.ai 是 ACE-Step 官方做的云端版,同一个 MIT 模型、免费、免 GPU、免安装、免 key 费

这是 DiffRhythm、YuE、InspireMusic 都没有的待遇——它们只能本地跑,要 GPU、要装环境。而有了 acemusic.ai,我不装任何东西、不花一分钱、调几行 API 就能生成音乐。对一个只想做播客片头的人来说,这一条直接决定了”用不用得起来”。

教训:“开源” ≠ “商用免费”——选模型先查授权协议(LICENSE),别看名气大就装。MusicGen/Stable Audio Open 不能商用,腾讯 SongGeneration 2 更是”伪开源”陷阱。

而 BGM 原本想走免版权库那条路(确定性最高),实测也断了:免版权库的问题是要手动挑——Pixabay、Freesound 的曲子得自己一首首翻、按授权类型过滤,挑到合适的还不一定能和你的节目调性对得上。对一个想要”稳定风格、每期一致”的播客来说,这个人工成本不划算。于是片头片尾音乐和 BGM 都得靠 AI 生成 → 都落到 ACE-Step,一个后端、一把钥匙,反而更简单。

四、先听为敬:一段 4 分钟的中文人声长曲子

选型定了,模型的能力到底怎么样?我不打算在这篇里堆参数和代码——直接听一段中文人声音乐

我用 ACE-Step 1.5 的云端 API 生成了一段 4 分钟(240 秒)的中文人声歌曲:温暖民谣 Ballad 风格,木吉他 + 软钢琴铺底,带完整的多段歌词结构(Verse 1 / Chorus / Verse 2 / Chorus / Bridge / Chorus)。官方文档标称最长能到 10 分钟,我测了 4 分钟——生成出来精确 240.0 秒,时长严格按参数走

🎧 点击试听:4 分钟中文人声长曲子

建议你点开听一遍,感受比文字直接。我自己听完最大的触动是:它真的在”唱歌”,不是在”念歌词”——主歌部分人声是压着的、有诉说感,到副歌会自然地把情绪推上去,桥段还做了一个短暂的停顿和转折。这种”懂得在哪里该收、哪里该放”的处理,放在 AI 生成的音乐里,是相当能打的水准

而且生成速度很快:这段 4 分钟的歌,只花了 29.5 秒就出来了。

更多细节——怎么调 API、怎么写提示词、还有哪些玩法——我整理在**下一期《ACE-Step 1.5 深度测评》**里,欢迎关注第一时间收到。

不过这篇还没完。会生成音乐只是第一步,把它混进人声、听感还自然,才是更折腾的活

让音乐"长在节目里"
让音乐"长在节目里"

五、把音乐混进人声:让 AI 生成的音乐像”长在节目里”

生成音乐不难,但一段孤立的曲子和一段”长在节目里”的音乐,中间隔着一整套混音原则。我让 AI 帮我检索了一圈播客制作的音频工程资料(The Podcast HostVoice123MicVision Studio 等),再结合我自己落地踩过的坑,总结成下面这套。

原则 1:BGM 永远不能和人声抢频段

人声的能量集中在 1-4 kHz(说话的清晰度就在这个范围)。如果 BGM 在这个频段也有强能量(比如带人声合唱、带明显主旋律),两者会”撞车”,结果是 BGM 听着糊、人声听着闷。

怎么落地

  • 选曲就避开:BGM 优先选纯器乐instrumental: true)、无明显主旋律no melody lead)的曲子。带歌词、带人声的曲子基本不能当 BGM——听众的耳朵会自动去追踪人声,和你的人声抢注意力。
  • 必要时做频率避让(EQ 避让):在 BGM 轨道上做一个 EQ(均衡器)处理,把 1-4 kHz 这个范围削掉 3-6 dB,给人声腾出”频率空间”。这比单纯调音量更有效——音量降的是整体,EQ 只压冲突的那一段。

原则 2:让人声压住 BGM(ducking),而不是固定音量

ducking(侧链压低)是播客混音的第一技能:人声一出现,BGM 自动压低;人声一停,BGM 自动恢复。这样 BGM 在过门(人声间隙)时能被听见、在说话时又不抢戏,比”固定一个音量”自然得多。

关键参数(以 ffmpeg 的 sidechaincompress 滤镜为例,翻译成人话):

参数推荐值人话解释
threshold(触发阈值)人声正常音量附近人声多大才开始压 BGM。设太高压不动,太低 BGM 一直被压
ratio(压低比例)4
~ 8
压多少。4
比较自然,太狠 BGM 会”喘”
attack(启动速度)10-50 ms人声出现后多快压低 BGM。太快会”切”,太慢会”抢”
release(恢复速度)200-500 ms人声停后多快让 BGM 恢复。太短有”泵感”,太长人声停了 BGM 还没回来

一个我踩过的坑sidechaincompress 的输入顺序——第一个输入是 main(BGM,进输出),第二个是 sidechain(人声,只当控制信号)。写反了就是 BGM 没进输出、人声反被压,调多少音量都没用。这是这套滤镜最容易踩的雷。

原则 3:响度对齐到平台标准(-16 LUFS)

混音前,先把人声和 BGM 的响度(不是峰值音量)对齐到统一标准。播客行业的交付响度是 -16 LUFS(Apple Podcasts、Spotify 的推荐值),单声道。响度不对齐,混出来的成品在不同平台听起来忽大忽小。

怎么落地

  • 先把人声轨归一化到 -16 LUFS——用现成工具就行,比如 ffmpeg-normalize(一行命令,不用记参数)或 ffmpeg 自带的 loudnorm 滤镜。
  • BGM 不用归一化到这么响——它本就该比人声小。常见做法是 BGM 比人声低 -6 到 -10 dBMicVision Studio 的建议)。
  • 混完之后再做一次整体归一化,确保最终成品落在 -16 LUFS。

原则 4:混音别用会自动归一化的工具

这是我最想提前告诉你的一个坑。ffmpeg 里有个最常用的混音滤镜叫 amix,它默认会做归一化(normalize)——简单说就是”自动把整体音量压低,防止爆音”。这个设计在多数场景是好的,但在”人声 + BGM”场景下会出问题:它会把整体增益压低,BGM 的能量被抵消,结果你怎么调音量都听不到 BGM

解法:别用 amix,改用 amerge + pan 组合——这两个不做归一化,音量完全由你自己控制。具体命令网上搜”ffmpeg amerge pan ducking”就有一堆现成的,不用记参数。核心就一句:混人声和 BGM,绕开 amix 的自动归一化

原则 5:片头片尾用 fade + gap,绝不硬切

音乐和语音的衔接处是最暴露业余感的地方。硬切(音乐停、人声立刻进)会非常突兀。

行业通用做法(Captivate.fm):

  • 片头音乐:开头淡入(fade in,0.2 秒)避免”咔”一声;结尾淡出(fade out,0.5 秒)平滑收。
  • 音乐和人声之间:留 0.3-0.4 秒静音间隔(gap),给耳朵一个”切换”的缓冲。
  • 人声开头:淡入(fade in,0.2 秒),避免人声第一个字爆音。
  • 片尾音乐:人声结束后不要立刻接音乐,留 0.5 秒静音,再淡入(fade in)音乐。

原则 6:人声一次合成,避免拼接感

如果开场白和正文是两次独立 TTS 合成再拼接,会因为音色/语气/响度的微差,听感像两段拼的。把开场白并进脚本第一句,整篇一次合成(“大家好,这里是 XX,第 N 期,今天讲 XXX”),从头到尾一个语气,连贯。

原则 7:片头时长锁 3-5 秒,越早开口越好

Reddit r/podcasting 的共识:片头音乐放 3-5 秒,就让人声进。BGM 在片头可以多留几秒垫底,但人声越早开口,留存率越高——听众点进来是想听内容,不是听你的片头曲。Buzzsprout 社区讨论的甜区是 总时长 12-20 秒(含人声),超过 20 秒就开始掉听众了。

我的最终方案

按这套原则落地,最终混音方案是:

  • 片头片尾音乐:acemusic.ai 生成(ACE-Step,3-5 秒,器乐),淡入淡出(fade in/out)+ 0.3 秒间隔。
  • 人声:mimo voiceclone 单次合成(开场白并进第一句),归一化到 -16 LUFS。
  • BGM:用 amerge+pan 混音(不用 amix),比人声低 -8 到 -10 dB,BGM 轨道做 EQ 避让削掉 1-4 kHz。人声压低(ducking)开关在,但先关掉用固定垫底——等耳朵觉得人声被盖了再开 ducking 微调压低比例,别一上来就上 ducking(多一个变量多一层排查)。

结语

从文章到播客,流程不复杂(清洗 → 脚本 → TTS → 音乐 → 发布)。脚本、音色、音乐现在都能 AI 生成——门槛被拉得很低。

但这一路下来有个清楚的感受:生成是便宜的,把生成的东西调成能用,才是真功夫。ACE-Step 1.5 让”有段免费能商用的音乐”不再是问题,但”把这段音乐混进人声、听感还自然”这一环,得照着响度标准、人声压低(ducking)、频率避让(EQ)这套行业原则一层层调——这部分,AI 替不了你。

希望这篇的选型对比、提示词模板和混音原则,能帮你在给播客加音乐时少走弯路。

附:踩坑速查

选型 / API 篇(详细解法见下一篇《ACE-Step 1.5 深度测评》):

一句话解法
MusicGen / Stable Audio Open 非商用商用用 ACE-Step / acemusic.ai
不想装本地 GPU 环境用云端 acemusic.ai,或本地便携包双击启动
acemusic.ai / acestep.io 域名混淆回官方 README 确认
免版权库要手动挑、风格难一致改 acemusic.ai 生成 BGM,风格可控
urllib 被 WAF 403请求带 User-Agent: curl/8.4.0

混音篇(本篇第五部分详解):

解法
BGM 怎么调都听不到频段撞车 → EQ 避让 1-4kHz;混音被自动归一化 → 用 amerge+pan 替 amix
BGM 抢戏/人声被盖上人声压低(ducking),压低比例 4
,启动 10-50ms
响度忽大忽小人声归一化到 -16 LUFS(Apple/Spotify 标准)
片头片尾硬切音乐淡出 0.5s + 0.3s 静音间隔 + 人声淡入 0.2s
开场白和正文割裂并进脚本第一句,整篇一次合成
片头太长掉听众片头音乐 3-5 秒就让人声进,总时长 ≤ 20 秒