文件

TTS_多國語言語音合成-Sync v3:

TTS Speeches v3

提供文字轉語音,讓您將多國文本藉由 REST API 轉換為合成語音,並且支援自然的的聲調與特定語言,接下來說明如何用 http request 來取得文字轉語音服務。

您可以在這個 Demo 測試網站輸入金鑰進行測試:https://taiwanailabs-yating.github.io/asr-streaming-js-demo/

Host: https://tts.api.yating.tw


送出語音合成需求

在處理完所有輸入後,一般情況下,回應時間低於 120 秒。

Request

URL: /v3/speeches/synchronize
Method: POST

Header

Name Type Info
*key String
*Content-Type String Only “application/json”

Body

Name Type Info
*input JSON 1. text: 要生成音頻的文本。 如果是一般文字內容,最大文本長度為 600 個字符。如果是 ssml,則對大長度為 5000 個字符。請注意,一個中文字用 2 個字符計算,全形符號兩個字符,半形符號與空格一個字符。
2. type: 請放入 text 或是 ssml.
*voice JSON 有關聲音的設定請看「voice 設定」
*audioConfig JSON 有關產出的聲音格式請看「audioConfig 設定」

Input設定

Variables Type Info
*text String 需要轉換成聲音的文字內容
*type String 輸入內容的格式,目前支援text與ssml
輸入的本文可以是純文字或是SSML(如果你想要語音內容多一點變化與彈性)。
有關 SSML 支援的功能,請看這裡

Voice設定

Variables Type Info
*model String 系統支援的語者模型,放入指定的聲音模型,除支援以下模型外,可帶入由 /cloning/speaker 取得的 speaker id 如下方表格 speaker_id from /cloning/speaker
*lang string 語言列表
英文(en_us)
日文 (ja_jp)
法文 (fr_fr)
德文 (de_de)
韓文 (ko_kr)
波蘭文 (pl_pl)
葡萄牙文 (pt_br)
俄文 (ru_ru)
西班牙文 (es_es)
印尼文(id_id)
瑞典文(sv_se)
泰文(th_th)
土耳其文(tr_tr)
越南文(vi_vn)
匈牙利文 (hu_hu)
義大利文 (it_it)
中文 (zh_tw)

Model列表

YATING female_1
YIRU female_2
JARVIS male_1
BARRET male_2

AudioConfig設定

Variables Type Info
encoding string 查看「音訊編碼」
maxLength int 音檔最長長度(ms),文字產生之音檔超過最長長度時,將會縮短壓縮至指定長度。
uploadFile boolean false 直接回覆音訊編碼; true 回覆音檔連結,僅保留 24小時。

AudioConfig 中的 Encoding 音訊編碼設定

除了聲音類型,還可以選擇音頻輸出格式。 目前支持 MP3 和 LINEAR16。

Codec Name Note
LINEAR16 Linear PCM WAV音檔編碼格式。16 位線性脈衝編碼調製 (PCM) 編碼。 標頭必須包含採樣率。
MP3 MP3(即將支援) MP3 格式(即將支援)

Request Body Example

{
    "input": {
        "text": "天下國際週報",
        "type": "text"
    },
    "voice": {
        "model": "female_1",
        "lang": "zh_tw"
    },
    "audioConfig": {
        "encoding": "LINEAR16",
        "maxLength": 600000,
        "uploadFile": false
    }
}

Success Response Body Example("uploadFile": true)

{
    "uid": "484bb379-9c8e-4a37-99dd-4906852edff3",
    "inputText": "天下國際週報",
    "inputType": "text",
    "voiceModel": "female_1",
    "voiceLang": "zh_tw",
    "audioEncoding": "LINEAR16",
    "audioMaxLength": 600000,
    "status": "completed",
    "audioFile": {
        "fileName": "c81405ae-4d93-400a-8093-531cf4913b8f_speed_up.wav",
        "fileHash": "99757fc4f19ae1767b24b254588aa5e79de82b67",
        "url": "https://tts.api.yating.tw/tts-files/tts-public/tts-audio/c81405ae-4d93-400a-8093-531cf4913b8f_speed_up.wav?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=minioadmin%2F20240513%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240513T095629Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=44b0b9df46dd7077393904afdcbdbb91807805bdecef9295d413c3a6f43fc824",
        "expiredAt": "",
        "errorMessage": ""
    }
}

Success Response Body Example("uploadFile": false)

{
    "uid": "484bb379-9c8e-4a37-99dd-4906852edff3",
    "inputText": "天下國際週報",
    "inputType": "text",
    "voiceModel": "female_1",
    "voiceLang": "zh_tw",
    "audioEncoding": "LINEAR16",
    "audioMaxLength": 600000,
    "status": "completed",
    "audioFile": {
        "fileName": "48bc2337-0b42-461c-8424-802f5c6ca853_speed_up.wav",
        "fileHash": "58a26459a8f3dfe5f8d166b7efa064194e29dae9",
        "url": "",
        "expiredAt": "",
        "errorMessage": "",
        "audioContent": "UklGRjZ5AQBXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAATElTVBoAAABJTkZPSVNGVA4AAABMYXZmNTguNzYuMTAwAGRhdGHweAEAAQAAAAIABgAIAA0AEgASAAkA/v/x//L//f8HAAgA/...."
    }
}

