Qwen: Qwen-Audio-3.0-TTS Plus
Qwen-Audio-3.0-TTS-Plus 是 Qwen 的文字轉語音模型,著重細緻、自然且富表現力的音訊,適用於旁白、有聲書及配音。它支援此模型專屬的預設或複製聲音、串流輸出,以及調整說話方式的指令或標籤。
關於模型
此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。
Qwen-Audio-3.0-TTS-Plus 將書面文字轉成富表現力的語音,Plus 版本著重合成品質、自然度及細緻的聲音表達。Qwen 將內容創作、有聲書、電影及影片配音、專業語音製作列為主要應用。更新後的模型資料描述更廣泛的低資源語言及中文方言支援、更自然的方言表現,以及對情緒、語氣、角色、語速、音量和風格的更強控制。開發商也報告在嘈雜或有殘響的聲學條件下,清晰度、解析度及穩健性有所改善。
Plus 是此文字轉語音系列中重視品質的版本;Flash 則另外定位於即時互動。請將旁白準備成口語腳本,明確指出預定聽眾、速度及情緒方向。有聲書段落的示範任務說明可使用清晰咬字、平穩速度及克制的溫暖感;影片旁白則可要求嚴肅開場後接較有活力的解說。這些是所提供文字的表達選擇。模型是語音合成器,不是轉錄服務,也不是完整視覺場景生成器。
Plus 的官方系統聲音包括 Long An Ling Xin,描述為溫暖且富同理心,以及 Long An Lu Feng,描述為明亮開朗。兩者都列為支援普通話及英文。開發商也為此版本提供超過 500 種基礎聲音,附有預覽,可先評估再選擇。為得到較一致的合成效果,開發商建議使用系統聲音。請從確切的 Plus 清單選擇聲音,並讓腳本語言符合該聲音支援的語言;Flash 聲音不會僅因屬於同一較大系列就可互換。
模型支援根據範例複製聲音。文件記載的複製聲音語言包括中文、英文、日文、韓文、俄文、法文、德文、葡萄牙文、泰文、印尼文、越南文、西班牙文、義大利文、馬來文、菲律賓文及阿拉伯文。中文變體包含普通話、粵語、重慶、東北、甘肅、貴州、浙江、河北、河南、湖北、湖南、江西、寧波、寧夏、青島、陝西、山西、山東、上海話、四川及雲南,方言透過指令控制。開發商的模型表區分聲音複製與透過文字描述建立聲音:Plus 支援複製,但不支援另一種聲音設計模式。
合適的複製參考音訊,是以正常速度說出的清晰語音,不含音樂、背景雜音、其他說話者或歌唱。開發商建議 10–20 秒,允許最多 60 秒,檔案不得超過 10 MB。參考格式為 16 位元 WAV、MP3 及 M4A,取樣率至少 16 kHz。至少需要五秒連續清晰語音,其餘停頓應不超過兩秒。立體聲只處理第一聲道。建立的聲音識別碼綁定 Plus,準備完成後用於合成;要透過 Flash 重現同一參考音訊,須另外建立 Flash 聲音。
自然語言指令可調整系統及複製聲音的語氣、速度、情緒和音色。請使用具體、可聽見的描述,而不是模糊要求好聲音。行內情緒標籤可在腳本中設定風格,豐富語言標籤可在選定位置插入發聲效果。例如,[serious] 改變後續表達,[sighing] 插入一聲嘆息,但不改變周圍的情緒風格。控制標籤持續作用,直到下一個控制標籤或自動句子分段。這項標籤功能僅記載適用於單向串流,因此其範圍與雙向文字輸入使用的指令不同。
開發商的輸出選項為 PCM、WAV、MP3 及 Opus,列出的取樣率為 8,000、16,000、22,050、24,000、44,100 及 48,000 Hz。文件記載的預設值為 MP3 及 22,050 Hz。音量可設定為 0 至 100,速度及音高為 0.5 至 2.0;MP3 及 Opus 另可設定 6 至 510 kbps 的位元率。請選擇播放或編輯所需的表示格式,並在較長作品的各段保持相同設定。串流輸出包含音訊影格及句子中繼資料,符合資格的聲音可提供詞語時間戳記,包括複製聲音。
文件記載的 WebSocket 文字輸入流程允許每則訊息 20,000 個字元、累計 200,000 個字元,並要求提交間隔不超過 23 秒。它可以接收完整腳本或依序排列的文字片段,並在輸入完成時結束。開發商也記載了取消目前合成輪次的方法。這些是該協定的限制與行為,不是通用的生成時長上限。長旁白請將腳本整理為連貫章節,並把順序及文字與產生的音訊一併保留,以便一致地組裝及審查作品。
發音方面,開發商提供目標語言提示、拼音註記及文字替換,以處理數字、縮寫、符號或單字的不理想讀法。SSML 是另有資格限制的標記模式:Qwen 文件支援在非串流或單向串流呼叫中,為複製聲音使用 SSML;啟用後只能提交一次文字。這不表示每個系統聲音或雙向串流都支援 SSML。實用的 Plus 流程從相容聲音及完成的腳本開始,再為朗讀段落加入精確的表達及發音選擇。
Ailoot Ultra · 語音合成 POST /v1/audio/speech qwen/qwen-audio-3.0-tts-plus
qwen/qwen-audio-3.0-tts-plus入門
Qwen-Audio-3.0-TTS-Plus 是 Qwen 的文字轉語音模型,著重細緻、自然且富表現力的音訊,適用於旁白、有聲書及配音。它支援此模型專屬的預設或複製聲音、串流輸出,以及調整說話方式的指令或標籤。
- 接受的輸入
- 文字
- 結果
- 音訊
Ailoot 可用 · 輸入與方法
Ailoot Ultra · 語音合成 POST /v1/audio/speech
- 輸入
text- 輸出
audio- 輸出格式
- mp3
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 qwen/qwen-audio-3.0-tts-plus | 預設值— |
欄位input | 類型string | 要求必填 | 值與限制 長度下限: 1 單位: Unicode 字元 | 預設值— |
欄位voice | 類型string | 要求必填 | 值與限制 longanlingxin, longanlufeng | 預設值— |
欄位response_format | 類型string | 要求必填 | 值與限制 mp3 | 預設值— |
輸入素材組合
text_to_speech · 必填: input
方法參數與生命週期
| 參數 | 規格 |
|---|---|
參數content_type | 規格application/json |
參數required | 規格model, input, voice, response_format |
參數voice_ids | 規格longanlingxin, longanlufeng |
參數response_format | 規格mp3 |
參數max_input_characters | 規格null |
參數other_options | 規格false |
參數input | 規格完全相符的 UTF-8 文字;不經正規化的 Unicode 字元計數 |
參數material_types | 規格text |
生命週期: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · 實際回傳的 task_id 或媒體庫紀錄
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
請從此模型設定檔中選擇完全相符的語音。
輸入字元數與音訊秒數是不同的計量方式。
方案
費率資訊不會增加請求選項。支援的參數列於所選方法中。
- 快速模式
- 未指定 選取快速模式時
- flex 模式
- 未指定 選取 flex 模式時
- 最高推理強度
- 未指定 最高推理強度採用 default 調整值時
Ailoot 費率
各設定的價格
請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。
| 設定 | 費率表 | 應計費數量 | 計費單位 | 費用 |
|---|---|---|---|---|
| 設定基礎 token 費率 | 費率表基本費率 | 應計費數量— | 計費單位— | 費用 輸入 · 輸入 Token — / 1K Token 輸出 · 輸出 Token — / 1K Token 輸入 · 讀取快取 — / 1K Token 輸入 · 寫入快取 — / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
| 設定Ultra | 費率表— | 應計費數量每個 Unicode 碼位均計為一個字元,漢字亦同。 | 計費單位每 1K 個輸入字元 | 費用 輸入 · 輸入字元 $0.04 每 1K 個輸入字元 |
參考費率詳情
模型層級的參考費率表不會變更方法選擇、報價或費用。實際計費採用所選 Ailoot 方法的費率。
Qwen: Qwen-Audio-3.0-TTS Plus
各設定的價格
| 設定 | 計費條件 | 費用 |
|---|---|---|
| 設定Qwen: Qwen-Audio-3.0-TTS Plus · 預設設定 | 計費條件預設設定 | 費用 輸入 · 輸入字元數 US$0.00004 每個輸入字元 |
Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →
請求範例
Ailoot Ultra · 語音合成
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}"
export AILOOT_VOICE_ID
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "qwen/qwen-audio-3.0-tts-plus", "input": "Good afternoon! This is a short voice take."}')
voice=os.environ["AILOOT_VOICE_ID"]
allowed=json.loads('["longanlingxin", "longanlufeng"]')
if voice not in allowed: raise SystemExit("Choose an accepted voice ID from this exact model profile")
p["voice"]=voice
p["response_format"]="mp3"
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o speech.mp3
接收並儲存結果
Ailoot Ultra · 語音合成
mp3
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
其他內容讀取方式
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
-H "Authorization: Bearer $AILOOT_API_KEY" -o media-assets.json
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}"
export AILOOT_MEDIA_TASK_ID
resource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_MEDIA_TASK_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/media/tasks/$resource_id" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o media-task.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("media-task.json").read_text())))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}"
export AILOOT_ASSET_ID
resource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_ASSET_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/media/assets/$resource_id" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o media-asset.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("media-asset.json").read_text())))
PY_RESULT
保留所有已完成的結果
請保留所有完整傳回的回應、檔案與內容區塊。
保留完整的二進位結果與標頭。若回傳 JSON 或多個輸出,請保留所有資料項目,並透過每個實際回傳的已簽署資產 URL 取得內容。
需要檢查原始回應時
保留原始 operation_id/X-Client-Request-ID 以供核對,請勿重新提交;沒有專用的音訊輪詢路由。
回應欄位
| 欄位 | 類型 |
|---|---|
欄位binary audio | 類型bytes |
欄位response headers | 類型headers |
錯誤與後續步驟
| 回應 | 條件 | 下一步 |
|---|---|---|
回應400 · invalid_request_error | 條件必要欄位、素材表示方式或參數值無效 | 下一步提出新的建立請求前,先修正指定欄位。 |
回應server_error | 條件回傳的回應表示該作業或結果需要檢查 | 下一步保留原始回傳的作業/任務 ID、請求標頭與回應;繼續以支援的方式讀取該原始作業。請勿重新提交建立請求。 |
別名
模型別名
Ailoot Ultra qwen/qwen-audio-3.0-tts-plus
方法路徑別名
請使用上方列出的 API 方法路徑。
相關呼叫用 ID
FAQ · Qwen: Qwen-Audio-3.0-TTS Plus
- 可以使用哪些輸入與結果?
POST /v1/audio/speech·qwen/qwen-audio-3.0-tts-plus:text→audio- 請求使用哪些欄位?
POST /v1/audio/speech·qwen/qwen-audio-3.0-tts-plus:model,input,voice,response_format