Skip to main content
即時語音合成(Qwen-Audio-TTS/CosyVoice)

Qwen-Audio-TTS/CosyVoice用戶端事件

使用者指南:關於模型介紹和選型建議請參見語音合成

run-task

說明:啟動語音合成任務,設定模型、音色、採樣率等參數。 發送時機:建立 WebSocket 串連後立即發送。 響應事件:服務端返回 task-started 事件後才能發送後續指令。
headerobject(必選)

屬性

actionstring(必選)指令類型,固定為 run-tasktask_idstring(必選)用戶端產生的任務 ID(UUID 格式),用於關聯後續事件。和後續 continue-task、finish-task 中的 task_id 保持一致。streamingstring(必選)固定為 duplex
payloadobject(必選)

屬性

task_groupstring(必選)工作群組,固定為 audiotaskstring(必選)任務類型,固定為 ttsfunctionstring(必選)功能類型,固定為 SpeechSynthesizermodelstring(必選)模型名稱。inputobject(必選)輸入資料:固定為空白對象 {},待合成文本通過 continue-task 指令發送。parametersobject(必選)語音合成參數。

屬性

text_typestring(必選)固定為 PlainTextvoicestring(必選)語音合成所使用的音色。formatstring(可選)音頻編碼格式。取值範圍:
  • pcm
  • wav
  • mp3(預設)
  • opus
sample_rateinteger(可選)音頻採樣率(Hz)。取值範圍:8000, 16000, 22050(預設), 24000, 44100, 48000。volumeinteger(可選)音量。預設值:50。取值範圍:[0, 100]。ratefloat(可選)語速。預設值:1.0。取值範圍:[0.5, 2.0]。pitchfloat(可選)音調。預設值:1.0。取值範圍:[0.5, 2.0]。bit_rateinteger(可選)音頻碼率(kbps)。音頻格式為mp3或opus時,支援通過bit_rate參數調整碼率。預設值:32。取值範圍:[6, 510]。enable_ssmlboolean(可選)是否開啟 SSML 功能。預設值:false。設為 true 後,僅允許發送一次 continue-task 指令。SSML 的使用限制(支援的模型、音色和介面),請參見使用限制word_timestamp_enabledboolean(可選)是否開啟字層級時間戳記。預設值:false。僅在流式輸出模式下可用。支援的音色範圍:cosyvoice-v3.5-plus、cosyvoice-v3.5-flash、cosyvoice-v3-flash、cosyvoice-v3-plus和cosyvoice-v2模型的複刻音色,以及Qwen-Audio-TTS音色列表CosyVoice音色列表中標記為支援的系統音色。其他模型的複刻音色不支援此功能。seedinteger(可選)產生時使用的隨機數種子,使合成的效果產生變化。在模型版本、文本、音色及其他參數均相同的前提下,使用相同的seed可複現相同的合成結果。預設值0。取值範圍:[0, 65535]。language_hintsarray[string](可選)
  • 此參數為數組,但目前的版本僅處理第一個元素,因此建議只傳入一個值。
  • 此參數用於指定語音合成的目標語言,該設定與聲音複刻時的樣本音訊語種無關。如需設定複刻任務的源語言,請參見聲音複刻API參考。
指定語音合成的目標語言,提升合成效果。當數字、縮寫、符號等朗讀方式或者小語種合成效果不符合預期時使用,例如:
  • 數字朗讀方式不符合預期,“hello, this is 110”讀成“hello, this is one one zero”而非“hello, this is 么么零”
  • 符號朗讀不準確,“@”讀成“艾特”而非“at”
  • 小語種合成效果差,合成不自然
取值範圍:
  • zh:中文
  • en:英語
  • fr:法語
  • de:德語
  • ja:日語
  • ko:韓語
  • ru:俄語
  • pt:葡萄牙語
  • th:泰語
  • id:印尼語
  • vi:越南語
  • es:西班牙語
  • it:意大利語
  • ms:馬來西亞語
  • fil:菲律賓語
  • ar:阿拉伯語
