演講(Speech)生成 API
介面說明
演講(Speech)用於把演講稿或一句話描述生成「說話/演講」音訊,可選是否配背景音樂。 適合演講、致辭、旁白、口播稿、有聲內容等場景。
請注意:本介面生成的是說話音訊,不是演唱歌曲(沒有旋律、沒有歌唱人聲)。 需要唱歌請使用靈感模式生成 API 或專業模式生成 API。
介面位址:POST /api/music/speech
計費:收費,目前預設 0.6 元/次。每次通常回傳 2 條音訊,實際扣費以目前後台價格設定為準。
Max Mode / Variety:本介面支援選用參數 max_mode 與 variety(0-4)。開啟 max_mode
時本次依 2 倍價格計費(0.6 → 1.2 元/次),variety 不額外計費;兩者含義與寫法見
Suno API 介面文件總覽 的「進階參數」一節。
等待時間與逾時(重要):本介面是同步介面,回應返回時才代表訂單已被受理並提交生成。 實測多數請求數秒內返回(1–10 秒);但與其它同步生成介面一樣,極端情況下可能更久, 請把用戶端逾時設定為 300 秒以上; 未收到回應不等於沒有生成,逾時後請勿立即重試(會重複下單、重複扣費)。 連線中斷可稍後用
GET /api/music/songs確認。詳見 Suno API 介面文件總覽的「等待時間與逾時設定」。
內容合規:平台會對演講稿做版權與內容政策校驗。若被判定為涉及版權材料(例如直接引用他人歌詞、知名作品原文),本次會生成失敗並自動全額退費。改用你自己的表述、把引用改成轉述後再試即可。
請求參數
Headers
| 參數名 | 型別 | 必填 | 說明 |
|---|---|---|---|
| Authorization | string | 是 | Bearer YOUR_API_KEY |
| Content-Type | string | 是 | application/json |
Body 參數
| 參數名 | 型別 | 必填 | 預設值 | 說明 |
|---|---|---|---|---|
| script | string | 是 | - | 演講稿全文;最多 3000 字元(超長回傳 400,不扣費) |
| tone | string | 否 | - | 語氣/語速/情緒/場景描述,如「激昂有力,語速由慢到快;學校禮堂」;最多 1000 字元 |
| song_title | string | 否 | - | 標題;最多 100 字元 |
| gender | string | 否 | 不限 | 演講者性別:m、f(相容 male、female);也可用 vocal_gender 傳同一個值 |
| backing_music | boolean | 否 | true |
是否配背景音樂;false 為純人聲演講 |
| model | string | 否 | suno-v6 |
對客模型名:suno-v6、suno-v6-wild 或 suno-v6-mini |
| wait_completion | boolean | 否 | false |
是否等待生成完成後再回傳 |
| max_mode | boolean | 否 | false |
開啟後本次依 2 倍價格計費 |
| variety | integer | 否 | - | 風格變化程度 0-4,見總覽「進階參數」 |
本介面不支援
duration(時長參數):傳了會回傳 HTTP 400,不做靜默忽略。 演講時長由script的內容長度決定。
請求範例
最小請求(只需要演講稿)
curl -X POST https://www.suno-api.io/api/music/speech \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
--max-time 300 \
-d '{
"script": "各位老師、各位同學,大家好!今天我演講的題目是《不負時光,奮力前行》。"
}'
完整請求(指定語氣、性別、關閉背景音樂)
curl -X POST https://www.suno-api.io/api/music/speech \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
--max-time 300 \
-d '{
"script": "Good evening everyone, thank you all for coming to celebrate this special day with us.",
"tone": "warm and slow, wedding reception",
"song_title": "Wedding Toast",
"gender": "f",
"backing_music": false,
"model": "suno-v6"
}'
Python 範例
import requests
response = requests.post(
'https://www.suno-api.io/api/music/speech',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
json={
'script': '各位同事,下午好。下面報告一下本週的進展。',
'tone': '平穩清晰,會議報告',
'gender': 'male',
'backing_music': True,
},
timeout=300,
)
response.raise_for_status()
items = response.json() # 通常 2 條
for item in items:
print(item['song_id'], item['status'])
參數說明
script(演講稿,必填)
- 直接貼上你要講的內容;也支援寫一句描述讓模型自己生成演講稿 (例如「給一支落後二十分的球隊做中場動員,從低聲到全場咆哮」)。
- 換行、段落、
[停頓]之類的舞台提示都可以直接寫進去,模型會盡量遵循。 - 上限 3000 字元(按 Unicode 字元統計,一個漢字算 1 個),超長回傳 400 且不扣費。
tone(語氣與場景,選用)
用來描述「怎麼講」,而不是「講什麼」。建議包含四類資訊:語氣、語速/節奏、情緒、場景。
激昂有力,語速由慢到快,停頓明顯;學校禮堂,面向全校師生
溫暖柔和,語速平緩;婚禮宴會現場
沉穩克制,均速清晰;董事會報告
上限 1000 字元。不填時由模型依 script 的內容自行判斷。
gender / vocal_gender(演講者性別,選用)
- 男聲傳
m或male,女聲傳f或female;伺服器會統一如一化為m/f。 - 兩個欄位名都支援,二選一即可:
gender是本介面的推薦寫法;如果你已經在用 專業模式,直接沿用vocal_gender也可以。 - 不傳表示「不限」,由模型自行決定。
backing_music(背景音樂,選用)
- 預設
true(配背景音樂),與 Suno 網頁版的預設一致。 - 傳
false得到純人聲演講,適合後續自行配音/配樂。 - 必須是 JSON 布林值
true/false;字串"true"、"1"也接受,但建議用布林值。
model(模型,選用)
三個對客模型都可用且同價(0.6 元/次)。演講由 Suno v6 系列引擎生成;不填時依預設
suno-v6 處理。除非你有明確偏好,通常不需要傳這個欄位。
參數驗證與文字上限
以下情況會回傳 HTTP 400,都在扣費之前攔截,不會產生費用:
| 情況 | 錯誤訊息 |
|---|---|
沒有傳 script,或只傳了空白 |
script is required for speech |
gender 不是 m/f/male/female |
gender must be one of m, f, male, female |
backing_music 不是布林值 |
backing_music must be a boolean |
傳了不支援的 duration |
duration is not supported on /api/music/speech |
文字欄位長度上限
超長同樣回傳 HTTP 400,不會進入生成、不會預扣費。計數按 Unicode 字元(一個漢字算 1 個字元),
首尾空白也計入:
| 欄位 | 上限 |
|---|---|
script(演講稿) |
3000 字元 |
tone(語氣描述) |
1000 字元 |
song_title(標題) |
100 字元 |
錯誤訊息形如 script must not exceed 3000 characters; received 4120:
第一個詞是超限的欄位名,末尾是實際字數,拿到 400 直接按這兩個數字裁剪即可。
回應結果
回傳與其它生成介面完全一致的歌曲陣列(通常 2 條),保存 song_id 後依
歌曲查詢與歷史 API 查詢最終狀態與音訊位址:
[
{
"song_id": "b7529174-b495-465b-8c5e-cd21bea2df8c",
"song_title": "不負時光",
"status": "pending",
"audio_url": "",
"cover_url": "",
"video_url": "",
"model_version": "suno-v6",
"generation_type": "generate",
"created_at": "2026-10-08T01:00:00Z"
}
]
| 欄位 | 說明 |
|---|---|
song_id |
曲目 ID,後續查詢/下載都用它 |
status |
pending(已提交、生成中)、processing、completed(已完成)、failed(失敗) |
song_title |
標題(未傳 song_title 時由模型生成,可能為空) |
audio_url |
音訊位址;生成完成前為空,完成後可直接下載或播放 |
生成失敗與退款
生成失敗時,本次費用會自動全額退回,不需要聯絡客服。失敗原因可在回應或
歌曲查詢與歷史 API 的 error_message 裡看到。
最常見的失敗原因是內容被平台判定為涉及版權材料,例如:
Your lyrics contain copyrighted material. Please change it and try again.
遇到這種情況,把稿件換成你自己的表述(或把引用改成轉述)後重新提交即可。
常見問題
Q:為什麼生成出來是「說話」,不是唱歌? A:本介面就是演講介面,輸出為說話音訊。要唱歌請用生成/專業模式介面。
Q:每次為什麼回傳 2 條?
A:與本平台其它生成介面一致,一次生成產出 2 條候選,按 song_id 分別查詢,選滿意的一條即可。
Q:怎麼控制時長?
A:由 script 的長度決定,本介面不接受 duration 參數。
Q:可以指定音色(例如我複製的聲音)嗎?
A:目前版本不支援。演講使用固定的演講音色,可用 gender 指定男聲/女聲;
如需用自己的聲音,請使用複製音色 API(推薦) 的相關能力。
Q:tone 不填會怎樣?
A:模型會依 script 的內容自行判斷語氣與節奏。要穩定重現某個風格,建議把語氣、語速、場景寫進 tone。
相容欄位
| 推薦欄位 | 相容欄位 | 說明 |
|---|---|---|
gender |
vocal_gender |
兩者傳其一即可,m/f/male/female 均可 |
新接入請統一使用 snake_case。其餘欄位(script、tone、song_title、backing_music)沒有 camelCase 別名。
下一步
拿到 song_id 後:
- 用歌曲查詢與歷史 API 查詢生成狀態與音訊位址;
- 完成後用歌曲媒體下載與試聽 API 下載或試聽;
- 想批次下載或轉存,見下載中心相關介面。