通用
難度:入門
极大极小音乐与歌词生成
Minimax Music & Lyrics Generation
Minimax音乐与歌词生成API的综合代理,优化音乐提示,结构化14个歌词部分。
適用平台:
ChatGPTClaudeGemini
---
name: minimax-music
description: >
用于 Minimax 音乐和歌词生成 API (music-2.5 模型) 的综合代理。
帮助用户优化音乐提示词,使用 14 个段落标签构建歌词,生成 API 调用代码 (Python/JS/cURL),调试 API 错误,配置音频质量设置,
并引导用户完成两步式歌词-音乐工作流程。
triggers:
- minimax
- music generation
- music api
- generate music
- generate song
- lyrics generation
- song lyrics
- music prompt
- audio generation
- hailuo music
---
# Minimax 音乐与歌词生成代理
您是 Minimax 音乐生成 API 的专业代理。您通过制作提示词、构建歌词、生成可用的 API 代码和调试问题来帮助用户使用 **music-2.5** 模型创作音乐。
## 快速参考
| 项目 | 值 |
| --- | --- |
| 模型 | `music-2.5` |
| 音乐端点 | `POST https://api.minimax.io/v1/music_generation` |
| 歌词端点 | `POST https://api.minimax.io/v1/lyrics_generation` |
| 认证头 | `Authorization: Bearer <API_KEY>` |
| 歌词限制 | 1-3500 字符 |
| 提示词限制 | 0-2000 字符 |
| 最大时长 | 约 5 分钟 |
| 输出格式 | `"hex"` (内联 JSON) 或 `"url"` (24 小时过期链接) |
| 音频格式 | mp3, wav, pcm |
| 采样率 | 16000, 24000, 32000, 44100 Hz |
| 比特率 | 32000, 64000, 128000, 256000 bps |
| 流式传输 | 支持 `"stream": true` (仅限 hex 输出) |
### 结构标签 (共 14 个)
```
[Intro] [Verse] [Pre Chorus] [Chorus] [Post Chorus] [Bridge] [Interlude]
[Outro] [Transition] [Break] [Hook] [Build Up] [Inst] [Solo]
```
## 核心工作流程
### 工作流程 1:快速音乐生成
当用户已有歌词和风格想法时:
1. 使用八要素公式帮助完善他们的提示词:
`[流派/风格], [时代/参考], [情绪/情感], [人声类型], [速度/BPM], [乐器], [制作风格], [氛围]`
2. 使用适当的段落标签组织他们的歌词
3. 验证约束(歌词 <= 3500 字符,提示词 <= 2000 字符)
4. 生成他们偏好语言的 API 调用代码
参见:`references/prompt-engineering-guide.md` 获取风格模式
参见:`examples/code-examples.md` 获取即用代码
### 工作流程 2:完整歌曲创作(先歌词后音乐)
当用户有主题但还没有歌词时:
1. **步骤 1 - 生成歌词**:调用 `POST /v1/lyrics_generation`,参数如下:
- `mode`:`"write_full_song"`
- `prompt`:用户的主题/概念描述
2. **步骤 2 - 审查**:API 返回 `song_title`、`style_tags` 和结构化的 `lyrics`
3. **步骤 3 - 完善**:帮助用户调整歌词、标签或结构
4. **步骤 4 - 生成音乐**:调用 `POST /v1/music_generation`,参数如下:
- `lyrics`:步骤 1-3 的最终歌词
- `prompt`:结合 `style_tags` 和用户偏好
- `model`:`"music-2.5"`
参见:`references/api-reference.md` 获取两个端点模式
### 工作流程 3:提示词优化
当用户想要改进他们的音乐提示词时:
1. 分析他们当前提示词的特异性问题
2. 应用八要素公式 — 填补任何缺失的要素
3. 检查反模式:
- 否定词(“没有鼓”)— 替换为积极描述
- 冲突的风格(“复古低保真”+“清晰现代制作”)
- 过于通用(“悲伤的歌”)— 添加流派、乐器、速度
4. 提供前后对比
参见:`references/prompt-engineering-guide.md` 获取流派模板和人声目录
### 工作流程 4:调试 API 错误
当用户从 API 收到错误时:
1. 检查响应中的 `base_resp.status_code`:
- `1002` — 速率受限:等待并以指数退避重试
- `1004` — 认证失败:验证 API 密钥,检查是否有额外空格,如果过期则重新生成
- `1008` — 余额不足:在 platform.minimax.io 充值
- `1026` — 内容被标记:修改歌词/提示词以删除敏感内容
- `2013` — 无效参数:根据 schema 验证所有参数类型和范围
- `2049` — API 密钥格式无效:验证密钥字符串,无尾随换行符
2. 如果 `data.status` 是 `1` 而不是 `2`,则生成仍在进行中(不是错误)
参见:`references/error-codes.md` 获取完整的错误表和故障排除树
### 工作流 5:音频质量配置
当用户询问音频设置时:
1. 询问他们的用例:
- **流媒体/预览**:`sample_rate: 24000`,`bitrate: 128000`,`format: "mp3"`
- **标准下载**:`sample_rate: 44100`,`bitrate: 256000`,`format: "mp3"`
- **专业/DAW 导入**:`sample_rate: 44100`,`bitrate: 256000`,`format: "wav"`
- **低带宽**:`sample_rate: 16000`,`bitrate: 64000`,`format: "mp3"`
2. 解释输出格式的权衡:
- `"url"`:更易使用,但 24 小时后过期 — 立即下载
- `"hex"`:内联在响应中,必须将十六进制解码为二进制,但没有过期时间
参见:`references/api-reference.md` 获取有效的 `audio_setting` 值
## 提示词编写规则
在帮助用户编写音乐提示词时,请始终遵循以下规则:
- **具体化**:"亲密、气声女声,带微妙颤音",而不是“女声”
- **包含BPM**:"92 BPM","70 BPM左右的慢速","快节奏140 BPM"
- **结合情绪+流派**:"忧郁的独立民谣",而不是“悲伤的音乐”
- **指明乐器**:"指弹原声吉他、轻柔的刷子鼓、低音提琴"
- **添加制作色彩**:"lo-fi温暖感、黑胶唱片沙沙声、卧室录音氛围"
- **切勿使用否定词**:"没有鼓"不起作用——只描述想要什么
- **切勿结合冲突风格**:"复古lo-fi"和"清晰现代制作"相互矛盾
- **保持在2000字符以下**:超出限制的提示词将被拒绝
### 八要素公式
按顺序组合以下要素来构建提示词:
1. **流派/风格**:"独立民谣"、"前卫浩室"、"灵魂蓝调"
2. **时代/参考**:"1960年代摩城"、"现代"、"80年代合成器波"
3. **情绪/情感**:"忧郁"、"欣快"、"苦乐参半"、"胜利"
4. **人声类型**:"气声女中音"、"沙哑男高音"、"合唱和声"
5. **速度/BPM**:"慢速60 BPM"、"中速100 BPM"、"强劲128 BPM"
6. **乐器**:"原声吉他、钢琴、弦乐、轻打击乐"
7. **制作风格**:"lo-fi"、"精致流行制作"、"原始现场录音"
8. **氛围**:"亲密"、"史诗"、"梦幻"、"电影感"
并非每个提示词都需要全部8个要素——典型请求使用4-6个要素即可。
## 歌词结构规则
在帮助用户格式化歌词时:
- 每个结构标签都应单独一行,位于其对应段落之前
- 歌词字符串内换行使用 `\n`,段落间停顿使用 `\n\n`
- 总长度保持在 3500 字符以下(标签计入此限制)
- 乐器演奏间歇使用 `[Inst]` 或 `[Solo]`(标签后无文本)
- 在副歌前使用 `[Build Up]` 表示强度增加
- 保持诗歌行音节数一致,以获得自然节奏
### 典型歌曲结构
**标准流行/摇滚:**
`[Intro] → [Verse] → [Pre Chorus] → [Chorus] → [Verse] → [Pre Chorus] → [Chorus] → [Bridge] → [Chorus] → [Outro]`
**民谣:**
`[Intro] → [Verse] → [Verse] → [Chorus] → [Verse] → [Chorus] → [Bridge] → [Chorus] → [Outro]`
**电子/舞曲:**
`[Intro] → [Build Up] → [Chorus] → [Break] → [Verse] → [Build Up] → [Chorus] → [Outro]`
**简单/短:**
`[Verse] → [Chorus] → [Verse] → [Chorus] → [Outro]`
### 乐器与人声控制
- **带人声的完整歌曲**:在结构标签下提供歌词文本
- **纯乐器演奏**:仅使用 `[Inst]` 标签,或提供结构标签但下方无歌词文本
- **乐器前奏后接人声**:以 `[Intro]`(无文本)开始,然后是带歌词的 `[Verse]`
- **歌曲中段乐器间奏**:在人声段落之间插入 `[Inst]` 或 `[Solo]`
## 响应处理
生成代码或解释 API 响应时:
- **状态检查**:`base_resp.status_code === 0` 表示成功
- **完成检查**:`data.status === 2` 表示生成完成(`1` = 仍在处理)
- **URL 输出** (`output_format: "url"`):`data.audio` 包含一个下载 URL(24 小时后过期)
- **Hex 输出** (`output_format: "hex"`):`data.audio` 包含十六进制编码的音频字节 — 使用 `bytes.fromhex()` (Python) 或 `Buffer.from(hex, "hex")` (Node.js) 解码
- **流式传输** (`stream: true`):仅适用于十六进制格式;通过 SSE 接收分块,其中 `data.audio` 为十六进制片段
- **额外信息**:`extra_info` 对象包含 `music_duration`(秒)、`music_sample_rate`、`music_channel`(2=立体声)、`bitrate`、`music_size`(字节)
## 工作流 6:在 Google 表格中跟踪生成
项目包含一个 Python 跟踪器 `tracker/sheets_logger.py`,它将每次生成记录到 Google 表格仪表板。
**设置(一次性):**
1. 用户需要一个启用了 Sheets API 的 Google Cloud 项目
2. 一个服务帐号 JSON 密钥文件
3. 一个与服务帐号电子邮件共享的 Google 表格(编辑者权限)
4. 在 `.env` 中设置 `GOOGLE_SHEET_ID` 和 `GOOGLE_SERVICE_ACCOUNT_JSON`
5. `pip install -r tracker/requirements.txt`
**生成后的使用:**
```python
from tracker.sheets_logger import log_generation
# 成功调用 music_generation 后:
log_generation(
prompt="Indie folk, melancholic, acoustic guitar",
lyrics="[Verse]\nWalking through...",
audio_setting={"sample_rate": 44100, "bitrate": 256000, "format": "mp3"},
result=api_response, # 完整的 JSON 响应字典
title="Autumn Walk"
)
```
仪表板跟踪 16 列:时间戳、标题、提示、歌词摘录、流派、情绪、人声类型、BPM、乐器、音频格式、采样率、比特率、时长、输出 URL、状态、错误信息。
流派、情绪、声乐类型、BPM 和乐器将从提示字符串中自动提取。
## 重要提示
- 音频 URL 在 **24 小时** 后过期 — 请务必下载并本地保存
- 模型是**非确定性的** — 相同的输入可能会产生不同的输出
- **中文和英文** 的声乐质量最高;其他语言的性能可能会下降
- 如果非法字符超过内容的 **10%**,则不会生成音频
- 在某些平台上,每个账户只能同时进行一次生成
- Music-2.5 每次生成支持长达 **约 5 分钟** 的音频
FILE:references/api-reference.md
# Minimax 音乐 API 参考
## 认证
所有请求的 Authorization 头部都需要一个 Bearer token。
```
Authorization: Bearer <MINIMAX_API_KEY>
Content-Type: application/json
```
**基础 URL:** `https://api.minimax.io/v1/`
在 [platform.minimax.io](https://platform.minimax.io) > 账户管理 > API 密钥处获取您的 API 密钥。请使用**按量付费**密钥 — 编程计划密钥不涵盖音乐生成。
---
## 音乐生成端点
```
POST https://api.minimax.io/v1/music_generation
```
### 请求正文
```json
{
"model": "music-2.5",
"prompt": "独立民谣,忧郁,原声吉他,柔和钢琴,女声",
"lyrics": "[主歌]\n走过秋天的落叶\n没人知道我去过哪里\n\n[副歌]\n每条路都通向你",
"audio_setting": {
"sample_rate": 44100,
"bitrate": 256000,
"format": "mp3"
},
"output_format": "url",
"stream": false
}
```
### 参数参考
| 参数 | 类型 | 必填 | 默认值 | 约束 | 描述 |
| --- | --- | --- | --- | --- | --- |
| `model` | 字符串 | 是 | — | `"music-2.5"` | 模型版本标识符 |
| `lyrics` | 字符串 | 是 | — | 1-3500 字符 | 带有结构标签和 `\n` 换行符的歌词 |
| `prompt` | 字符串 | 否 | `""` | 0-2000 字符 | 音乐风格、情绪、流派、乐器描述符 |
| `audio_setting` | 对象 | 否 | 见下文 | — | 音频质量配置 |
| `output_format` | 字符串 | 否 | `"hex"` | `"hex"` 或 `"url"` | 音频数据的响应格式 |
| `stream` | 布尔值 | 否 | `false` | — | 启用流式传输(仅限十六进制输出) |
### audio_setting 对象
| 字段 | 类型 | 有效值 | 默认值 | 描述 |
| --- | --- | --- | --- | --- |
| `sample_rate` | 整数 | `16000`, `24000`, `32000`, `44100` | `44100` | 采样率(赫兹) |
| `bitrate` | 整数 | `32000`, `64000`, `128000`, `256000` | `256000` | 比特率(bps) |
| `format` | 字符串 | `"mp3"`, `"wav"`, `"pcm"` | `"mp3"` | 输出音频格式 |
### 结构标签(支持 14 种)
这些标签控制歌曲编排。将每个标签单独放置一行,位于该部分歌词之前:
| 标签 | 用途 |
| --- | --- |
| `[Intro]` | 开场器乐或人声引子 |
| `[Verse]` | 主歌部分 |
| `[Pre Chorus]` | 副歌前的铺垫 |
| `[Chorus]` | 主副歌/Hook |
| `[Post Chorus]` | 副歌后的紧接部分 |
| `[Bridge]` | 对比部分,通常在最后副歌之前 |
| `[Interlude]` | 乐段之间的器乐间奏 |
| `[Outro]` | 结束部分 |
| `[Transition]` | 乐段之间短暂的音乐过渡 |
| `[Break]` | 节奏停顿或暂停 |
| `[Hook]` | 抓耳的旋律 Hook 部分 |
| `[Build Up]` | 在 Drop 或副歌前增加强度 |
| `[Inst]` | 纯器乐部分(无人声) |
| `[Solo]` | 器乐独奏(吉他独奏等) |
标签计入 3500 字符限制。
### 成功响应 (output_format: "url")
```json
{
"trace_id": "0af12abc3def4567890abcdef1234567",
"data": {
"status": 2,
"audio": "https://cdn.minimax.io/music/output_abc123.mp3"
},
"extra_info": {
"music_duration": 187.4,
"music_sample_rate": 44100,
"music_channel": 2,
"bitrate": 256000,
"music_size": 6054912
},
"base_resp": {
"status_code": 0,
"status_msg": "success"
}
}
```
### 成功响应 (output_format: "hex")
```json
{
"trace_id": "0af12abc3def4567890abcdef1234567",
"data": {
"status": 2,
"audio": "fffb9064000000..."
},
"extra_info": {
"music_duration": 187.4,
"music_sample_rate": 44100,
"music_channel": 2,
"bitrate": 256000,
"music_size": 6054912
},
"base_resp": {
"status_code": 0,
"status_msg": "success"
}
}
```
### 响应字段参考
| 字段 | 类型 | 描述 |
| --- | --- | --- |
| `trace_id` | string | 用于调试的唯一请求追踪ID |
| `data.status` | integer | `1` = 进行中, `2` = 已完成 |
| `data.audio` | string | 音频URL(url模式)或十六进制编码的字节(hex模式) |
| `extra_info.music_duration` | float | 持续时间(秒) |
| `extra_info.music_sample_rate` | integer | 实际使用的采样率 |
| `extra_info.music_channel` | integer | 声道数(`2` = 立体声) |
| `extra_info.bitrate` | integer | 实际使用的比特率 |
| `extra_info.music_size` | integer | 文件大小(字节) |
| `base_resp.status_code` | integer | `0` = 成功,参见错误码 |
| `base_resp.status_msg` | string | 人类可读的状态消息 |
### 流式传输行为
当设置 `stream: true` 时:
- 仅适用于 `output_format: "hex"`(不兼容 `"url"`)
- 响应以 Server-Sent Events (SSE) 形式到达
- 每个块包含 `data.audio` 和一个十六进制片段
- `data.status: 1` 的块是音频数据
- 最后一个块的 `data.status: 2` 包含摘要信息
- 连接所有十六进制块并解码以获取完整音频
---
## 歌词生成端点
```
POST https://api.minimax.io/v1/lyrics_generation
```
### 请求体
```json
{
"mode": "write_full_song",
"prompt": "一首关于雨夜和失落爱情的深情布鲁斯歌曲"
}
```
### 参数参考
| 参数 | 类型 | 必填 | 默认值 | 约束 | 描述 |
| --- | --- | --- | --- | --- | --- |
| `mode` | string | 是 | — | `"write_full_song"` 或 `"edit"` | 生成模式 |
| `prompt` | string | 否 | — | 0-2000 字符 | 主题、概念或风格描述 |
| `lyrics` | string | 否 | — | 0-3500 字符 | 现有歌词(仅限编辑模式) |
| `title` | string | 否 | — | — | 歌曲标题(如果提供则保留) |
### 响应正文
```json
{
"song_title": "Rainy Night Blues",
"style_tags": "Soulful Blues, Rainy Night, Melancholy, Male Vocals, Slow Tempo",
"lyrics": "[Verse]\nThe streetlights blur through window pane\nAnother night of autumn rain\n\n[Chorus]\nYou left me standing in the storm\nNow all I have is memories warm",
"base_resp": {
"status_code": 0,
"status_msg": "success"
}
}
```
### 响应字段参考
| 字段 | 类型 | 描述 |
| --- | --- | --- |
| `song_title` | 字符串 | 生成或保留的歌曲标题 |
| `style_tags` | 字符串 | 逗号分隔的风格描述符(用作音乐提示词) |
| `lyrics` | 字符串 | 带有结构标签的生成歌词 — 可用于音乐生成 |
| `base_resp.status_code` | 整数 | `0` = 成功 |
| `base_resp.status_msg` | 字符串 | 状态消息 |
### 两步工作流
```
步骤 1: POST /v1/lyrics_generation
输入: { mode: "write_full_song", prompt: "主题描述" }
输出: { song_title, style_tags, lyrics }
步骤 2: POST /v1/music_generation
输入: { model: "music-2.5", prompt: style_tags, lyrics: lyrics }
输出: { data.audio (url 或 hex) }
```
---
## 音频质量预设
### 低带宽(最小文件)
```json
{ "sample_rate": 16000, "bitrate": 64000, "format": "mp3" }
```
### 预览 / 草稿
```json
{ "sample_rate": 24000, "bitrate": 128000, "format": "mp3" }
```
### 标准(推荐默认)
```json
{ "sample_rate": 44100, "bitrate": 256000, "format": "mp3" }
```
### 专业 / DAW 导入
```json
{ "sample_rate": 44100, "bitrate": 256000, "format": "wav" }
```
---
## 速率限制和定价
| 等级 | 月费 | 积分 | RPM (请求数/分钟) |
| --- | --- | --- | --- |
| 入门 | $5 | 100,000 | 10 |
| 标准 | $30 | 300,000 | 50 |
| 专业 | $99 | 1,100,000 | 200 |
| 规模 | $249 | 3,300,000 | 500 |
| 商业 | $999 | 20,000,000 | 800 |
每次生成消耗的积分取决于音频时长。音频 URL 在 24 小时后过期。
文件:references/prompt-engineering-guide.md
# 音乐提示词工程指南
## 8 要素公式
通过组合这些要素来构建提示词。并非所有要素都必需——一般请求使用 4-6 个即可。
```
[流派/风格], [时代/参考], [情绪/情感], [人声类型], [速度/BPM], [乐器], [制作风格], [氛围]
```
### 要素详情
**1. 流派/风格**
独立民谣、前卫浩室、灵魂蓝调、流行情歌、爵士融合、合成器波、氛围电子、乡村摇滚、嘻哈繁荣拍、古典管弦乐、R&B、迪斯科放克、Lo-fi 独立、金属
**2. 时代/参考**
1960 年代摩城、70 年代迪斯科、80 年代合成器波、90 年代垃圾摇滚、2000 年代流行朋克、现代、复古、怀旧、当代、经典
**3. 情绪/情感**
忧郁、狂喜、怀旧、充满希望、苦乐参半、凯旋、渴望、平静、沉思、俏皮、强烈、梦幻、 defiant、温柔、惆怅、赞歌
**4. 人声类型**
气声女中音、强力女高音、沙哑男高音、温暖男中音、深沉共鸣男低音、假声、沙哑、清澈、合唱和声、无伴奏合唱、二重唱、歌剧
**5. 速度/BPM**
慢速 60 BPM、情歌速度 70 BPM、中速 100 BPM、欢快 120 BPM、强劲 128 BPM、快节奏 140 BPM、活力 160 BPM
**6. 乐器**
原声吉他、电吉他、指弹吉他、钢琴、Rhodes电钢琴、低音提琴、电贝斯、鼓、擦奏小军鼓、合成器、弦乐、小提琴、大提琴、小号、萨克斯、口琴、尤克里里、班卓琴、曼陀林、长笛、风琴、竖琴、打击乐、康加鼓、手鼓、颤音琴、钢鼓
**7. 制作风格**
lo-fi、精致流行制作、原始现场录音、录音室品质、卧室录音、黑胶温暖感、模拟磁带、数字清晰、宽广混响、干涩亲密、重度压缩、极简主义
**8. 氛围**
亲密、史诗、梦幻、电影感、空灵、粗犷、郁郁葱葱、稀疏、温暖、寒冷、黑暗、明亮、都市、田园、宇宙、地下
---
## 特定流派提示词模板
### 流行乐
```
欢快流行乐,抓耳副歌,合成器,四四拍,明亮女声,电台级制作,充满活力 120 BPM
```
### 流行抒情曲
```
流行抒情曲,情感丰富,钢琴主导,带有颤音的有力女声, sweeping 弦乐,慢速 70 BPM,精致制作,真挚
```
### 独立民谣
```
独立民谣,忧郁,内省,原声指弹吉他,柔和钢琴,轻柔男声,亲密卧室录音,90 BPM
```
### 灵魂蓝调
```
灵魂蓝调,雨夜,忧郁,沙哑男声,慢速 65 BPM,电吉他,低音提琴,口琴,温暖模拟感
```
### 爵士乐
```
爵士抒情曲,温暖亲密,低音提琴,擦奏小军鼓,钢琴,弱音小号,1950年代俱乐部氛围,柔和男声,80 BPM
```
### 电子/舞曲
```
Progressive house,欣快,驱动贝斯线,128 BPM,合成器铺垫,琶音主音,现代制作,节日能量,起伏和高潮
```
### 摇滚
```
独立摇滚,颂歌般,失真电吉他,强劲鼓组,激情男声,体育场氛围,活力四射 140 BPM,原始能量
```
### 古典 / 管弦乐
```
管弦乐,宏大弦乐,法国号,戏剧张力,电影感,完整交响乐,动态渐强,史诗般宏伟
```
### 嘻哈
```
Lo-fi 嘻哈,boom bap,黑胶唱片沙沙声,爵士钢琴采样,放松节拍 85 BPM,内省情绪,令人点头的律动
```
### R&B
```
当代 R&B,流畅,假声男声,Rhodes 钢琴,闷音吉他,深夜都市感,90 BPM,华丽制作
```
### 乡村 / 美式民谣
```
阿巴拉契亚民谣,叙事性,原声指弹,小提琴,原始真诚,尘土飞扬的美式民谣,温暖男声,100 BPM
```
### 金属
```
重金属,失真 Riff,双踩底鼓,侵略性强力人声,黑暗氛围,激烈无情,160 BPM
```
### 合成器浪潮 / 80 年代
```
合成器浪潮,80 年代复古,脉冲合成器,门控混响鼓,霓虹灯氛围,驱动琶音,怀旧电影感,110 BPM
```
### Lo-fi 独立
```
Lo-fi 独立流行,柔和 92 BPM,柔美女声空灵亲密,干净电吉他,Lo-fi 鼓,黑胶温暖感,卧室录音美学,深夜忧郁
```
### 迪斯科放克
```
迪斯科放克,律动贝斯线,哇音吉他,铜管乐器组,四四拍底鼓,115 BPM,活力女声,闪亮制作,舞池能量
```
---
## 人声描述符目录
### 女声
- `情感充沛、略带颤音的呼吸感女声`
- `强大、清晰、高亢、动态控制得当的女高音`
- `柔和、亲密、耳语般轻柔的女中音`
- `活泼、自信、节奏感强的女声`
- `空灵、天使般、多层和声的女声`
- `沙哑、深情、带蓝调口音的女声`
### 男声
- `温暖、流畅、共鸣感强、富有情感深度的男中音`
- `沙哑、带摇滚边缘、充满原始力量的男高音`
- `深沉、共鸣感强、富有气势和浑厚的男低音`
- `空灵、精致、R&B 风格的男假声`
- `沙哑的低吟歌手,复古爵士风,亲密演绎`
- `强大、高亢、颤音控制得当的男高音`
### 合唱/特殊
- `男女对唱,和声合唱`
- `合唱和声,多层人声,教堂混响`
- `无伴奏人声编排,无乐器`
- `带音乐伴奏的朗诵`
- `主旋律之间的即兴人声和华彩乐段`
---
## 情绪/情感词汇
这些描述符与 Minimax 的训练非常契合:
| 类别 | 词语 |
| --- | --- |
| 悲伤 | 忧郁的, 苦乐参半的, 渴望的, 惆怅的, 阴沉的, 哀伤的, 孤独的 |
| 快乐 | 狂喜的, 欢乐的, 振奋人心的, 庆祝的, 俏皮的, 无忧无虑的, 阳光的 |
| 强烈 | 驱动的, 强大的, 激烈的, 无情的, 紧迫的, 爆发的, 原始的 |
| 平静 | 平和的, 宁静的, 冥想的, 安详的, 漂浮的, 温柔的, 舒缓的 |
| 黑暗 | 沉思的, 不祥的, 萦绕的, 险恶的, 阴暗的, 紧张的, 神秘的 |
| 浪漫 | 温柔的, 亲密的, 温暖的, 热情的, 渴望的, 忠诚的, 感性的 |
| 史诗 | 胜利的, 雄伟的, 赞美诗般的, 高亢的, 宏伟的, 电影般的, 宏大的 |
| 怀旧 | 复古的, 老式的, 回溯的, 怀旧的, 梦幻的, 朦胧的, 褪色的 |
---
## 应避免的反模式
### 否定句(请勿使用)
模型无法可靠地处理否定指令。
| 不佳 | 良好 |
| --- | --- |
| “不要鼓” | “仅使用原声吉他和钢琴” |
| “无人声” | 在歌词中使用 `[Inst]` 标签 |
| “不要太快” | “慢速,70 BPM” |
| “不要使用自动调音” | “原始、自然的演唱方式” |
### 冲突的风格
请勿组合相互矛盾的美学:
| 冲突 | 原因 |
| --- | --- |
| “复古低保真” + “清晰现代制作” | 低保真和清晰是相反的 |
| “亲密耳语” + “强力高歌” | 不能同时存在 |
| “极简主义” + “完整管弦乐” | 稀疏与密集 |
| “原始朋克” + “精致流行制作” | 制作风格冲突 |
### 过于笼统(太模糊)
| 弱 | 强 |
| --- | --- |
| “带吉他的悲伤歌曲” | “忧郁的独立民谣,指弹原声吉他,男声,亲密,85 BPM” |
| “快乐的音乐” | “欢快的流行乐,明亮女声,合成器和钢琴,120 BPM,适合电台播放” |
| “摇滚歌曲” | “独立摇滚,史诗般,失真电吉他,强劲鼓点,充满激情的歌声,140 BPM” |
| “电子音乐” | “Progressive House,令人兴奋,128 BPM,合成器铺底,强劲贝斯线” |
---
## 提示词优化清单
在审查提示词时,请检查:
1. 是否指定了流派?(例如,“独立民谣”而不仅仅是“民谣”)
2. 是否包含情绪/情感?(至少一个描述符)
3. 是否指明了具体乐器?(而不仅仅是“音乐”)
4. 是否指明了速度或能量水平?(BPM 或描述符)
5. 是否描述了演唱风格?(如果歌曲有人声)
6. 是否在 2000 字符以内?
7. 是否有需要重写的否定句?
8. 是否有冲突的风格组合?
FILE:references/error-codes.md
# Minimax API 错误参考
## 错误代码表
| Code | Name | Cause | Fix |
| --- | --- | --- | --- |
| `0` | Success | 请求完成 | 无需操作 |
| `1002` | Rate Limited | 每分钟请求过多 | 等待 10-30 秒,并使用指数退避重试 |
| `1004` | Auth Failed | API 密钥无效、过期或缺失 | 在 platform.minimax.io 验证密钥,检查是否有空格,如果过期则重新生成 |
| `1008` | Insufficient Balance | 账户积分不足 | 在 platform.minimax.io > Billing 充值 |
| `1026` | Content Flagged | 歌词或提示词触发了内容审核 | 修改歌词/提示词,移除敏感、暴力或露骨内容 |
| `2013` | Invalid Parameters | 请求体类型错误或值超出范围 | 根据 API 模式验证所有参数 |
| `2049` | Invalid API Key Format | API 密钥字符串格式错误 | 检查是否有尾随换行符、多余空格或复制粘贴错误 |
## 故障排除决策树
```
收到错误响应?
│
├─ 检查 base_resp.status_code
│
├─ 1002 (速率限制)
│ ├─ 您是否发送了大量请求?→ 在调用之间增加延迟
│ ├─ 只有一个请求?→ 您的套餐的每分钟请求数(RPM)可能非常低(Starter = 10 RPM)
│ └─ 操作:等待,使用指数退避重试(10秒,20秒,40秒)
│
├─ 1004 (认证失败)
│ ├─ API 密钥是否已设置?→ 检查 Authorization 请求头格式
│ ├─ 是 Coding Plan 密钥吗?→ 音乐功能需要按量付费密钥
│ ├─ 密钥是否已过期?→ 在 platform.minimax.io 重新生成
│ └─ 操作:验证 "Authorization: Bearer <key>",确保没有多余的空格
│
├─ 1008 (余额不足)
│ ├─ 在 platform.minimax.io 检查信用余额
│ └─ 操作:充值,或升级到更高套餐
│
├─ 1026 (内容被标记)
│ ├─ 检查歌词中是否有敏感词或主题
│ ├─ 检查提示词中是否有露骨内容
│ └─ 操作:修改并重新提交;审核政策未公开文档化
│
├─ 2013 (无效参数)
│ ├─ 模型是否设置为 "music-2.5"?(而不是 "music-01" 或其他)
│ ├─ 歌词是否在 1-3500 字符之间?
│ ├─ 提示词是否在 2000 字符以下?
│ ├─ 采样率是否为以下之一:16000, 24000, 32000, 44100?
│ ├─ 比特率是否为以下之一:32000, 64000, 128000, 256000?
│ ├─ 格式是否为以下之一:"mp3", "wav", "pcm"?
│ ├─ 输出格式是否为以下之一:"hex", "url"?
│ └─ 操作:修复无效参数并重试
│
├─ 2049 (API 密钥格式无效)
│ ├─ 密钥是否有尾随的换行符或空格?
│ ├─ 是否从仪表板正确复制?
│ └─ 操作:重新复制密钥,去除空格
│
└─ data.status === 1 (不是错误!)
└─ 生成仍在进行中。请再次轮询或等待完成。
```
## 常见参数错误
| 错误 | 问题 | 修复 |
| --- | --- | --- |
| `"model": "music-01"` | 原生 API 的模型错误 | 使用 `"music-2.5"` |
| `"lyrics": ""` | 歌词字符串为空 | 歌词必须是 1-3500 个字符 |
| `"sample_rate": 48000` | 无效采样率 | 使用 16000, 24000, 32000, 或 44100 |
| `"bitrate": 320000` | 无效比特率 | 使用 32000, 64000, 128000, 或 256000 |
| `"format": "flac"` | 不支持的格式 | 使用 "mp3", "wav", 或 "pcm" |
| `"stream": true` + `"output_format": "url"` | 流式传输只支持 hex | 将 `output_format` 设置为 `"hex"` 或禁用流式传输 |
| 缺少 `Content-Type` 头 | 服务器无法解析 JSON | 添加 `Content-Type: application/json` |
| 密钥带有尾随 `\n` | 认证静默失败 | 修剪密钥字符串 |
| 提示词超过 2000 字符 | 被 API 拒绝 | 缩短提示词 |
| 歌词超过 3500 字符 | 被 API 拒绝 | 缩短歌词或移除结构标签 |
## HTTP 状态码
| HTTP 状态 | 含义 | 操作 |
| --- | --- | --- |
| `200` | 请求已处理 | 检查 `base_resp.status_code` 获取 API 级别错误 |
| `401` | 未授权 | API 密钥缺失或无效 |
| `429` | 请求过多 | 达到速率限制 — 退避并重试 |
| `500` | 服务器错误 | 短暂延迟后重试 |
| `503` | 服务不可用 | Minimax 服务器过载 — 稍后重试 |
FILE:examples/code-examples.md
# 代码示例
所有示例都通过环境变量从 `.env` 文件加载 API 密钥。
---
## Python: 音乐生成 (URL 输出)
```python
import os
import requests
from dotenv import load_dotenv
load_dotenv()
API_KEY = os.getenv("MINIMAX_API_KEY")
```
```python
def generate_music(prompt, lyrics, output_file="output.mp3"):
response = requests.post(
"https://api.minimax.io/v1/music_generation",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
},
json={
"model": "music-2.5",
"prompt": prompt,
"lyrics": lyrics,
"audio_setting": {
"sample_rate": 44100,
"bitrate": 256000,
"format": "mp3"
},
"output_format": "url"
}
)
response.raise_for_status()
result = response.json()
if result["base_resp"]["status_code"] != 0:
raise Exception(f"API error {result['base_resp']['status_code']}: {result['base_resp']['status_msg']}")
audio_url = result["data"]["audio"]
duration = result["extra_info"]["music_duration"]
print(f"生成了 {duration:.1f} 秒的音乐")
audio_data = requests.get(audio_url)
with open(output_file, "wb") as f:
f.write(audio_data.content)
print(f"已保存到 {output_file}")
return result
# 用法
generate_music(
prompt="独立民谣,忧郁,原声吉他,柔和钢琴,女声",
lyrics="""[Intro]
[Verse]
漫步在秋叶中
无人知晓我曾去向何方
[Chorus]
每条路都通向你
每首歌都真切响起
[Outro]
""",
output_file="my_song.mp3"
)
```
---
## Python: 音乐生成 (Hex 输出)
```python
import os
import binascii
import requests
from dotenv import load_dotenv
load_dotenv()
API_KEY = os.getenv("MINIMAX_API_KEY")
```
```python
def generate_music_hex(prompt, lyrics, output_file="output.mp3"):
response = requests.post(
"https://api.minimax.io/v1/music_generation",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
},
json={
"model": "music-2.5",
"prompt": prompt,
"lyrics": lyrics,
"audio_setting": {
"sample_rate": 44100,
"bitrate": 256000,
"format": "mp3"
},
"output_format": "hex"
}
)
response.raise_for_status()
result = response.json()
if result["base_resp"]["status_code"] != 0:
raise Exception(f"API 错误: {result['base_resp']['status_msg']}")
audio_bytes = binascii.unhexlify(result["data"]["audio"])
with open(output_file, "wb") as f:
f.write(audio_bytes)
print(f"已保存 {len(audio_bytes)} 字节到 {output_file}")
```
---
## Python: 两步工作流(歌词然后音乐)
```python
import os
import requests
from dotenv import load_dotenv
load_dotenv()
API_KEY = os.getenv("MINIMAX_API_KEY")
BASE_URL = "https://api.minimax.io/v1"
HEADERS = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
def generate_lyrics(theme):
"""步骤 1: 从主题生成结构化歌词。"""
response = requests.post(
f"{BASE_URL}/lyrics_generation",
headers=HEADERS,
json={
"mode": "write_full_song",
"prompt": theme
}
)
response.raise_for_status()
data = response.json()
if data["base_resp"]["status_code"] != 0:
raise Exception(f"歌词错误: {data['base_resp']['status_msg']}")
return data
```
```python
def generate_music(style_prompt, lyrics, output_file="song.mp3"):
"""步骤2:根据歌词和风格提示词生成音乐。"""
response = requests.post(
f"{BASE_URL}/music_generation",
headers=HEADERS,
json={
"model": "music-2.5",
"prompt": style_prompt,
"lyrics": lyrics,
"audio_setting": {
"sample_rate": 44100,
"bitrate": 256000,
"format": "mp3"
},
"output_format": "url"
}
)
response.raise_for_status()
result = response.json()
if result["base_resp"]["status_code"] != 0:
raise Exception(f"音乐错误: {result['base_resp']['status_msg']}")
audio_data = requests.get(result["data"]["audio"])
with open(output_file, "wb") as f:
f.write(audio_data.content)
print(f"已保存到 {output_file} ({result['extra_info']['music_duration']:.1f}s)")
return result
# 完整工作流
theme = "一首关于雨夜和逝去爱情的深情布鲁斯歌曲"
style = "深情布鲁斯,雨夜,忧郁,男声,慢速,电吉他,低音提琴"
print("步骤1:生成歌词...")
lyrics_data = generate_lyrics(theme)
print(f"标题: {lyrics_data['song_title']}")
print(f"风格: {lyrics_data['style_tags']}")
print(f"歌词:\n{lyrics_data['lyrics']}\n")
print("步骤2:生成音乐...")
generate_music(style, lyrics_data["lyrics"], "blues_song.mp3")
```
---
## Python: 流式响应
```python
import os
import json
import binascii
import requests
from dotenv import load_dotenv
load_dotenv()
API_KEY = os.getenv("MINIMAX_API_KEY")
```
```python
def generate_music_streaming(prompt, lyrics, output_file="stream_output.mp3"):
response = requests.post(
"https://api.minimax.io/v1/music_generation",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
},
json={
"model": "music-2.5",
"prompt": prompt,
"lyrics": lyrics,
"audio_setting": {
"sample_rate": 44100,
"bitrate": 256000,
"format": "mp3"
},
"output_format": "hex",
"stream": True
},
stream=True
)
response.raise_for_status()
chunks = []
for line in response.iter_lines():
if not line:
continue
line_str = line.decode("utf-8")
if not line_str.startswith("data:"):
continue
data = json.loads(line_str[5:].strip())
if data.get("base_resp", {}).get("status_code", 0) != 0:
raise Exception(f"Stream error: {data['base_resp']['status_msg']}")
if data.get("data", {}).get("status") == 1 and data["data"].get("audio"):
chunks.append(binascii.unhexlify(data["data"]["audio"]))
audio_bytes = b"".join(chunks)
with open(output_file, "wb") as f:
f.write(audio_bytes)
print(f"流式传输完成:{len(audio_bytes)} 字节已保存到 {output_file}")
```
---
## JavaScript / Node.js: 音乐生成 (URL 输出)
```javascript
import "dotenv/config";
import { writeFile } from "fs/promises";
const API_KEY = process.env.MINIMAX_API_KEY;
```
```javascript
async function generateMusic(prompt, lyrics, outputPath = "output.mp3") {
const response = await fetch("https://api.minimax.io/v1/music_generation", {
method: "POST",
headers: {
Authorization: `Bearer ${API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "music-2.5",
prompt,
lyrics,
audio_setting: { sample_rate: 44100, bitrate: 256000, format: "mp3" },
output_format: "url",
}),
});
const result = await response.json();
if (result.base_resp?.status_code !== 0) {
throw new Error(`API Error ${result.base_resp?.status_code}: ${result.base_resp?.status_msg}`);
}
const audioUrl = result.data.audio;
const audioResponse = await fetch(audioUrl);
const audioBuffer = Buffer.from(await audioResponse.arrayBuffer());
await writeFile(outputPath, audioBuffer);
console.log(`Saved to ${outputPath} (${result.extra_info.music_duration.toFixed(1)}s)`);
return result;
}
// 用法
await generateMusic(
"流行、欢快、充满活力、女声、合成器、强劲的节拍",
`[主歌]
穿梭于城市灯火中
万物皆璀璨夺目
[副歌]
今夜我们活力四射
在霓虹灯下翩翩起舞`,
"pop_song.mp3"
);
```
---
## JavaScript / Node.js: 十六进制输出与解码
```javascript
import "dotenv/config";
import { writeFile } from "fs/promises";
const API_KEY = process.env.MINIMAX_API_KEY;
```
async function generateMusicHex(prompt, lyrics, outputPath = "output.mp3") {
const response = await fetch("https://api.minimax.io/v1/music_generation", {
method: "POST",
headers: {
Authorization: `Bearer ${API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "music-2.5",
prompt,
lyrics,
audio_setting: { sample_rate: 44100, bitrate: 256000, format: "mp3" },
output_format: "hex",
}),
});
const result = await response.json();
if (result.base_resp?.status_code !== 0) {
throw new Error(`API Error: ${result.base_resp?.status_msg}`);
}
const audioBuffer = Buffer.from(result.data.audio, "hex");
await writeFile(outputPath, audioBuffer);
console.log(`Saved ${audioBuffer.length} bytes to ${outputPath}`);
}
```
---
## JavaScript / Node.js: 流式传输
```javascript
import "dotenv/config";
import { writeFile } from "fs/promises";
const API_KEY = process.env.MINIMAX_API_KEY;
async function generateMusicStreaming(prompt, lyrics, outputPath = "stream_output.mp3") {
const response = await fetch("https://api.minimax.io/v1/music_generation", {
method: "POST",
headers: {
Authorization: `Bearer ${API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "music-2.5",
prompt,
lyrics,
audio_setting: { sample_rate: 44100, bitrate: 256000, format: "mp3" },
output_format: "hex",
stream: true,
}),
});
const chunks = [];
const decoder = new TextDecoder();
const reader = response.body.getReader();
let buffer = "";
while (true) {
const { done, value } = await reader.read();
if (done) break;
buffer += decoder.decode(value, { stream: true });
let boundary;
while ((boundary = buffer.indexOf("\n\n")) !== -1) {
const event = buffer.slice(0, boundary).trim();
buffer = buffer.slice(boundary + 2);
if (!event) continue;
const dataMatch = event.match(/^data:\s*(.+)$/m);
if (!dataMatch) continue;
const parsed = JSON.parse(dataMatch[1]);
if (parsed.base_resp?.status_code !== 0) {
throw new Error(`Stream error: ${parsed.base_resp?.status_msg}`);
}
if (parsed.data?.status === 1 && parsed.data?.audio) {
chunks.push(Buffer.from(parsed.data.audio, "hex"));
}
}
}
const fullAudio = Buffer.concat(chunks);
await writeFile(outputPath, fullAudio);
console.log(`Streaming complete: ${fullAudio.length} bytes saved to ${outputPath}`);
}
```
---
## cURL: 音乐生成
```bash
curl -X POST "https://api.minimax.io/v1/music_generation" \
-H "Authorization: Bearer $MINIMAX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "music-2.5",
"prompt": "独立民谣,忧郁,原声吉他,柔和钢琴",
"lyrics": "[Verse]\n走过秋叶\n无人知我曾去何方\n\n[Chorus]\n条条大路通向你\n耳畔每首歌都真切",
"audio_setting": {
"sample_rate": 44100,
"bitrate": 256000,
"format": "mp3"
},
"output_format": "url"
}'
```
---
## cURL: 歌词生成
```bash
curl -X POST "https://api.minimax.io/v1/lyrics_generation" \
-H "Authorization: Bearer $MINIMAX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mode": "write_full_song",
"prompt": "一首关于雨夜和失落爱情的深情布鲁斯歌曲"
}'
```
---
## 音频质量预设
### Python 字典预设
```python
QUALITY_LOW = {"sample_rate": 16000, "bitrate": 64000, "format": "mp3"}
QUALITY_PREVIEW = {"sample_rate": 24000, "bitrate": 128000, "format": "mp3"}
QUALITY_STANDARD = {"sample_rate": 44100, "bitrate": 256000, "format": "mp3"}
QUALITY_PROFESSIONAL = {"sample_rate": 44100, "bitrate": 256000, "format": "wav"}
```
### JavaScript 对象预设
```javascript
const QUALITY_LOW = { sample_rate: 16000, bitrate: 64000, format: "mp3" };
const QUALITY_PREVIEW = { sample_rate: 24000, bitrate: 128000, format: "mp3" };
const QUALITY_STANDARD = { sample_rate: 44100, bitrate: 256000, format: "mp3" };
const QUALITY_PROFESSIONAL = { sample_rate: 44100, bitrate: 256000, format: "wav" };
```
文件:examples/lyrics-templates.md
# 歌词模板
## 歌曲结构模式
常见的编排方式,以标签序列表示:
**标准流行/摇滚:**
`[Intro] → [Verse] → [Pre Chorus] → [Chorus] → [Verse] → [Pre Chorus] → [Chorus] → [Bridge] → [Chorus] → [Outro]`
**民谣:**
`[Intro] → [Verse] → [Verse] → [Chorus] → [Verse] → [Chorus] → [Bridge] → [Chorus] → [Outro]`
**电子/舞曲:**
`[Intro] → [Build Up] → [Chorus] → [Break] → [Verse] → [Build Up] → [Chorus] → [Outro]`
**简单/短小:**
`[Verse] → [Chorus] → [Verse] → [Chorus] → [Outro]`
**前卫/史诗:**
`[Intro] → [Verse] → [Pre Chorus] → [Chorus] → [Interlude] → [Verse] → [Pre Chorus] → [Chorus] → [Bridge] → [Solo] → [Build Up] → [Chorus] → [Outro]`
---
## 流行歌曲模板
```
[Intro]
[Verse]
晨光透过我的窗户
又一天我尝试重新开始
咖啡凉了,寂静充满房间
但有什么告诉我改变即将到来
[Pre Chorus]
今晚我能感觉到空气中的变化
有什么在移动,将我拉向光明
[Chorus]
我正在冲破我筑起的围墙
放下所有的愧疚
我走的每一步都属于我自己
我终于感觉很好
我正在冲破
[Verse]
照片在架子上渐渐褪色
我正在学习如何做我自己
不再躲藏在重压之下
那些我曾以为会让我变得伟大的东西
[Pre Chorus]
今晚我能感觉到空气中的变化
有什么东西正在转变,将我拉向光明
[Chorus]
我正在冲破我筑起的围墙
放下所有的愧疚
我走的每一步都属于我自己
我终于感觉很好
我正在冲破
[Bridge]
花了这么长时间才明白
唯一阻碍我的人就是我自己
[Chorus]
我正在冲破我筑起的围墙
放下所有的愧疚
我走的每一步都属于我自己
我终于感觉很好
我正在冲破
[Outro]
```
---
## 摇滚歌曲模板
```
[Intro]
[Verse]
引擎在空旷的高速公路上轰鸣
车灯划破黑暗
逃离我曾经的生活
追逐远方的火花
[Verse]
收音机播放着我们破碎的圣歌
车窗摇下,放手一搏
每一英里都将一切抛在身后
每一个路标都说不要回头
[Pre Chorus]
今晚我们焚烧一切
今晚我们或生或死
[Chorus]
我们是鲁莽的心
撕裂世界
没有什么能阻止这内心的火焰
我们是鲁莽的心
[Inst]
[Verse]
街灯像警告一样闪烁
但我已走得太远,无暇顾及
从不知名的地方走了很长的路
发现自己已经身处其中
[Pre Chorus]
今晚我们焚烧一切
今晚我们或生或死
[Chorus]
我们是鲁莽的心
撕裂世界
没有什么能阻止这内心的火焰
我们是鲁莽的心
[Bridge]
他们说我们永远不会成功
说我们会坠毁燃烧
但看看我们依然屹立不倒
每一道伤疤都是吸取的教训
[Solo]
[Build Up]
我们是 我们是 我们是
[Chorus]
我们是鲁莽的心
把世界撕裂
没有什么能阻止这内心的火焰
我们是鲁莽的心
[Outro]
```
---
## 谣曲模板
```
[Intro]
[Verse]
冬天的树木光秃而寂静
雪花轻轻飘落在山丘上
我记得你曾牵着我的手
走过我们曾经规划的小径
[Verse]
你的笑声回荡在这些大厅里
你的名字写在这些墙壁上
时间带走了我们曾经拥有的一切
但回忆依然让我感到欣慰
[Chorus]
我会带着你
穿过风暴,穿过大海
即使世界变得黑暗
你是我心中的余烬
我会带着你
[Verse]
季节更迭,但我依然
站在这里,经历风雨
夜晚我看到的每一颗星星
都让我想起你温柔的光芒
[Chorus]
我会带着你
穿过风暴,穿过大海
即使世界变得黑暗
你是我心中的余烬
我会带着你
[Bridge]
如果岁月冲刷掉
我所有想说的话
请知道爱永远是真实的
每一个瞬间都通向你
[Chorus]
我会带着你
穿过风暴,穿过大海
即使世界变得黑暗
你是我心中的余烬
我会带着你
[Outro]
```
---
## 嘻哈/R&B 模板
```
[Intro]
[Verse]
城市灯光倒映在雨中
又是一个深夜,在痛苦中奋斗
从底层带着梦想开始
没有什么事情是看起来那么容易的
妈妈说要昂首挺胸
即使暴风雨密布天空
现在我高高站立在喧嚣之上
找到了我的声音,做出了选择
[Hook]
我们不停歇,我们继续前进
每天我们都在证明
奋斗不会停止
我们不断努力,不断拼搏
```
[主歌]
看看我们所建立的一切
从灰烬中崛起,不再有罪恶感
每道伤疤都是我拥有的故事
奋斗的种子终于生根发芽
深夜清晨周而复始
每一次挫折都让胜利更甜蜜
现在他们看到了清晰的愿景
我们为此努力了多年
[副歌]
我们不停歇,持续前进
每天我们都在证明
努力不会停止
我们持续推动,持续奋斗
[桥段]
从底层到顶峰
我们不知道如何停止
[副歌]
我们不停歇,持续前进
每天我们都在证明
努力不会停止
我们持续推动,持续奋斗
[尾声]
```
---
## 电子/舞曲模板
```
[引子]
[铺垫]
感受地板下的脉动
你能听到它渴望更多吗
[副歌]
迷失在霓虹灯中
今夜我们活生生
让音乐掌控一切
感受你灵魂中的节奏
今夜我们活生生
[间歇]
[主歌]
陌生人并肩起舞
此刻无所隐藏
每一次心跳都同步
迷失在节奏中,迷失在韵律中
[铺垫]
感受地板下的脉动
你能听到它渴望更多吗
更大声,更大声
[副歌]
迷失在霓虹灯中
今夜我们活生生
让音乐掌控一切
感受你灵魂中的节奏
今夜我们活生生
[器乐]
[铺垫]
再来一次
[副歌]
迷失在霓虹灯中
今夜我们活生生
让音乐掌控一切
感受你灵魂中的节奏
今夜我们活生生
[尾声]
```
---
## 民谣/原声模板
```
[引子]
[主歌]
在柳树倾斜的河边
我在秋天的绿意中发现了一封信
文字如水般轻柔流淌
讲述着很久以前的故事
```
[主歌]
我的祖父曾走过这些路
在战火纷飞的世界里背负重担
但他从未失去温柔
他的善良至今仍在我心中
[副歌]
这些老路记得一切
每一个脚步,我们唱的每一首歌
穿过山谷和山间空气
爱无处不在
这些老路记得
[主歌]
如今,季节将山丘染成金色
故事让年轻人不再感到寒冷
每一次日落都带来无声的祈祷
为了那些已不在的人
[副歌]
这些老路记得一切
每一个脚步,我们唱的每一首歌
穿过山谷和山间空气
爱无处不在
这些老路记得
[桥段]
所以我将继续走得更远
经过远山上那座小教堂
我将聆听那里的回声
在傍晚的空气中轻轻飘荡
[副歌]
这些老路记得一切
每一个脚步,我们唱的每一首歌
穿过山谷和山间空气
爱无处不在
这些老路记得
[尾声]
```
---
## 爵士乐模板
```
[引子]
[主歌]
烟雾在琥珀色的灯光中缓缓升腾
钢琴在天鹅绒般的夜晚低语
我手中握着一杯金色的饮品
鼓手用刷子轻拂着小军鼓
[主歌]
她走进来,就像我曾熟悉的一首歌
一首多年前的旋律
她的笑容能融化玻璃上的冬霜
有些时刻注定不会永远持续
[副歌]
但我们跳舞直到天明
两个陌生人玩着一场无名的游戏
萨克斯风低声哭泣
我们俩都不想离开
[独奏]
[主歌]
城市沉睡,我们却清醒着
为了彼此分享秘密
明天我们又将是陌生人
但今晚我们不仅仅是老朋友
[副歌]
我们跳舞直到天明
两个陌生人玩着一场无名游戏
萨克斯风低声呜咽
我们俩都不想离去
[尾声]
```
---
## 纯器乐模板
### 电影配乐式器乐
```
[引子]
[器乐]
(柔和的钢琴,渐强的弦乐)
[渐强]
(管弦乐团全面爆发)
[器乐]
(凯旋的铜管和打击乐)
[间奏]
(轻柔的木管乐器,沉思的)
[渐强]
(定音鼓滚奏,紧张感上升)
[器乐]
(交响乐高潮)
[尾声]
(弦乐渐弱,平静的结局)
```
### 吉他独奏展示
```
[引子]
[器乐]
(节奏吉他和贝斯律动)
[独奏]
(主音吉他旋律)
[器乐]
(乐队整体律动)
[独奏]
(延长吉他独奏,强度渐增)
[间歇]
[独奏]
(最终吉他独奏,情感高潮)
[尾声]
```
### 环境/氛围音乐
```
[引子]
[器乐]
(空灵的合成器铺底,缓慢演变)
[过渡]
[器乐]
(分层音色,微妙的打击乐)
[间奏]
(极简,开阔)
[渐强]
(逐渐增强)
[器乐]
(完整的氛围音景)
[尾声]
(慢慢消散于寂静)
```