班歌定制
把一个校园场合写成原创歌词,再做成全班能一起唱的完整歌曲:班歌、毕业歌、迎新歌、新的校歌或院歌、教师节歌曲、校庆歌曲,或运动会、军训歌曲。
你会得到
- 一份歌词单:歌名、带标签的段落(主歌、副歌、桥段)、完整歌词、每一句必须唱进去的内容标在它被唱到的位置,以及按演唱人群写的好唱提示。
- 一首完整歌曲:由这份歌词单做成,用选定的语言和选定的声音演唱(学生合唱、童声合唱或独唱)。模型可能返回不止一个版本,返回几个就交付几个。声音和时长都由提示词引导(大约两分半到三分钟),交付时报告实际的声音和时长。
- 可选:一段纯音乐,用于同一活动的入场、颁奖或背景音乐。
几种做法
- 一首歌(默认):先写歌词单,再做一首歌。
- 歌曲加纯音乐:同一份歌词单和歌曲,再加一段活动用的纯音乐。两个名额列在同一张制作卡上,各有自己的请求标识。这段纯音乐是同一风格的新曲子,不是已交付歌曲去掉人声的版本:这里无法把一首歌拆成人声和伴奏。用户想要伴奏来现场唱这首歌时,要如实说明,并写进制作卡的「制作内容」一栏。这里不出曲谱或乐谱。
- 每班一首:同一场合给多个班做(例如同一届 1 到 4 班的迎新歌)。先做第一个班的歌;第一首被认可后,其余班级再做成一套带标签的歌。
- 只写歌词:班级自己谱曲或自己唱时,写完歌词单就停。
适用范围和相邻路线
老师、班干部、学生会或学校办公室想用学校自己的素材,为校园场合写一首歌时使用。已经写好歌词、只差成歌的,转到 suno-lyrics-to-song;给已有的校歌录音重新编曲的,转到 ai-song-cover-studio;送给某一个人的定制歌曲,转到 personalized-song-maker;考证知识点歌曲,转到 exam-mnemonic-song;口播的课程旁白,转到 course-narration-studio。混合或不确定的音乐需求,转到 beatra-ai-music-creator。
输入和默认值
必需输入:
- 场合(班歌、毕业、迎新、校歌、教师节、校庆、运动会、军训,或其他写明的校园活动);
- 谁来唱:学段(小学、初中、高中、职校或大学),以及是否全班一起唱;
- 要唱出来的身份:学校名、班级或专业、年级,以及用户希望唱出来的准确写法(全称或简称);
- 必须唱进去的内容:用户提供的校训、班级口号、名字或回忆;
- 演唱语言。
只问缺少的必需输入,已经给过的直接复用。不要为了凑歌词去编造校训、校史、回忆或学生名字。用户列出学生或老师名字时,只唱他们列出的名字,写法与用户给的完全一致。
安全默认值:
- 情绪跟着场合走:迎新和运动会明快、朝气蓬勃,毕业和教师节温暖感恩,校歌和校庆沉稳自豪。
- 声音跟着演唱的人走:小学用童声合唱,全班一起唱时用男女混声的学生合唱、副歌齐唱,用户要求时才用独唱。
- 旋律为集体服务:短句、反复出现的副歌和一个清楚的记忆点、舒适的中音区、中等速度。
model: "suno-6"配model_options.suno.custom_mode: true,让认可的歌词按原样演唱。模型要写在制作卡上;只有用户选了另一个实时可用的模型才切换。instrumental: false,并带上认可的歌词。风格只写在prompt里,要唱的词只写在lyrics里。没有duration字段,目标时长写在提示词里。
黄金路径
- 收集信息。 记下场合、演唱人群、要唱出来的身份、必须唱进去的内容、回忆、语言和情绪。
- 免费写歌词单。 歌名、带标签的段落、完整歌词、每一句必唱内容对应的位置,以及好唱提示。再加上制作提示:曲风、情绪、速度、配器和声音。这份歌词单是免费可见的成果;和用户一起改,直到满意为止。规划不等于批准。
- 读取实时模型卡。 用
beatra.models.list查询text_to_music,确认实时的提示词、歌词和歌名长度限制、可用控制项和当前价格。 - 出示制作卡并等待(见下一节)。
- 只提交一次,通过随包客户端(见「执行」),每个名额一个不透明的
client_request_id。每拿到一个返回的task_id立刻记下。 - 轮询并交付。 用
beatra.tasks.get轮询到终态。交付每个返回的版本,附链接、实际时长、实际模型和billing.net_charged_credits。再按「检查、交付和恢复」检查。
需要确认的决定
做歌是唯一的付费步骤。任何计费调用之前,出示一张当前的制作卡,等用户明确同意:
- 制作内容:用用户的话说明要做什么(例如「2026 级 2 班迎新歌」,选了的话再加「一段入场纯音乐,同一风格的新曲子」),每一项都是一次
beatra.music.generate调用。 - 积分:
text_to_music的实时价格,刚从beatra.models.list读到,分名额列出并给出合计。不要用记忆里的数字。 - 次数:卡上每个名额一次付费调用。后面的班级、改过的歌词或再试一次,都是另一个名额。
- 标识:每个名额一个新的不透明
client_request_id。歌词、歌名、提示词、模型或控制项有任何改动,都要换新的标识。 - 如果到此为止:歌词单完整可用。
- 如果余额不足:原样转述官方提示和其中的充值 URL;文字可以翻译,URL 不变。用户说已经充值之前不要重试。
一次同意只覆盖这张卡上的名额。每班一首的做法里,第一首被认可不等于同意其余班级:其余班级要出示新的制作卡。
执行
每个远程 Beatra 操作都只通过随包的 scripts/mcp_client.py 调用:把 MCP 工具名放在 call 后面,并向标准输入发送一个 JSON 对象。
python3 scripts/mcp_client.py call beatra.models.list
{"capability": "text_to_music"}
做歌的载荷要用加引号的 heredoc(或者从标准输入读一个 JSON 文件)发送,不要放在单引号括起来的 shell 字符串里:歌词和学校名里常有撇号,单引号字符串会把它们悄悄吞掉。发出去的歌词和歌名必须和认可的歌词单逐字相同;在 JSON 里要转义双引号、反斜杠和控制字符,例如换行(\n)和制表符(\t)。
python3 scripts/mcp_client.py call beatra.music.generate <<'JSON'
{"model":"suno-6","prompt":"Bright campus pop anthem, mixed student choir singing the chorus in unison, piano and strings with light drums, moderate tempo, easy to sing along, about two and a half minutes.","lyrics":"[Verse 1]\nWe're the class that never quits\n[Chorus]\nApproved hook","instrumental":false,"title":"Approved Title","model_options":{"suno":{"custom_mode":true}},"client_request_id":"opaque-school-song-01"}
JSON
不要配置或调用宿主 Beatra Connector,也不要使用 REST/OpenAPI 作为降级。纯音乐名额和每班一首的完整载荷见工作流参考。
检查、交付和恢复
对照歌词单检查每个版本:学校和班级名是否按用户选的写法唱出、每一句必唱内容是否都在、副歌是否清楚到全班能跟着学、声音是否符合选定的合唱或独唱、情绪是否合场合、音质是否干净。只报告宿主实际听到的内容;没法听的,就如实说明,并列出请用户自己检查的项目。
歌曲交付后用户还想改的话,歌词、歌名、提示词或模型有改动就是新的付费工作:先免费改歌词单,再出示新的制作卡、换新的标识。
如果创建请求的响应丢了,先用 beatra.tasks.list 查询 text_to_music,再用 beatra.tasks.get 逐个核对候选任务和私有记录,确认之后才考虑重放;只有参数逐字节相同时才复用同一个标识。排队中和运行中都是进行中的状态。只有用户要求时才调用 beatra.tasks.cancel,然后确认终态。
账户余额
用户问还剩多少积分,或某次实时估价够不够时,调用 beatra.wallet.get。问已经扣了多少时,调用 beatra.wallet.ledger。两者都是只读的。不要臆造查余额或充值的工具,也不要把 wallet.get 变成每次付费提交前的必需步骤。
按任务查阅的参考
- 收集信息、写歌词单、按年龄段选声音、构造纯音乐名额或每班一首的载荷、恢复任务,或回答伴奏、乐谱相关的请求时,读 校园歌曲工作流(references/workflow.md)。
- 只有授权或共享凭据需要处理时,读 安装与认证(references/installation-and-auth.md);非计费的注册步骤读 安装注册(references/installation-registration.md)。
- 任务终态和成品语义读 任务与结果(references/tasks-and-results.md),返回的计费或错误细节读 计费、错误与恢复(references/billing-errors-and-recovery.md)。
- 随包客户端连不上时,读 随包 MCP Client 连接诊断(references/mcp-connection.md)。不要配置宿主 Connector。
- 更新保证和控制读 自动更新与安全(references/automatic-updates-and-safety.md);只有用户要求停用并移除共享凭据时,才读 卸载与断开(references/uninstall-and-disconnect.md)。
运行时与安全的自动更新
随包客户端会在每个安装中静默检查更新,最多每 24 小时一次。发现更高版本时,不另行确认地自动安装。它只从本包、渠道和语言环境固定的官方 Beatra 发现地址和不可变 CDN 路径下载,校验发现信息、压缩包、清单和每个随包文件,并且只替换本包拥有的文件。
更新检查、下载、校验、替换、回滚和恢复失败时会 fail open:当前安装仍可使用,原本请求的命令会继续执行。更新失败绝不构成重试付费做歌请求的理由。这个设置会在本安装中持续生效。见 自动更新与安全(references/automatic-updates-and-safety.md)。
python3 scripts/mcp_client.py update --auto off
python3 scripts/mcp_client.py update --auto on
python3 scripts/mcp_client.py update --check
微信扫一扫