Day 4 | AI 30天实验
前3天:Day 1 阅读58,Day 2 阅读2(一记现实耳光😂),Day 3 已发。
第4天我不折腾写文章了——我让AI写了首歌。
从找模型、配环境、写歌词到生成音频,全程踩坑实录。
一直以来,AI写文章、画图、写代码这些已经见怪不怪了。但"AI唱歌"一直是个又近又远的东西——Suno出来的时候确实惊艳,但每次生成都要付费,而且生成的歌版权算谁的也说不清。
直到我发现了一个开源模型 ACE-Step 1.5,MIT协议完全免费可商用。也就是说——这歌生成出来,版权是我的,可以去汽水音乐/抖音发,播放量还能赚点广告分成。
那就干。
先试了市面上的主流方案:
❌ Suno AI — 效果好但付费,免费额度用完就没了,生成一次几毛到几块
❌ Udio — 英文歌强但中文一般
❌ Mureka — 国内能用但也是付费
✅ ACE-Step 1.5 — 开源免费,MIT协议,可以本地跑,支持中文歌词
选ACE-Step还有一个原因——它是专门为中文歌曲生成优化的模型,据说支持带结构标签的歌词(Verse/Chorus/Bridge这些都能识别)。
GitHub仓库能git clone,但模型文件放在HuggingFace上,国内连不上。直连速度3.5MB/s,下到一半断了重来,反复折腾。
好在找到了 hf-mirror.com 镜像站。模型总大小约 9GB:
• 主模型(acestep-v15-turbo):4.46GB
• 语言模型(5Hz-lm-1.7B):3.45GB
• 文本编码器(Qwen3-Embedding):1.11GB
• 音频解码器(VAE):322MB
📍 全部存F盘,C盘扛不住
下载完发现代码里自带了国内ModelScope的下载逻辑,但ModelScope上没这个仓库,最后还是靠hf-mirror搞定的。
模型加载上了,RTX 4060 8GB显存,官方说最低4GB就行,够用。
第一次跑——歌词用错了。我自作主张写了一套"青春怀旧"的通用歌词进去。生成完一听...虽然旋律还行,但歌词完全不是想要的感觉。这给了我最重要的一课:歌词必须自己写,AI写出来的词味不对。
第二次——保存音频失败了。模型跑完VAE解码,生成出2个音频张量(立体声左右声道)。但我的代码直接把张量当文件写,没处理张量→numpy的转换。翻来覆去修了3次才写对。
💡 给想自己试的朋友:
ACE-Step 1.5的输出返回值里,audios是一个list,每个元素是 {"tensor": torch.Tensor, "sample_rate": int}。tensor的形状是 [channels, samples],写入文件前要转置成 [samples, channels]。
工具可以开源,但歌词必须自己写。我做了一些我觉得有意思的设计:
意象选择:用了蝉、冰可乐、凤凰花、话梅糖这些夏天符号,但搭配"碎成满地的韵脚""酸得皱了整片天"这种非常规搭配,让画面感更强。
结构设计:给歌词加了Verse→Chorus→Verse→Chorus→Outro的结构标签,模型会根据标签决定哪段是主歌哪段是副歌,副歌会重复旋律形成记忆点。
风格指导:除了歌词,还需要给模型一个"风格prompt"——我写的是:Mandopop, R&B, warm and playful, piano and erhu, gentle male vocals。也就是说我告诉模型:我要一首中文流行+R&B,钢琴加二胡,男声,轻快夏日感。
🎵 "我们说好要养一缸 会唱歌的火焰
把流星塞进玻璃瓶 等发酵成闪电"
——歌词副歌片段
⏱ 时长:120秒(精简版,原版180秒)
🎚 采样率:48kHz CD级
🔊 声道:立体声(2通道)
💾 文件:22MB WAV
🚀 生成时间:约15秒(其中扩散7秒+解码8秒)
🔥 显存占用:峰值5.7GB(RTX 4060够用)
说实话,ACE-Step的生成质量跟Suno/ Udio比还是有差距,人声清晰度和伴奏丰富度不如商业产品。但它是免费的、开源的、可商用的。对于像我这样想玩一玩而且不想花钱的人来说,足够了。
而且还有一个优势——它在本地跑,想生成多少次都行,不花一分钱。
❌ HuggingFace被墙,用 hf-mirror.com 镜像下载
❌ 8GB显存刚好够,再大一点的模型就跑不动了
❌ 别用 AI 替你写歌词——它写不出你想要的感觉
❌ Windows下MSYS路径和原生路径混用会报FileNotFoundError
❌ 第一次听听可能会失望,开源和商业产品确实有差距
🎧 后面发出来给大家听听
歌已经做好了,等调好版本就发出来。
到时候顺便看看能不能上汽水音乐。
📊 今日数据:阅读12 · 点赞2 · 粉丝8 → 目标100粉开流量主
夜雨聆风