通义千问
Fun-Music 音乐生成:支持输入创作要求(prompt)或自定义歌词(lyrics),生成整首男/女声演唱的中文或英文歌曲。通过 POST /v1/chat(非流式)或 POST /v1/chat/stream(流式)调用,参数写在 messages 与 extra 中。
核心能力
prompt 自动写词并生成完整歌曲lyrics 谱曲演唱(建议使用结构标签,见下文)male / 女声 female(默认女声)mp3(默认)或 wavlyrics 与 prompt 的区别(必读)
| 参数 | 用途 | extra 字段 |
|---|---|---|
prompt |
描述风格、场景、情绪、乐器等,模型自动创作歌词并生成音乐 | extra.prompt 或 messages 文本 |
lyrics |
传入完整歌词,模型严格按歌词谱曲演唱 | extra.lyrics |
至少填一项,不可同时为空。同时传入时仅 lyrics 生效,prompt 会被忽略。
请求参数(extra)
| 字段 | 说明 |
|---|---|
extra.prompt |
提示词;未传时可用 messages[].content。见下方字数限制表。 |
extra.lyrics |
自定义歌词;支持 [verse] [chorus] 等结构标签。 |
extra.gender |
female(默认)/ male。 |
extra.format |
mp3 适合传输存储;wav 适合后期与高保真播放。 |
extra.enable_aigc_watermark |
默认 false;true 时音频末尾追加 AI 摩尔斯电码标识(会略增时长)。 |
字数限制(流式 / 非流式不同,请注意)
| 模式 | lyrics(中文) | lyrics(英文) | prompt |
|---|---|---|---|
非流式 /v1/chat |
5~350 字 | 5~2000 字符 | 1~2000 字符 |
流式 /v1/chat/stream |
300~350 字 | 200~250 词 | 5~1000 汉字或英文单词 |
调用方式选择
POST /v1/chat):一次返回完整 audios[].url,对接最简单,推荐大多数业务。POST /v1/chat/stream):中间事件含 base64 音频分片,结束事件含完整 URL 与计费时长。歌词结构标签(自定义 lyrics 时推荐)
| 标签 | 说明 |
|---|---|
[intro] | 前奏 |
[verse] | 主歌 |
[chorus] | 副歌 |
[bridge] | 桥段 |
[outro] | 尾奏 |
创作要求:须原创,禁止抄袭;内容健康,仅支持中英文;勿涉政治、暴力、色情等违规内容。
提示词撰写建议(prompt 模式)
尽量写清情绪、场景、乐器,避免过于笼统。推荐「悲伤钢琴曲,雨夜思念」,不推荐仅写「悲伤音乐」。
| 风格 | 示例 prompt |
|---|---|
| 民谣 | 温暖治愈的民谣,木吉他伴奏,午后咖啡馆慵懒时光 |
| 古风 | 古风歌曲,古筝与竹笛,水墨山水意境,江湖离别 |
| 摇滚 | 热血摇滚,电吉他失真,密集鼓点,青春叛逆与自由 |
| 抒情 | 抒情慢歌,钢琴伴奏,淡淡忧伤,思念与回忆 |
| 说唱 | 嘻哈说唱,808 低音鼓,街头活力,城市生活 |
| 儿歌 | 欢快儿童歌曲,木琴手鼓,节奏明快,认识大自然 |
响应与计费
audios[].url 为音频下载地址,有效期 24 小时,请及时保存。raw.output.extra_info.lyrics 可能返回模型生成/使用的歌词文本。raw.usage.duration 为音乐时长(秒),按秒计费,单价见右侧「计费」卡片。常见问题
extra.prompt / extra.lyrics 时,将 messages 中 user 文本作为 prompt。左侧为章节切换,右侧为对应内容。
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
Authorization |
string | 是 | Bearer 令牌,格式为 Bearer {应用ID}-{应用密钥}(仅在第一个 - 处分割,密钥本身可含连字符)。应用 ID 与密钥在会员中心「我的应用」获取。兼容 OpenAI SDK:将 {应用ID}-{应用密钥} 作为 api_key 传入即可自动携带本请求头。 |
对接 HTTP 接口请使用上表 Authorization: Bearer {应用ID}-{应用密钥};兼容 OpenAI SDK(将 {应用ID}-{应用密钥} 作为 api_key)。站内网页另有 Cookie 兼容方式,不在此列出。
非流式与流式使用同一请求体结构;流式请使用 …/v1/chat/stream 路径。
多轮与上下文:接口按当次请求里的 messages 处理对话,不会替你「记住」上一轮正文。续聊须由客户端在 body 中组装完整历史(含此前的 user / assistant 等)。
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
model_id |
int | 是 | 模型主键;本页文档对应 `model_id=20`。 |
messages |
array | 是 | 消息对象数组(见 messages[])。至少一条;多轮时须在数组内按顺序包含完整历史(user/assistant/system 等)。按本次列表处理对话,不自动补全缺省轮次。 |
temperature |
number | 否 | 采样温度,默认 0.7;是否生效取决于具体模型。 |
max_tokens |
int 或 null | 否 | 生成长度上限(token);null 表示使用默认。 |
stream |
bool | 否 | 请求体字段,默认 false。**是否流式由 URL 决定**:流式请 POST `/v1/chat/stream`;`/v1/chat` 为非流式。勿仅靠本字段切换 SSE。 |
attachments |
array | 否 | 附件数组,默认 [](见 attachments[])。服务端会把附件整理为模型可识别的上下文(如追加 system 说明 URL 列表)。 |
extra |
object | 否 | 任意 JSON 对象,默认 {}。模型专有参数放于此(如数字人 image_url/audio_url/parameters;文生图/视频类 prompt、尺寸等)。服务端可能合并内部保留字段;请勿使用以下划线 `_` 开头的键名作为业务自定义字段。 |
数组顺序即对话顺序;多轮时把历史轮次一并列入本数组即可。
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
role |
string | 是 | 角色:如 user、assistant、system 等,与 OpenAI Chat Completions 约定一致。 |
content |
string | 是 | 该轮文本内容。多轮时 assistant 一般为上一轮模型输出,由客户端保存后在后续请求的 messages 中写回。 |
images |
array 或 null | 否 | 历史消息中的多模态图片结构,会话回放用;元素为对象,字段因模型而异。 |
audios |
array 或 null | 否 | 历史消息中的音频结构,会话回放用。 |
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
url |
string | 是 | 附件可访问 URL(须能被服务端拉取)。 |
filename |
string 或 null | 否 | 原始文件名,便于展示或日志。 |
mime |
string 或 null | 否 | MIME 类型,如 image/png。 |
extra |
object | 否 | 附件级扩展信息,默认 {}。 |
**lyrics 与 prompt 二选一**(同时传时仅 `extra.lyrics` 生效)。未写 `extra.prompt` 时可用 **`messages` 文本** 作为 prompt。流式请 **`POST /v1/chat/stream`** 并设 **`stream: true`**。**`extra.gender`** 默认 `female`;**`extra.format`** 默认 `mp3`。计费按响应 **`raw.usage.duration`**(秒)。请求体传 **`model_id: 20`** 即可路由到本模型。
下列说明与下方「调用示例」JSON 对齐,由本站配置维护。
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
model_id |
int | 是 | 须为 `20`。 |
messages[].content |
string | 条件 | 作 prompt 使用(未传 `extra.prompt` / `extra.lyrics` 时)。 |
extra.prompt |
string | 条件 | 提示词,模型自动写词并生成歌曲。 |
extra.lyrics |
string | 条件 | 自定义歌词;与 prompt 二选一,优先于 prompt。 |
extra.gender |
string | 否 | `male` / `female`(默认)。 |
extra.format |
string | 否 | `mp3`(默认)/ `wav`。 |
extra.enable_aigc_watermark |
bool | 否 | 是否在音频末尾追加 AI 标识音,默认 false。 |
stream |
bool | 否 | 流式请用 `POST /v1/chat/stream` 并设 `stream: true`。 |