歌曲生成 V1
curl --request POST \
--url https://api.senseaudio.cn/v1/music/song/create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "senseaudio-music-1.0-260319",
"custom_mode": true,
"instrumental": false,
"lyrics": "[verse]\\n海风把旧照片吹到手边...\\n[chorus]\\n潮汐还记得我们告别那天",
"style": "温暖的中文流行乐,原声吉他",
"title": "潮汐记得",
"style_weight": 0.7,
"weirdness_constraint": 0.2
}
'import requests
url = "https://api.senseaudio.cn/v1/music/song/create"
payload = {
"model": "senseaudio-music-1.0-260319",
"custom_mode": True,
"instrumental": False,
"lyrics": "[verse]\n海风把旧照片吹到手边...\n[chorus]\n潮汐还记得我们告别那天",
"style": "温暖的中文流行乐,原声吉他",
"title": "潮汐记得",
"style_weight": 0.7,
"weirdness_constraint": 0.2
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'senseaudio-music-1.0-260319',
custom_mode: true,
instrumental: false,
lyrics: '[verse]\n海风把旧照片吹到手边...\n[chorus]\n潮汐还记得我们告别那天',
style: '温暖的中文流行乐,原声吉他',
title: '潮汐记得',
style_weight: 0.7,
weirdness_constraint: 0.2
})
};
fetch('https://api.senseaudio.cn/v1/music/song/create', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.senseaudio.cn/v1/music/song/create",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'senseaudio-music-1.0-260319',
'custom_mode' => true,
'instrumental' => false,
'lyrics' => '[verse]\\n海风把旧照片吹到手边...\\n[chorus]\\n潮汐还记得我们告别那天',
'style' => '温暖的中文流行乐,原声吉他',
'title' => '潮汐记得',
'style_weight' => 0.7,
'weirdness_constraint' => 0.2
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.senseaudio.cn/v1/music/song/create"
payload := strings.NewReader("{\n \"model\": \"senseaudio-music-1.0-260319\",\n \"custom_mode\": true,\n \"instrumental\": false,\n \"lyrics\": \"[verse]\\\\n海风把旧照片吹到手边...\\\\n[chorus]\\\\n潮汐还记得我们告别那天\",\n \"style\": \"温暖的中文流行乐,原声吉他\",\n \"title\": \"潮汐记得\",\n \"style_weight\": 0.7,\n \"weirdness_constraint\": 0.2\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.senseaudio.cn/v1/music/song/create")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"senseaudio-music-1.0-260319\",\n \"custom_mode\": true,\n \"instrumental\": false,\n \"lyrics\": \"[verse]\\\\n海风把旧照片吹到手边...\\\\n[chorus]\\\\n潮汐还记得我们告别那天\",\n \"style\": \"温暖的中文流行乐,原声吉他\",\n \"title\": \"潮汐记得\",\n \"style_weight\": 0.7,\n \"weirdness_constraint\": 0.2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.senseaudio.cn/v1/music/song/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"senseaudio-music-1.0-260319\",\n \"custom_mode\": true,\n \"instrumental\": false,\n \"lyrics\": \"[verse]\\\\n海风把旧照片吹到手边...\\\\n[chorus]\\\\n潮汐还记得我们告别那天\",\n \"style\": \"温暖的中文流行乐,原声吉他\",\n \"title\": \"潮汐记得\",\n \"style_weight\": 0.7,\n \"weirdness_constraint\": 0.2\n}"
response = http.request(request)
puts response.read_body{
"task_id": "music-task-01JZ8Y6Z5P1KJ8Q7M5W4A3B2C1"
}音乐生成
歌曲生成 V1
使用 Music 1.0 的历史参数创建异步歌曲任务
POST
/
v1
/
music
/
song
/
create
歌曲生成 V1
curl --request POST \
--url https://api.senseaudio.cn/v1/music/song/create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "senseaudio-music-1.0-260319",
"custom_mode": true,
"instrumental": false,
"lyrics": "[verse]\\n海风把旧照片吹到手边...\\n[chorus]\\n潮汐还记得我们告别那天",
"style": "温暖的中文流行乐,原声吉他",
"title": "潮汐记得",
"style_weight": 0.7,
"weirdness_constraint": 0.2
}
'import requests
url = "https://api.senseaudio.cn/v1/music/song/create"
payload = {
"model": "senseaudio-music-1.0-260319",
"custom_mode": True,
"instrumental": False,
"lyrics": "[verse]\n海风把旧照片吹到手边...\n[chorus]\n潮汐还记得我们告别那天",
"style": "温暖的中文流行乐,原声吉他",
"title": "潮汐记得",
"style_weight": 0.7,
"weirdness_constraint": 0.2
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'senseaudio-music-1.0-260319',
custom_mode: true,
instrumental: false,
lyrics: '[verse]\n海风把旧照片吹到手边...\n[chorus]\n潮汐还记得我们告别那天',
style: '温暖的中文流行乐,原声吉他',
title: '潮汐记得',
style_weight: 0.7,
weirdness_constraint: 0.2
})
};
fetch('https://api.senseaudio.cn/v1/music/song/create', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.senseaudio.cn/v1/music/song/create",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'senseaudio-music-1.0-260319',
'custom_mode' => true,
'instrumental' => false,
'lyrics' => '[verse]\\n海风把旧照片吹到手边...\\n[chorus]\\n潮汐还记得我们告别那天',
'style' => '温暖的中文流行乐,原声吉他',
'title' => '潮汐记得',
'style_weight' => 0.7,
'weirdness_constraint' => 0.2
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.senseaudio.cn/v1/music/song/create"
payload := strings.NewReader("{\n \"model\": \"senseaudio-music-1.0-260319\",\n \"custom_mode\": true,\n \"instrumental\": false,\n \"lyrics\": \"[verse]\\\\n海风把旧照片吹到手边...\\\\n[chorus]\\\\n潮汐还记得我们告别那天\",\n \"style\": \"温暖的中文流行乐,原声吉他\",\n \"title\": \"潮汐记得\",\n \"style_weight\": 0.7,\n \"weirdness_constraint\": 0.2\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.senseaudio.cn/v1/music/song/create")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"senseaudio-music-1.0-260319\",\n \"custom_mode\": true,\n \"instrumental\": false,\n \"lyrics\": \"[verse]\\\\n海风把旧照片吹到手边...\\\\n[chorus]\\\\n潮汐还记得我们告别那天\",\n \"style\": \"温暖的中文流行乐,原声吉他\",\n \"title\": \"潮汐记得\",\n \"style_weight\": 0.7,\n \"weirdness_constraint\": 0.2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.senseaudio.cn/v1/music/song/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"senseaudio-music-1.0-260319\",\n \"custom_mode\": true,\n \"instrumental\": false,\n \"lyrics\": \"[verse]\\\\n海风把旧照片吹到手边...\\\\n[chorus]\\\\n潮汐还记得我们告别那天\",\n \"style\": \"温暖的中文流行乐,原声吉他\",\n \"title\": \"潮汐记得\",\n \"style_weight\": 0.7,\n \"weirdness_constraint\": 0.2\n}"
response = http.request(request)
puts response.read_body{
"task_id": "music-task-01JZ8Y6Z5P1KJ8Q7M5W4A3B2C1"
}说明
使用 Music 1.0 的历史参数创建异步歌曲任务。该接口用于保持已有 V1 调用不受 V2 上线影响。历史行为保持不变:
custom_mode=true 时 lyrics 作为自定义歌词;custom_mode=false 时 lyrics 作为自然语言提示词。该路径仅接受 Music 1.0 模型。Music 2.0 请使用 歌曲生成 V2。
歌曲格式
当参数custom_mode 为 false 时,歌词需要按照指定格式输入。歌词由多个歌曲段组成,每个段以结构标签开头。模型通过这些标签引导歌曲结构和歌词发展。
| 标签 | 段落类型 | 是否需要歌词 | 时长参考 | 说明 |
|---|---|---|---|---|
| [intro-short] | 前奏 Intro | ❌ 无歌词 | ~0–10 秒 | 短前奏,纯伴奏引入 |
| [intro-medium] | 前奏 Intro | ❌ 无歌词 | ~10–20 秒 | 中长前奏版本 |
| [inst-short] | 纯伴奏段 | ❌ 无歌词 | ~0–10 秒 | 中间的器乐演奏段 |
| [inst-medium] | 纯伴奏段 | ❌ 无歌词 | ~10–20 秒 | 较长的器乐段 |
| [outro-short] | 尾奏 Outro | ❌ 无歌词 | ~0–10 秒 | 短尾部收束 |
| [outro-medium] | 尾奏 Outro | ❌ 无歌词 | ~10–20 秒 | 中长尾部收束 |
| [verse] | 主歌 Verse | ✅ 需要歌词 | 无固定时长 | 承担叙事内容,应有完整句子 |
| [chorus] | 副歌 Chorus | ✅ 需要歌词 | 无固定时长 | 歌曲主题部分,应朗朗上口 |
| [bridge] | 过渡 Bridge | ✅ 需要歌词 | 无固定时长 | 连接主歌与副歌,增强情绪转换 |
授权
格式:Bearer <API_KEY>
请求体
application/json
已启用的 Music 1.0 模型 label。
可用选项:
senseaudio-music-1.0-260319 自定义歌词或自然语言提示词,具体语义由 custom_mode 决定。
是否使用自定义歌词模式。true 表示歌词,false 表示提示词。
是否生成纯音乐。
目标音乐风格。
歌曲标题。
风格权重。
必填范围:
0 <= x <= 1随机性与怪异度约束。
必填范围:
0 <= x <= 1响应
200 - application/json
成功
异步歌曲生成任务 ID,用于查询任务状态。
⌘I