個(gè)性化音色定制
說(shuō)明
Hi,您好,歡迎使用有道智云個(gè)性化語(yǔ)音定制接口服務(wù)。
本文檔主要針對(duì)需要集成HTTP API的技術(shù)開(kāi)發(fā)工程師,詳細(xì)描述個(gè)性化語(yǔ)音定制相關(guān)的技術(shù)內(nèi)容。
如果您有與我們商務(wù)合作的需求,可以通過(guò)以下方式聯(lián)系我們:
商務(wù)郵箱: AIcloud_Business@corp.youdao.com
如果您對(duì)文檔內(nèi)容有任何疑問(wèn),可以通過(guò)以下幾種方式聯(lián)系我們:
客服QQ:1906538062
智云翻譯技術(shù)交流QQ 1群: 652880659
智云翻譯技術(shù)交流QQ 2群: 669384425
智云翻譯技術(shù)交流QQ 3群: 807539209
智云翻譯技術(shù)交流QQ 4群: 936752411
聯(lián)系郵箱: zhiyun@corp.youdao.com
溫馨提示:
- 本文檔主要針對(duì)開(kāi)發(fā)人員,接入測(cè)試前需要獲取應(yīng)用ID和應(yīng)用密鑰;如果您還沒(méi)有,請(qǐng)按照 新手指南 獲取。
- 平臺(tái)向每個(gè)賬戶(hù)贈(zèng)送50元的體驗(yàn)金,供用戶(hù)集成前測(cè)試所用。
接口說(shuō)明
個(gè)性化語(yǔ)音定制服務(wù),基于網(wǎng)易有道的語(yǔ)音識(shí)別技術(shù),通過(guò)上傳少量錄音,訓(xùn)練語(yǔ)音引擎定制自己聲音模型,賦予產(chǎn)品聲音形象,可在讀小說(shuō)、播音主持、講故事、客服服務(wù)等場(chǎng)景應(yīng)用。
服務(wù)主要分模型定制和模型調(diào)用兩部分。
協(xié)議須知
調(diào)用方在集成個(gè)性化語(yǔ)音定制服務(wù)API時(shí),請(qǐng)遵循以下規(guī)則。
規(guī)則 | 描述 |
---|
傳輸方式 | HTTPS |
請(qǐng)求方式 | GET或POST |
字符編碼 | 統(tǒng)一使用UTF-8 編碼 |
請(qǐng)求格式 | 表單 |
響應(yīng)格式 | JSON |
接口調(diào)用參數(shù)
個(gè)性化語(yǔ)音定制調(diào)用地址:
https://openapi.youdao.com
音頻格式
格式支持:wav(不壓縮,pcm編碼,采樣率:推薦16k ,編碼:16bit位深的單聲道)
模型定制階段
創(chuàng)建語(yǔ)音包接口
- 接口uri:/customVoice/packet/create
- 請(qǐng)求方式:POST
- 接口說(shuō)明:
創(chuàng)建語(yǔ)音包接口,通過(guò)語(yǔ)音包收集錄音,定制個(gè)性化音色模型
接口參數(shù):
參數(shù)名稱(chēng) | 類(lèi)型 | 含義 | 是否必填 | 示例 |
---|
appKey | String | 應(yīng)用ID | True | 可在 應(yīng)用管理 查看 |
curtime | String | 時(shí)間戳(秒) | True | 1666600000 |
salt | String | 隨機(jī)字符串 | True |
sign | String | 簽名信息:sha256(appKey + salt + curtime +密鑰) | True |
signType | String | 簽名類(lèi)型 | True | v4 |
name | String | 語(yǔ)音包名稱(chēng) (不超過(guò)50字符) | True | 語(yǔ)音包 |
gender | String | 性別 | True | male或female |
trainingType | String | 訓(xùn)練類(lèi)型 | True | tts或vc(詳見(jiàn)語(yǔ)音合成類(lèi)型) |
description | String | 語(yǔ)音包描述 (不超過(guò)250字符) | False | 這是語(yǔ)音包描述 |
quality | String | 定制質(zhì)量(1為低質(zhì)量2為高質(zhì)量) | False | 1或2(默認(rèn)為1) |
-
{
"errorCode":"0",//錯(cuò)誤碼
"msg":"success",//信息說(shuō)明
"result":{
"packetId":"P_24A59791123C49A9B498DCD1972803B3"//返回的語(yǔ)音包ID
}
}
環(huán)境音檢測(cè)
- 接口uri:/customVoice/packet/measureNoise
- 請(qǐng)求方式:POST
- 接口說(shuō)明:
語(yǔ)音包錄音前可以進(jìn)行環(huán)境音檢測(cè)
參數(shù)名稱(chēng) | 類(lèi)型 | 含義 | 是否必填 | 示例 |
---|
appKey | String | 應(yīng)用ID | True | 可在 應(yīng)用管理 查看 |
curtime | String | 時(shí)間戳(秒) | True | 1666600000 |
salt | String | 隨機(jī)字符串 | True |
sign | String | 簽名信息:sha256(appKey + salt + curtime +密鑰) | True |
signType | String | 簽名類(lèi)型 | True | v4 |
file | MultipartFile | 環(huán)境錄音 | True | MultipartFile,音頻格式:?jiǎn)温暤馈?6KHz 16bit PCM編碼的WAV格式。時(shí)長(zhǎng)3-5秒 |
packetId | String | 語(yǔ)音包id | True | P_24A59791123C49A9B498DCD1972803B3 |
{
"errorCode":"0",//錯(cuò)誤碼
"msg":"success",//信息說(shuō)明
"result":{
"passTest":true, //是否通過(guò)檢測(cè)
"decibel": 30 //分貝
}
}
語(yǔ)音評(píng)測(cè)接口
- 接口uri:/customVoice/packet/evaluateRecording
- 請(qǐng)求方式:POST
- 接口說(shuō)明:
錄制語(yǔ)音,通過(guò)評(píng)測(cè)的音頻會(huì)賦予recordId并則錄入語(yǔ)音包
參數(shù)名稱(chēng) | 類(lèi)型 | 含義 | 是否必填 | 示例 |
---|
appKey | String | 應(yīng)用ID | True | 可在 應(yīng)用管理 查看 |
curtime | String | 時(shí)間戳(秒) | True | 1666600000 |
salt | String | 隨機(jī)字符串 | True |
sign | String | 簽名信息:sha256(appKey + salt + curtime +密鑰) | True |
signType | String | 簽名類(lèi)型 | True | v4 |
text | String | 評(píng)測(cè)文本 | True | 每句話(huà)支持10-30個(gè)字符,不超過(guò)20句 ,高定文案可參考如下案例。 |
file | MultipartFile | 錄制評(píng)測(cè)音頻 | True | MultipartFile,音頻格式:?jiǎn)温暤馈?6KHz 16bit PCM編碼的WAV格式。時(shí)長(zhǎng)2-15秒 |
packetId | String | 語(yǔ)音包id | True | P_24A59791123C49A9B498DCD1972803B3 |
order | String | 語(yǔ)音包中語(yǔ)音序號(hào) | True | 取值1-20(有序+連續(xù)),重復(fù)傳遞則覆蓋原有音頻 |
例子:
小鴨子讓它坐在自己的背上,順利上了岸
小鴨子正在水里捉魚(yú),忽然聽(tīng)見(jiàn)小公雞喊救命
烏鴉把小石子放進(jìn)瓶子里,水漸漸升高
瓶子里水不多,瓶口又小,烏鴉喝不著水
一只烏鴉口渴了,到處找水喝
愛(ài)心的深層含義就是保護(hù)所有的動(dòng)植物
荷葉像個(gè)碧綠的大圓盤(pán)。荷花在它之間冒出來(lái)
要是碰上陰雨天,大樹(shù)也會(huì)來(lái)幫忙
北極星是盞指路燈,它永遠(yuǎn)高掛在北方
中午它在南邊,地上的樹(shù)影指向北方
桂樹(shù)還沒(méi)有開(kāi)花,但風(fēng)中已經(jīng)飄來(lái)甜絲絲的香氣
老師穿著長(zhǎng)袍,頭發(fā)胡子全白了,看上去很有學(xué)問(wèn)
杭州昨日正式入夏,較常年略早,昨天陽(yáng)光早早上崗
安靜的連一根針掉下來(lái)的聲音都聽(tīng)得見(jiàn)
我低著頭走出書(shū)店,腳站得有些麻木,我卻渾身輕松
它小巧玲瓏,一雙透亮靈活的眼睛下面,長(zhǎng)著一張又尖又長(zhǎng)的嘴
當(dāng)蒲公英盛開(kāi)的時(shí)候,這片草地就變成金色的了
那鮮艷的民族服裝,把學(xué)校打扮得更加絢麗多彩
人們佩服孔子和老子的學(xué)問(wèn),也敬重他們的品行
盡管它這樣機(jī)靈,還是難以逃脫翠鳥(niǎo)銳利的眼睛
{
"errorCode":"0",//錯(cuò)誤碼
"msg":"success",//信息說(shuō)明
"result":{
"recordingId":"V_7FFDF89DC01F40CFA8A478D7E3231WV9", //音頻合格,錄入語(yǔ)音包時(shí)有返回值
"score": "99.03", //評(píng)測(cè)得分
"guidance": , // 評(píng)測(cè)建議
"correctMessage": [], // 錯(cuò)誤發(fā)音句中index
"packetId": "P_3F9AB85F37CE497B9A1483848ACCF56C" //語(yǔ)音包ID
}
}
啟動(dòng)訓(xùn)練
- 接口uri:/customVoice/model/launch
- 請(qǐng)求方式:POST
- 接口說(shuō)明:
啟動(dòng)訓(xùn)練,語(yǔ)音包中的錄音數(shù)量達(dá)標(biāo)后,可以啟動(dòng)訓(xùn)練定制語(yǔ)音合成模型
參數(shù)名稱(chēng) | 類(lèi)型 | 含義 | 是否必填 | 示例 |
---|
appKey | String | 應(yīng)用ID | True | 可在 應(yīng)用管理 查看 |
curtime | String | 時(shí)間戳(秒) | True | 1666600000 |
salt | String | 隨機(jī)字符串 | True | UUID(唯一識(shí)別通用碼) |
sign | String | 簽名信息:sha256(appKey + salt + curtime +密鑰) | True | sha256(appKey + salt + curtime +密鑰) |
signType | String | 簽名類(lèi)型 | True | v4 |
packetId | String | 語(yǔ)音包id | True | P_24A59791123C49A9B498DCD1972803B3 |
launchType | String | 啟動(dòng)訓(xùn)練類(lèi)型。注:語(yǔ)音包訓(xùn)練類(lèi)型需要支持 | False | tts或者vc (如果不填此參數(shù),按語(yǔ)音包類(lèi)型啟動(dòng)訓(xùn)練) |
{
"errorCode":"0",//錯(cuò)誤碼
"msg":"success",//信息說(shuō)明
"result": {
"estimateSeconds":10 //剩余時(shí)間 秒
"modelList":[
{
"modelId":"M_A0852354A2ED4BB19DE759F1B80C6E37", //模型id 啟動(dòng)成功返回
"createTime":"2023-04-23 13:59:43", // 創(chuàng)建時(shí)間 啟動(dòng)成功返回
"taskId":"T_6381E68890C843488FD9569217EFA36A", // 訓(xùn)練任務(wù)id 啟動(dòng)成功返回
"modelType":"vc", //模型類(lèi)型
"modelStatus":"started", //模型狀態(tài)("started":訓(xùn)練啟動(dòng),"failed":啟動(dòng)失?。? "failedReason":"" // 失敗原因 啟動(dòng)失敗返回
}
]
}
}
查詢(xún)訓(xùn)練狀態(tài)
- 接口uri:/customVoice/model/checkStatus
- 請(qǐng)求方式:GET
- 接口說(shuō)明:
查詢(xún)當(dāng)前訓(xùn)練任務(wù)狀態(tài) - 接口參數(shù):
參數(shù)名稱(chēng) | 類(lèi)型 | 含義 | 是否必填 | 示例 |
---|
appKey | String | 應(yīng)用ID | True | 可在 應(yīng)用管理 查看 |
curtime | String | 時(shí)間戳(秒) | True | 1666600000 |
salt | String | 隨機(jī)字符串 | True |
sign | String | 簽名信息:sha256(appKey + salt + curtime +密鑰) | True |
signType | String | 簽名類(lèi)型 | True | v4 |
packetId | String | 語(yǔ)音包id | True | P_24A59791123C49A9B498DCD1972803B3 |
taskId | String | 訓(xùn)練任務(wù)id | True | T_D2560E2DCF6E435EA7BEDD88AC88B9CC |
{
"errorCode":"0",//錯(cuò)誤碼
"msg":"success",//信息說(shuō)明
"result": {
"taskId":"T_D2560E2DCF6E435EA7BEDD88AC88B9CC", // 訓(xùn)練任務(wù)id
"estimateSeconds":"10", //剩余時(shí)間 秒
"packetId":"P_24A59791123C49A9B498DCD1972803B3",//語(yǔ)音包id
"modelId":"M_A0852354A2ED4BB19DE759F1B80C6E37",//模型id
"status":"1" //訓(xùn)練狀態(tài) 0:開(kāi)始,1:完成,2:終止,3:失敗,4:語(yǔ)音包創(chuàng)建
}
}
刪除語(yǔ)音包
- 接口uri:/customVoice/packet/delete
- 請(qǐng)求方式:POST
- 接口說(shuō)明:
刪除指定語(yǔ)音包,同時(shí)會(huì)刪除包含錄音及訓(xùn)練模型 - 接口參數(shù):
參數(shù)名稱(chēng) | 類(lèi)型 | 含義 | 是否必填 | 示例 |
---|
appKey | String | 應(yīng)用ID | True | 可在 應(yīng)用管理 查看 |
curtime | String | 時(shí)間戳(秒) | True | 1666600000 |
salt | String | 隨機(jī)字符串 | True |
sign | String | 簽名信息:sha256(appKey + salt + curtime +密鑰) | True |
signType | String | 簽名類(lèi)型 | True | v4 |
packetId | String | 語(yǔ)音包id | True | P_24A59791123C49A9B498DCD1972803B3 |
{
"errorCode":"0",//錯(cuò)誤碼
"msg":"success",//信息說(shuō)明
"result": null
}
查詢(xún)語(yǔ)音包詳情
- 接口uri:/customVoice/packet/detail
- 請(qǐng)求方式:GET
- 接口說(shuō)明:
查詢(xún)所有創(chuàng)建的語(yǔ)音包基本信息 - 接口參數(shù):
參數(shù)名稱(chēng) | 類(lèi)型 | 含義 | 是否必填 | 示例 |
---|
appKey | String | 應(yīng)用ID | True | 可在 應(yīng)用管理 查看 |
curtime | String | 時(shí)間戳(秒) | True | 1666600000 |
salt | String | 隨機(jī)字符串 | True |
sign | String | 簽名信息:sha256(appKey + salt + curtime +密鑰) | True |
signType | String | 簽名類(lèi)型 | True | v4 |
packetId | String | 語(yǔ)音包id | True | P_24A59791123C49A9B498DCD1972803B3 |
{
"errorCode":"0",//錯(cuò)誤碼
"msg":"success",//信息說(shuō)明
"result": {
"name":"名稱(chēng)", // 語(yǔ)音包名稱(chēng)
"description":"描述", //語(yǔ)音包描述
"recordingCount":5, //包含錄音數(shù)
"createTime":"2022-08-22 14:33:10", //語(yǔ)音包創(chuàng)建時(shí)間
"packetId":"", // 語(yǔ)音包id
"voiceList":[
{
"order":1, //錄音序號(hào)
"audioUrl":"", //音頻鏈接
"text":"", //評(píng)測(cè)文本
},
...
]
}
}
服務(wù)配置
輸出格式 | 文本大小或音頻時(shí)長(zhǎng) | 支持語(yǔ)言 |
---|
wav | 噪音檢測(cè) 3-5s 語(yǔ)音評(píng)測(cè)音頻時(shí)長(zhǎng) 2-15s 語(yǔ)音評(píng)測(cè)文本為10-30個(gè)字符 | 中文 |
訓(xùn)練任務(wù)狀態(tài)碼
狀態(tài)ID | 狀態(tài)描述 |
---|
0 | 訓(xùn)練任務(wù)啟動(dòng) |
1 | 訓(xùn)練任務(wù)結(jié)束 |
2 | 訓(xùn)練任務(wù)已終止 |
3 | 訓(xùn)練任務(wù)失敗 |
4 | 語(yǔ)音包創(chuàng)建階段,訓(xùn)練任務(wù)未啟動(dòng) |
訓(xùn)練錯(cuò)誤代碼
錯(cuò)誤碼 | 含義 |
---|
101 | 缺少必填的參數(shù),首先確保必填參數(shù)齊全,然后,確認(rèn)參數(shù)書(shū)寫(xiě)是否正確。 |
102 | 不支持的語(yǔ)言類(lèi)型 |
103 | 翻譯文本過(guò)長(zhǎng) |
104 | 不支持的API類(lèi)型 |
105 | 不支持的簽名類(lèi)型 |
106 | 不支持的響應(yīng)類(lèi)型 |
107 | 不支持的傳輸加密類(lèi)型 |
108 | 應(yīng)用ID無(wú)效,注冊(cè)賬號(hào),登錄后臺(tái)創(chuàng)建應(yīng)用和實(shí)例并完成綁定,可獲得應(yīng)用ID和應(yīng)用密鑰等信息 |
109 | batchLog格式不正確 |
110 | 無(wú)相關(guān)服務(wù)的有效實(shí)例,應(yīng)用沒(méi)有綁定服務(wù)。注:某些服務(wù)的結(jié)果發(fā)音需要tts,需要在控制臺(tái)創(chuàng)建語(yǔ)音合成綁定應(yīng)用后方能使用。 |
111 | 開(kāi)發(fā)者賬號(hào)無(wú)效 |
112 | 請(qǐng)求服務(wù)無(wú)效 |
113 | q不能為空 |
114 | 不支持的圖片傳輸方式 |
115 | 語(yǔ)音包異常:不存在或者已刪除或者不屬于當(dāng)前devId |
116 | referenceSynthesisId已存在 |
201 | 解密失敗,可能為DES,BASE64,URLDecode的錯(cuò)誤 |
202 | 簽名檢驗(yàn)失敗 |
203 | 訪問(wèn)IP地址不在可訪問(wèn)IP列表 |
205 | 請(qǐng)求的接口與應(yīng)用的平臺(tái)類(lèi)型不一致,確保接入方式(Android SDK、IOS SDK、API)與創(chuàng)建的應(yīng)用平臺(tái)類(lèi)型一致。 |
206 | 因?yàn)闀r(shí)間戳無(wú)效導(dǎo)致簽名校驗(yàn)失敗 |
207 | 重放請(qǐng)求 |
303 | 服務(wù)端的其它異常 |
401 | 賬戶(hù)已經(jīng)欠費(fèi)停 |
402 | offlinesdk不可用 |
403 | 無(wú)權(quán)限 |
404 | 資源不存在 |
405 | auth服務(wù)不可用 |
411 | 訪問(wèn)頻率受限,請(qǐng)稍后訪問(wèn) |
412 | 超過(guò)最大翻譯字符數(shù) |
VC001 | 不支持訓(xùn)練類(lèi)型 |
VC002 | 不支持性別類(lèi)型 |
VC003 | 無(wú)有效ticket |
VC004 | 語(yǔ)音包創(chuàng)建失敗 |
VC005 | 語(yǔ)音包id不存在 |
VC006 | 環(huán)境音檢測(cè)失敗 |
VC007 | 語(yǔ)音包重訓(xùn)練次數(shù)耗盡 |
VC008 | 當(dāng)前存在訓(xùn)練中的任務(wù) |
VC009 | 啟動(dòng)訓(xùn)練失敗 |
VC010 | 訓(xùn)練任務(wù)id不存在 |
VC011 | 刪除語(yǔ)音包失敗 |
VC012 | 獲取語(yǔ)音包列表失敗 |
VC013 | 獲取訓(xùn)練狀態(tài)失敗 |
VC014 | 語(yǔ)音評(píng)測(cè)失敗 |
VC015 | 開(kāi)發(fā)者id為空 |
VC016 | userId命名空間為空 |
VC022 | 回調(diào)地址錯(cuò)誤 |
VC023 | 未知合成任務(wù) |
VC024 | 合成URL錯(cuò)誤 |
VC025 | 獲取合成結(jié)果失敗 |
VC026 | 文件大小超限 |
VC027 | description超出限制 |
VC028 | name字段超出限制 |
VC029 | order字段取值錯(cuò)誤 |
VC030 | text字段超限 |
VC031 | 當(dāng)日創(chuàng)建語(yǔ)音包到達(dá)上限 |
VC032 | 音頻時(shí)長(zhǎng)錯(cuò)誤 |
VC033 | userId和packetId不匹配 |
VC034 | 語(yǔ)音包錄制文本重復(fù) |
VC036 | 獲取語(yǔ)音包詳情失敗 |
VC041 | 音量過(guò)高 |
VC042 | 音頻格式錯(cuò)誤 |
VC043 | 音頻次序錯(cuò)誤 |
VC044 | 音頻質(zhì)量過(guò)低 |
VC045 | 創(chuàng)建任務(wù)數(shù)超出限制(每天最多創(chuàng)建1000個(gè)訓(xùn)練任務(wù)) |
VC046 | 音頻數(shù)量錯(cuò)誤 |
VC047 | 不支持的啟動(dòng)類(lèi)型 |