instructionstring(可選)設定指令,用於控制方言、情感或角色等合成效果。具體使用說明請參見指令控制enable_aigc_tagboolean(可選)是否在產生的音頻中添加AIGC隱性標識。設定為true時,會將隱性標識嵌入到支援格式(wav/mp3/opus)的音頻中。預設值:false。僅qwen-audio-3.0-tts-plus、qwen-audio-3.0-tts-flash、cosyvoice-v3-flash、cosyvoice-v3-plus、cosyvoice-v2支援該功能。aigc_propagatorstring(可選)設定AIGC隱性標識中的 ContentPropagator 欄位,用於標識內容的傳播者。僅在 enable_aigc_tag 為 true 時生效。預設值:阿里雲UID。僅qwen-audio-3.0-tts-plus、qwen-audio-3.0-tts-flash、cosyvoice-v3-flash、cosyvoice-v3-plus、cosyvoice-v2支援該功能。aigc_propagate_idstring(可選)設定AIGC隱性標識中的 PropagateID 欄位,用於唯一標識一次具體的傳播行為。僅在 enable_aigc_tag 為 true 時生效。預設值:本次語音合成請求Request ID。僅qwen-audio-3.0-tts-plus、qwen-audio-3.0-tts-flash、cosyvoice-v3-flash、cosyvoice-v3-plus、cosyvoice-v2支援該功能。hot_fixobject(可選)文本熱修複配置,用於自訂指定詞語的發音或對待合成文本進行替換。qwen-audio-3.0-tts-plus、qwen-audio-3.0-tts-flash、cosyvoice-v2不支援該功能。參數介紹:
  • pronunciation:自訂發音。指定詞語的拼音標註,用於糾正預設發音不準確的情況。
  • replace:文本替換。在語音合成前將指定詞語替換為目標文本,替換後的文本將作為實際合成內容。
樣本:
"hot_fix": {
  "pronunciation": [
    {"天氣": "tian1 qi4"}
  ],
  "replace": [
    {"今天": "金天"}
  ]
}
enable_markdown_filterboolean(可選)
僅cosyvoice-v3-flash複刻音色支援該功能。
是否啟用 Markdown 過濾。啟用該功能後,系統在合成語音前自動過濾輸入文本中的 Markdown 標記符號,避免將其朗讀為文字內容。預設值:false。取值範圍:
  • true:啟用Markdown過濾
  • false:禁用Markdown過濾
{
    "header": {
        "action": "run-task",
        "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
        "streaming": "duplex"
    },
    "payload": {
        "task_group": "audio",
        "task": "tts",
        "function": "SpeechSynthesizer",
        "model": "qwen-audio-3.0-tts-flash",
        "parameters": {
            "text_type": "PlainText",
            "voice": "longanlingxi",
            "format": "mp3",
            "sample_rate": 22050,
            "volume": 50,
            "rate": 1.0,
            "pitch": 1.0,
            "enable_ssml": false
        },
        "input": {}
    }
}

continue-task

說明:用於發送待合成文本。可一次性發送,也可分段按順序發送。 發送時機:在接收到服務端返回的 task-started 事件後。 數量限制
  • 單次調用最多發送 20000 字元
  • 累計最多發送 200000 字元
  • 發送間隔不得超過 23 秒,否則連線逾時
headerobject(必選)

屬性

actionstring(必選)指令類型,固定為 continue-tasktask_idstring(必選)任務 ID(UUID 格式),需要和 run-task 中的 task_id 保持一致。streamingstring(必選)固定為 duplex
payloadobject(必選)

屬性

inputobject(必選)包含待合成文本。textstring(必選)待合成文本。單次最多 20000 字元,累計最多 200000 字元。
{
    "header": {
        "action": "continue-task",
        "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
        "streaming": "duplex"
    },
    "payload": {
        "input": {
            "text": "床前明月光,疑是地上霜"
        }
    }
}

finish-task

說明:通知服務端文本發送完畢,請求結束任務。如需取消當前輪次的語音合成任務,可在 input 中設定 directivecancel 發送時機:所有文本發送完畢後立即發送。 響應事件:服務端返回 task-finished 事件。
headerobject(必選)

屬性

actionstring(必選)指令類型,固定為 finish-tasktask_idstring(必選)任務 ID(UUID 格式),需要和 run-task 中的 task_id 保持一致。streamingstring(必選)固定為 duplex
payloadobject(必選)

屬性

inputobject(必選)任務輸入。為空白對象 {} 時表示正常結束任務;包含 directive 時可用於取消當前輪次的語音合成任務。directivestring(可選)控制任務結束行為。當前僅支援取值為 cancel,表示取消當前輪次的語音合成任務,服務端會立即返回 task-finished 事件,且不會輸出後續音頻。取消後,可在當前 WebSocket 串連上重新發起語音合成任務(發送新的 run-task 事件),無需重建立立串連。
模型限制
  • 華北2(北京)地區:Qwen-Audio-TTS 系列模型的所有模型都支援該功能;CosyVoice 系列模型僅 v2 及以上版本支援該功能。
  • 新加坡地區:Qwen-Audio-TTS 系列模型的所有模型都支援該功能;CosyVoice 系列模型不支援該功能。
{
    "header": {
        "action": "finish-task",
        "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
        "streaming": "duplex"
    },
    "payload": {
        "input": {}
    }
}
取消任務樣本
{
    "header": {
        "action": "finish-task",
        "task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
        "streaming": "duplex"
    },
    "payload": {
        "input": {
            "directive": "cancel"
        }
    }
}