Failure Response Body Example

{
  statusCode: 400,
  message: string[],
  error: "Bad Request"
}
  • [201] created, 可以在audioContent 裡取得 base64 加密後的音檔內容,解密後存入檔案內即可播放。
  • [400] invalid request format: request 參數不符合規定,如輸入的聲音編碼不存在,sampleRate不支援
  • [401] unauthorized: 密鑰不存在或超出限制。
  • [422] pipeline error: 請查看下表(管道錯誤消息)以獲取更多詳細信息。
  • [500] internal server error

Pipeline Error message

error message type Info
internal pipeline error: unknown payload [for reqId(...) segId(...)] Internal pipeline error
internal pipeline error: inferencer unavailable Internal pipeline error
ssml validation error: no text to synthesis Ssml validation error 輸入一個空的 SSML
ssml validation error: parsing error at line: {line}, column: {col}: {msg} Ssml validation error SSML 文法錯誤
ssml validation error: context error at line: {line}, column: {col}: {msg} Ssml validation error
encoding error: encode error for reqId(...) segId(...) Encoding error 編碼器成功接收並處理消息,但過程中出現錯誤。
vocoding error: vocode error for reqId(...) segId(...) Vocoding error 聲碼器成功接收並處理了 msg,但過程中出現了錯誤。
unknown error Unknown error 未知錯誤
service busy Service busy 系統目前忙碌,請稍後再試。

限制

  • 每個key的最大同時需求處理數:3

More voices

SSB0005 SSB0426 SSB0863 SSB1607 p253 p307
SSB0009 SSB0427 SSB0871 SSB1624 p254 p308
SSB0011 SSB0434 SSB0887 SSB1625 p255 p310
SSB0012 SSB0435 SSB0913 SSB1630 p256 p311
SSB0016 SSB0470 SSB0915 SSB1650 p257 p312
SSB0018 SSB0482 SSB0919 SSB1670 p258 p313
SSB0033 SSB0502 SSB0935 SSB1684 p259 p314
SSB0038 SSB0534 SSB0966 SSB1686 p260 p315
SSB0043 SSB0535 SSB0987 SSB1699 p261 p316
SSB0057 SSB0539 SSB1008 SSB1711 p262 p317
SSB0073 SSB0544 SSB1020 SSB1759 p263 p318
SSB0080 SSB0565 SSB1024 SSB1806 p264 p323
SSB0112 SSB0570 SSB1050 SSB1828 p265 p326
SSB0122 SSB0578 SSB1055 SSB1831 p266 p329
SSB0133 SSB0588 SSB1056 SSB1832 p267 p330
SSB0139 SSB0590 SSB1064 SSB1837 p268 p333
SSB0145 SSB0594 SSB1072 SSB1846 p269 p334
SSB0149 SSB0599 SSB1091 SSB1863 p270 p335
SSB0193 SSB0601 SSB1096 SSB1878 p271 p336
SSB0197 SSB0603 SSB1100 SSB1891 p272 p339
SSB0200 SSB0606 SSB1108 SSB1918 p273 p340
SSB0241 SSB0607 SSB1115 SSB1935 p274 p341
SSB0246 SSB0609 SSB1125 SSB1939 p275 p343
SSB0261 SSB0614 SSB1131 SSB1956 p276 p345
SSB0267 SSB0623 SSB1136 p225 p277 p347
SSB0273 SSB0629 SSB1138 p226 p278 p351
SSB0287 SSB0631 SSB1161 p227 p279 p360
SSB0288 SSB0632 SSB1203 p228 p280 p361
SSB0299 SSB0666 SSB1204 p229 p281 p362
SSB0307 SSB0668 SSB1218 p230 p282 p363
SSB0309 SSB0671 SSB1221 p231 p283 p364
SSB0315 SSB0686 SSB1253 p232 p284 p374
SSB0316 SSB0700 SSB1320 p233 p285 p376
SSB0323 SSB0710 SSB1341 p234 p286 s5
SSB0338 SSB0720 SSB1366 p236 p287 SSB0339
SSB0723 SSB1377 p237 p288 SSB0341 SSB0737
SSB1383 p238 p292 SSB0342 SSB0746 SSB1385
p239 p293 SSB0354 SSB0748 SSB1392 p240
p294 SSB0366 SSB0751 SSB1393 p241 p295
SSB0375 SSB0758 SSB1408 p243 p297 SSB0379
SSB0760 SSB1431 p244 p298 SSB0380 SSB0762
SSB1437 p245 p299 SSB0382 SSB0778 SSB1448
p246 p300 SSB0385 SSB0780 SSB1555 p247
p301 SSB0393 SSB0784 SSB1563 p248 p302
SSB0394 SSB0786 SSB1567 p249 p303 SSB0395
SSB0794 SSB1575 p250 p304 SSB0407 SSB0817
SSB1585 p251 p305 SSB0415 SSB0851 SSB1593
p252 p306