从60首歌到1个网站:输入你的故事,还你一首歌

"一个网站,一段故事,一首属于你自己的歌。"

写在前面:

从零写了60多首歌后,我踩遍了Suno的很多坑:九段管道符配置、韵脚与情感失配、中文咬字不清...... 后来我把这60首歌的创作法则逆向工程成一整套规则,并做成了一个叫**「回声(Echo)」**的免费开源网站------你只需要输入一段自己的故事,剩下的全交给AI。

事情是这样的。今年年初在AI音乐社群里听到了几首用Suno生成的歌。不是「AI写的歌也就那样」的水平------情绪到位,旋律顺,唱出来像一个真实的人在唱一段真实的经历。

我好奇了。跑去了解了Suno,对着那个输入框愣了半天。歌词不会写,Style那一栏不知道怎么填,管道符配置是什么意思完全不懂。翻了几天教程才上传了第一首歌。说实话挺粗糙的,但那个感觉很奇妙------你心里有一段经历,你把它变成了歌词,AI把它唱了出来。不是别人的歌,是你自己的。

从那之后断断续续写了60多首。状态好一晚上两首,改几十遍不满意的时候也有。

然后问题来了。每首歌都要走完整套流程------写歌词、改韵脚、配Style Prompt、填Suno、生成、听、不满意再改。每次都得重新回忆「这个韵脚对应什么情绪」「管道符顺序是什么」「该用大调还是小调」。写多了特别繁琐。

于是我把60多首歌的创作法则逆向工程成了两个SKILL------chinese-lyric-craftsongwriting-and-ai-music。Suno的坑全踩过了------多音字要重拼(「乐理」得写成「月理」,不然AI歌手会唱成「勒理」),管道符顺序不能乱,韵脚选错了整首歌别扭。

但SKILL是我自己用的。我始终在想------能不能直接做个网站?让一个完全没用过Suno的人,不用学歌词怎么写、不用懂管道符是什么,只输入一段自己经历过的故事,就能得到一首完整的歌。

所以就有了「回声(Echo)」。


三步写出一首歌

打开网站,迎接你的是一个深色画布,暖琥珀色的灯光感。右侧一张旋转的黑胶唱片动画。Hero区域写着两行字------「你经历的故事」「值得被唱出来」。

第一步:输入你的故事

往下滑,进入写歌工作区。双栏布局------左边输入,右边输出。

左边是一个大输入框,你把故事贴进去。故事最少20个字。写不了长故事?没关系。内置了三个示例故事可以直接点进去看------「冬日辞职」「外婆的厨房」「深夜出租车」------每个都是真实经历的画面切片。

输入框上方有五组配置:

  • 曲风:民谣、流行、摇滚、电子、R&B、古风、爵士、后摇(可多选)
  • 情绪:思念、释怀、热烈、忧伤、平静、怅然、温暖、决绝(可多选)
  • 人声:男声、女声、自动
  • 年代:90年代经典、千禧年、当代流行、复古怀旧
  • 节奏:慢板、中板、快板

还有一个上传文件按钮。如果你有写好的txt文件(10KB以内),直接拖进去。

输入框右下角写着快捷键提示。Ctrl+Enter,开始生成。

第二步:AI分析

AI读取你的故事,提取5到8个关键意象,判断情感弧线,从十三辙里选定最合适的韵脚,匹配曲风和BPM,确定调性,推荐人声风格。

第三步:生成歌词

AI基于分析结果,按五条铁律创作完整歌词。结构固定------Verse、Pre-Chorus、Chorus、Verse、Chorus、Bridge、Chorus、Outro------全部标注Suno标准段落标签。歌词逐行动画展开,一首歌慢慢出现在你面前。

输出区有三个Tab:

歌词Tab:完整歌词,段落标注清晰。歌名下面是曲风·BPM·情绪·人声·调性信息条。三个复制按钮:复制歌词、复制Style、复制全部。

Suno配置Tab:长文本被自动拆成8个可视化标签------人声、曲风、情绪、配器、制作、动态、BPM、调性。还有一个「在Suno中听」按钮。点一下,一键复制全部,直接跳转suno.com/create。从故事到真歌,最后一步补上了。

