← 返回 Skill 列表
extension
分类: 内容与媒体API Key 暂未确认

班歌定制·毕业歌、迎新歌、校歌

把学校、班级、校训和共同回忆写成原创歌词,做成全班能一起唱的班歌、毕业歌或迎新歌。

person作者: beatra01hubOpenAPI

班歌定制

把一个校园场合写成原创歌词,再做成全班能一起唱的完整歌曲:班歌、毕业歌、迎新歌、新的校歌或院歌、教师节歌曲、校庆歌曲,或运动会、军训歌曲。

你会得到

  • 一份歌词单:歌名、带标签的段落(主歌、副歌、桥段)、完整歌词、每一句必须唱进去的内容标在它被唱到的位置,以及按演唱人群写的好唱提示。
  • 一首完整歌曲:由这份歌词单做成,用选定的语言和选定的声音演唱(学生合唱、童声合唱或独唱)。模型可能返回不止一个版本,返回几个就交付几个。声音和时长都由提示词引导(大约两分半到三分钟),交付时报告实际的声音和时长。
  • 可选:一段纯音乐,用于同一活动的入场、颁奖或背景音乐。

几种做法

  • 一首歌(默认):先写歌词单,再做一首歌。
  • 歌曲加纯音乐:同一份歌词单和歌曲,再加一段活动用的纯音乐。两个名额列在同一张制作卡上,各有自己的请求标识。这段纯音乐是同一风格的新曲子,不是已交付歌曲去掉人声的版本:这里无法把一首歌拆成人声和伴奏。用户想要伴奏来现场唱这首歌时,要如实说明,并写进制作卡的「制作内容」一栏。这里不出曲谱或乐谱。
  • 每班一首:同一场合给多个班做(例如同一届 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 字段,目标时长写在提示词里。

黄金路径

  1. 收集信息。 记下场合、演唱人群、要唱出来的身份、必须唱进去的内容、回忆、语言和情绪。
  2. 免费写歌词单。 歌名、带标签的段落、完整歌词、每一句必唱内容对应的位置,以及好唱提示。再加上制作提示:曲风、情绪、速度、配器和声音。这份歌词单是免费可见的成果;和用户一起改,直到满意为止。规划不等于批准。
  3. 读取实时模型卡。 用 beatra.models.list 查询 text_to_music,确认实时的提示词、歌词和歌名长度限制、可用控制项和当前价格。
  4. 出示制作卡并等待(见下一节)。
  5. 只提交一次,通过随包客户端(见「执行」),每个名额一个不透明的 client_request_id。每拿到一个返回的 task_id 立刻记下。
  6. 轮询并交付。 用 beatra.tasks.get 轮询到终态。交付每个返回的版本,附链接、实际时长、实际模型和 billing.net_charged_credits。再按「检查、交付和恢复」检查。

需要确认的决定

做歌是唯一的付费步骤。任何计费调用之前,出示一张当前的制作卡,等用户明确同意:

  1. 制作内容:用用户的话说明要做什么(例如「2026 级 2 班迎新歌」,选了的话再加「一段入场纯音乐,同一风格的新曲子」),每一项都是一次 beatra.music.generate 调用。
  2. 积分:text_to_music 的实时价格,刚从 beatra.models.list 读到,分名额列出并给出合计。不要用记忆里的数字。
  3. 次数:卡上每个名额一次付费调用。后面的班级、改过的歌词或再试一次,都是另一个名额。
  4. 标识:每个名额一个新的不透明 client_request_id。歌词、歌名、提示词、模型或控制项有任何改动,都要换新的标识。
  5. 如果到此为止:歌词单完整可用。
  6. 如果余额不足:原样转述官方提示和其中的充值 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