文件

TTS 多人聲音配音

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

藉由文本及參數,讓音檔內的文字對話轉換為其他語言的配音。


發起需求

在處理完所有輸入後,一般情況下,回應時間是音檔長度的一半。

Request

URL: /v3/dubs
Method: POST

Header

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

Body

Name Type Info
*audioUri String 放入音檔連結,並確保聯結是公開的,並且可以被我方下載。
*sentences sentence[ ] 有關每個音檔的內容格式請看「Sentence 設定」
*audioConfig JSON 有關產出的聲音格式請看「audioConfig 設定」

Sentence設定

Variables Type Info
*speakerId String 使用者自訂義的語者名稱,Candy, Cindy …etc.
*modelSpeakerId String 系統支援的語者模型,放入指定的聲音模型,除支援以下模型外,可帶入由
/cloning/speaker 取得的 speaker id
zh_en_chao_ai
speaker_id from /cloning/speaker
若是未設定數值,系統將會將依照
speakerId 跟 modelSpeakerId是一對一關係,一次request中,相同的 speaker Id 需要對應一樣 modelSpeakerId,系統會判斷
是否有重複的 speakerId,並依設定自動帶入其 modelSpeakerId
無任何對應的modelSpeakerId,則由系統自動分群,產生最佳的modelSpeakerId
*sentence 要生成音頻的文本。要生成音頻的文本。
如果是一般文字內容,最大文本長度為 600 個字符。
請注意,一個中文字用 2 個字符計算,全形符號兩個字符,半形符號與空格一個字符。
*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)
*start int 起始時間
單位為ms
*end int 結束時間
單位為ms
*maxLength int 音檔最長長度(ms),文字產生之音檔超過最長長度時,將會縮短壓縮至指定長度。

AudioConfig 設定

Variables Type Info
*encoding String 查看「音訊編碼」

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

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

Request Body Example

{
    "audioUri":"http://...",
    "sentences":[
        {
            "speakerId": "aaa",
            "modelSpeakerId": "cc123",
            "sentence": "this is an Apple",
            "lang":"en_us",
            "start": 99,
            "end": 5094
        },
        {
            "speakerId": "aaa",
            "modelSpeakerId": "",
            "sentence": "this is an Apple",
            "lang":"en_us",
            "start": 5027,
            "end": 22728
        }
    ],
    "audioConfig":{
        "encoding":"MP3"
    }
}

Response Body Example

{
    "uid": "4deb52c3-9f22-4415-b515-858d2caeb7f1",
    "audioUri": "http://...",
    "audioEncoding": "MP3",
    "taskId": "81e79a1c-fc9e-4780-bd1b-ad37352262b4",
    "status": "completed",
    "createdAt": "2022-11-22T16:49:25.835Z",
    "updatedAt": "2022-11-22T16:49:35.000Z",
    "sentences": [
        {
            "sentence": "2022-11-22T16:49:35.000Z",
            "speakerId": "2022-11-22T16:49:35.000Z",
            "modelSpeakerId": "2022-11-22T16:49:35.000Z",
            "lang": "en_us",
            "start": 5027,
            "end": 22728
            "audioFile": {
                "fileName": "tts-audio/audio.mp3",
                "fileHash": "23bb4f6526c6254c73e12009b8d25591edfb32e8",
                "url": "http://...",
                "expiredAt": ""
            }
        },
    ]
}

處理狀態查詢

提交後,“狀態”鍵將從“待處理”變為“處理中”,最後變為“完成”。 如果出現問題,就會進入“錯誤”。 您可以發出 GET 請求,如下所示,以檢查轉錄狀態的更新。

您必須重複 GET 請求,直到您的狀態為“完成”或“錯誤”。 一旦狀態鍵顯示為“已完成”,您就可以從 path 拿到新的連結,並且可以直接下載檔案。

Request

URL: /v3/dubs?page=1&perPage=10&status=pending
Method: GET

Header

Name Type Info
*key String

Query String Parameter

Name Info
page number
perPage number
status pending, ongoing, completed, error. If no value, get all list

Response Body Example

{
   "page":2,
   "perPage":10,
   "total":21,
   "nextPage":3,
   "data":[
      {
         "uid":"61e019c0-9586-4a7e-afe5-ea2cbc3670f2",
         "audioUri":"http://...",
         "audioEncoding": "LINEAR16",
         "taskId":"74fb6122-af46-4578-acd1-eb25aac8a893",
         "status":"ongoing",
         "createdAt":"2022-11-22T16:49:25.835Z",
         "updatedAt":"2022-11-22T16:49:35.000Z"
      }
   ]
}

取得配音結果

只要你的音檔狀態是 completed,你即可從以下 resultUrl 中取得處理後的音檔連結,並進行下載。

請注意,一但音檔完成後,因為安全問題,檔案只會保留 24 小時,超過就漚會自動刪除。

Request

URL: /v3/dubs/{uid}
Method: GET

Header

Name Type Info
*key String

Path Parameter

Name Info
uid string, uid.

Response Body Example

{
   "audioUrl":"http://...",
   "content":[
      {
         "speakerId":"aaa",
         "sentence":"this is an Apple",
         "language":"en"
         "start":99,
         "end":5004,
         "modelSpeakerId":"aaa1",
         "audioUrl":"http://..."
      },
      {
         "speakerId":"ccc",
         "sentence":"this is an Apple",
         "language":"en"
         "start":5027,
         "end":22728,
         "modelSpeakerId":"ccc1",
         "audioUrl":"http://..."
      }
   ],
   "config":{
      "encoding":"LINEAR16"
   },
   "resultUrl":"http://..."
   "taskId":"74fb6122-af46-4578-acd1-eb25aac8a893",
   "status":"ongoing",
   "createdAt":"2022-11-22T16:49:25.835Z",
   "updatedAt":"2022-11-22T16:49:35.000Z"
}