创作分析Tab:意象清单、情感弧线描述、韵脚设计说明、推荐曲风和BPM、人声风格。


几个意料之外的细节

每首歌一张专属封面

每次生成,随机一张封面。纯CSS画的,零图片请求。8种图案------暖弧渐变、对角线切割、中心圆、斜切、水平条纹、偏移方块、同心圆环、四分块。8套色调从暖琥珀到深赭到砖红。不是「随机一张图」,是「你的歌配了一张专属封面」。

唱片架

导航条上有一个唱片架按钮。点开,从右侧滑入一个面板。你写过的每首歌一张卡片------CSS封面 + 歌名 + 曲风·BPM·日期。每张卡片有独立的删除按钮。空状态是一张纯CSS画的黑胶唱片插画,上面写着「还没有唱片,写下你的第一首歌」。

版本对比

每首歌生成后有一个「再来一版」按钮。同样的故事,用更高的temperature再跑一次。然后弹窗并排展示Take 1和Take 2------两版各有独立封面、独立歌词、独立Suno配置、独立「在Suno中听」按钮。AI不帮你选,AI给你两版,你自己挑。

API设置

右上角齿轮弹出API设置弹窗。预置了6个模型------火山方舟(豆包)、OpenAI、DeepSeek、通义千问、智谱GLM、Moonshot(Kimi)。点一下自动填入地址和模型名,只粘贴Key就行。也支持手动填自定义配置。

历史记录存在你电脑的localStorage里,最多50条。API Key也是。不上传任何数据到服务器。


产品的灵魂:1800字的System Prompt

功能看完了。要说为什么AI能写出有章法的歌词------答案是编进代码里的1800字System Prompt。核心是三条线。

第一条线:五条创作铁律

# 法则 说明
1 Show-Don't-Tell 不能用「悲伤」「思念」「孤独」「幸福」这些词。情感外包给物体------「路灯一盏一盏灭了」不是「我很想你」
2 韵脚锁死 选定韵脚后全歌逐字核对。Suno的AI歌手会把意外押韵唱成同一声调
3 私人意象优先 「冰箱里的酸奶记得喝吗」 >「我的思念」。「一张小方桌,有一荤一素」
4 四行体追问 每段第四行要比前三行高一个意义层次。「没有信用卡也没有她」→「我想要怒放的生命」
5 禁止词 「其实」「就那样」「和我一样」「没什么」------全禁

这五条是写了60多首歌筛出来的。试过6条互相打架,试过4条AI自己编新规则稀释效果。5条能覆盖90%的常见问题。

第二条线:十三辙情感对应

不同韵辙的开口度、音色气质不一样,适配的情绪也不同:

韵辙 韵母 情感基调 适用场景
怀来辙 ai 开阔明亮 励志、希望
乜斜辙 ie/üe 狭促压抑 暗恋、纠结
江阳辙 ang 洪亮昂扬 宣言、大歌
遥条辙 ao 悠长飘荡 自由、漂泊
言前辙 an 响亮开阔 叙事

AI分析完故事的情绪后,从这张表里找到最匹配的韵脚。不只是选韵------是选对了情绪底色。

第三条线:二阶段生成

整个生成分两步。这是试出来的------一步出的话,结构对,意象也提取了,但唱起来不舒服。因为没有先「选韵脚」这步。一步出的韵脚是AI从故事里「感觉」到的,不是分析→判断→执行的流程。两步虽然多一轮API调用,但质量跳了一大截。

第一步,AI分析故事。严格JSON输出:意象清单(5-8个,必须来自故事原文)、情感弧线、韵脚选择(十三辙+理由)、曲风、BPM、调性、人声风格和性别、weirdness值、排除风格。

第二步,AI写歌。基于分析结果,按五条铁律创作。严格JSON输出:歌名(4-7字,从核心意象提取)、完整歌词(Verse-Chorus结构,150-300字)、Style Prompt(管道符九段)、创作分析。

Style Prompt最后那段「clear Mandarin diction」「crisp consonant articulation」「native Mandarin vocals」是关键------Suno v5.5 Pro的中文咬字优化全靠这三个约束。不加的话AI歌手唱歌会含混不清。


为什么必须是1M上下文的模型

上面这一整套System Prompt,8K上下文的模型塞进去就没了,用户的故事根本放不下。32K勉强能装,但几条规则的「为什么」和「反例」就得砍掉------砍掉之后成了空洞的口令,效果直接打折。

我的方法论决定了必须用1M上下文的模型。豆包Seed Evolving刚好是这个量级------1024K输入,在上面跑完整Prompt+Spec+四轮迭代+两首歌全文,总共不到50K token,只用掉了5%。每条规则可以保留完整的「为什么+反例+来源」,不需要为了省token把知识库压缩成口号。


项目是怎么搭起来的

想法有了,下一步是选工具。

生成项目的模型用的是豆包Seed Evolving。在火山方舟控制台开通后,拿到API Key,配置Agent Plan------模型选doubao-seed-evolving,接入地址就是方舟的Anthropic兼容端点。具体的接入步骤官方文档写得很清楚:火山方舟

开发工具用的是Codex桌面客户端。在设置里把Base URL指到方舟地址,填上模型名和Key就行了。然后就是跟它对话------我写Spec,它写代码,一轮一轮调。全程我一行代码没写。


用量统计

第一版其实被我完全推翻了。最初的设计方向偏冷色调,做完之后怎么看都不对------不像写歌的地方,像个管理后台。加上Prompt从一步改两步、API层后来兼容多模型又加了两层fallback,整个推翻重来了一遍。最终版本的总用量如下:


欢迎来试试

项目已开源:

GitHub:GitHub - chnjames/echo-suno-writer: 把故事写成歌 · 专为 Suno v5.5 Pro 优化的 AI 歌词生成器 · GitHub

在线体验:回声 --- 你经历的故事,值得被唱出来

三步就能开始

  1. 打开网站 → API设置 → 填你的Key
  2. 输入一段你的故事
  3. Ctrl + Enter

试试吧。把那个一直藏在心里的故事、那个想说却没说出口的夜晚、那段被时间慢慢发酵的情绪,唱出来,它值得被听见。

回声 --- 你经历的故事,值得被唱出来

欢迎体验,也欢迎提建议。

**同样的架构,换一套Prompt,你也可以做出属于自己的工具。**每天日记生成一首歌,一年365首个人编年史。把和某个人的聊天记录写成一首歌。


写在最后

做这个项目让我重新理解了一件事。AI写代码,不是「你给我标题我给你项目」。你花在Spec上的每一分钟,出来的代码就高一分。

那些在我没说的地方------每首歌一张专属封面、不把自己设为默认、补上无障碍特性、给你两版让你自己挑------不是「完成要求」。是「理解意图后的主动填充」。这可能就是1M上下文真正带来的东西。不是更多的token。是更多的理解空间。是那种愿意给你的歌做一个封面的判断力。

相关推荐
IT_陈寒2 小时前
Vue这个特性差点让我加班到凌晨,谁懂啊
前端·人工智能·后端
kyriewen2 小时前
我让AI改一个bug——它偷偷动了5个我没让它碰的地方
前端·javascript·ai编程
遇乐的果园3 小时前
前端学习笔记-vue加载渲染优化
前端·笔记·学习
用户985033593283 小时前
OpenLayers 热力图从原理到 Vue 组件一键接入
前端
颜酱3 小时前
01 | 骨架搭建:FastAPI + Vue 跑通第一个 SSE 流式问答
前端·人工智能·后端
hoLzwEge4 小时前
解码 IDE 智能提示:jsconfig.json 辅助开发全攻略
前端·前端框架
leoZ2314 小时前
记忆系统与 Agent 定制完全指南(四):自定义 Agent 开发(一)
前端·chrome
慧一居士4 小时前
Element Plus 按需引入的配置使用说明和完整示例
前端·vue.js
程序员黑豆4 小时前
鸿蒙应用开发实战:从零学会自定义组件
前端·华为·harmonyos