個(gè)性化音色定制
說明
Hi,您好,歡迎使用有道智云個(gè)性化語音定制接口服務(wù)。
本文檔主要針對(duì)需要集成HTTP API的技術(shù)開發(fā)工程師,詳細(xì)描述個(gè)性化語音定制相關(guān)的技術(shù)內(nèi)容。
如果您有與我們商務(wù)合作的需求,可以通過以下方式聯(lián)系我們:
商務(wù)郵箱: AIcloud_Business@corp.youdao.com
如果您對(duì)文檔內(nèi)容有任何疑問,可以通過以下幾種方式聯(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ì)開發(fā)人員,接入測(cè)試前需要獲取應(yīng)用ID和應(yīng)用密鑰;如果您還沒有,請(qǐng)按照 新手指南 獲取。
- 平臺(tái)向每個(gè)賬戶贈(zèng)送50元的體驗(yàn)金,供用戶集成前測(cè)試所用。
接口說明
個(gè)性化語音定制服務(wù),基于網(wǎng)易有道的語音識(shí)別技術(shù),通過上傳少量錄音,訓(xùn)練語音引擎定制自己聲音模型,賦予產(chǎn)品聲音形象,可在讀小說、播音主持、講故事、客服服務(wù)等場(chǎng)景應(yīng)用。
服務(wù)主要分模型定制和模型調(diào)用兩部分。
協(xié)議須知
調(diào)用方在集成個(gè)性化語音定制服務(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è)性化語音定制調(diào)用地址:
https://openapi.youdao.com
音頻格式
格式支持:wav(不壓縮,pcm編碼,采樣率:推薦16k ,編碼:16bit位深的單聲道)
模型定制階段
創(chuàng)建語音包接口
參數(shù)名稱 |
類型 |
含義 |
是否必填 |
示例 |
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 |
簽名類型 |
True |
v4 |
name |
String |
語音包名稱 (不超過50字符) |
True |
語音包 |
gender |
String |
性別 |
True |
male或female |
trainingType |
String |
訓(xùn)練類型 |
True |
tts或vc(詳見語音合成類型) |
description |
String |
語音包描述 (不超過250字符) |
False |
這是語音包描述 |
quality |
String |
定制質(zhì)量(1為低質(zhì)量2為高質(zhì)量) |
False |
1或2(默認(rèn)為1) |
{
"errorCode":"0",//錯(cuò)誤碼
"msg":"success",//信息說明
"result":{
"packetId":"P_24A59791123C49A9B498DCD1972803B3"//返回的語音包ID
}
}
環(huán)境音檢測(cè)
參數(shù)名稱 |
類型 |
含義 |
是否必填 |
示例 |
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 |
簽名類型 |
True |
v4 |
file |
MultipartFile |
環(huán)境錄音 |
True |
MultipartFile,音頻格式:單聲道、16KHz 16bit PCM編碼的WAV格式。時(shí)長3-5秒 |
packetId |
String |
語音包id |
True |
P_24A59791123C49A9B498DCD1972803B3 |
{
"errorCode":"0",//錯(cuò)誤碼
"msg":"success",//信息說明
"result":{
"passTest":true, //是否通過檢測(cè)
"decibel": 30 //分貝
}
}
語音評(píng)測(cè)接口
參數(shù)名稱 |
類型 |
含義 |
是否必填 |
示例 |
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 |
簽名類型 |
True |
v4 |
text |
String |
評(píng)測(cè)文本 |
True |
每句話支持10-30個(gè)字符,不超過20句 ,高定文案可參考如下案例。 |
file |
MultipartFile |
錄制評(píng)測(cè)音頻 |
True |
MultipartFile,音頻格式:單聲道、16KHz 16bit PCM編碼的WAV格式。時(shí)長2-15秒 |
packetId |
String |
語音包id |
True |
P_24A59791123C49A9B498DCD1972803B3 |
order |
String |
語音包中語音序號(hào) |
True |
取值1-20(有序+連續(xù)),重復(fù)傳遞則覆蓋原有音頻 |
例子:
{
"errorCode":"0",//錯(cuò)誤碼
"msg":"success",//信息說明
"result":{
"recordingId":"V_7FFDF89DC01F40CFA8A478D7E3231WV9", //音頻合格,錄入語音包時(shí)有返回值
"score": "99.03", //評(píng)測(cè)得分
"guidance": , // 評(píng)測(cè)建議
"correctMessage": [], // 錯(cuò)誤發(fā)音句中index
"packetId": "P_3F9AB85F37CE497B9A1483848ACCF56C" //語音包ID
}
}
啟動(dòng)訓(xùn)練
接口uri:/customVoice/model/launch
請(qǐng)求方式:POST
接口說明:
啟動(dòng)訓(xùn)練,語音包中的錄音數(shù)量達(dá)標(biāo)后,可以啟動(dòng)訓(xùn)練定制語音合成模型
接口參數(shù):
參數(shù)名稱 |
類型 |
含義 |
是否必填 |
示例 |
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 |
簽名類型 |
True |
v4 |
packetId |
String |
語音包id |
True |
P_24A59791123C49A9B498DCD1972803B3 |
launchType |
String |
啟動(dòng)訓(xùn)練類型。注:語音包訓(xùn)練類型需要支持 |
False |
tts或者vc (如果不填此參數(shù),按語音包類型啟動(dòng)訓(xùn)練) |
{
"errorCode":"0",//錯(cuò)誤碼
"msg":"success",//信息說明
"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", //模型類型
"modelStatus":"started", //模型狀態(tài)("started":訓(xùn)練啟動(dòng),"failed":啟動(dòng)失?。? "failedReason":"" // 失敗原因 啟動(dòng)失敗返回
}
]
}
}
查詢訓(xùn)練狀態(tài)
參數(shù)名稱 |
類型 |
含義 |
是否必填 |
示例 |
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 |
簽名類型 |
True |
v4 |
packetId |
String |
語音包id |
True |
P_24A59791123C49A9B498DCD1972803B3 |
taskId |
String |
訓(xùn)練任務(wù)id |
True |
T_D2560E2DCF6E435EA7BEDD88AC88B9CC |
{
"errorCode":"0",//錯(cuò)誤碼
"msg":"success",//信息說明
"result": {
"taskId":"T_D2560E2DCF6E435EA7BEDD88AC88B9CC", // 訓(xùn)練任務(wù)id
"estimateSeconds":"10", //剩余時(shí)間 秒
"packetId":"P_24A59791123C49A9B498DCD1972803B3",//語音包id
"modelId":"M_A0852354A2ED4BB19DE759F1B80C6E37",//模型id
"status":"1" //訓(xùn)練狀態(tài) 0:開始,1:完成,2:終止,3:失敗,4:語音包創(chuàng)建
}
}
刪除語音包
參數(shù)名稱 |
類型 |
含義 |
是否必填 |
示例 |
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 |
簽名類型 |
True |
v4 |
packetId |
String |
語音包id |
True |
P_24A59791123C49A9B498DCD1972803B3 |
{
"errorCode":"0",//錯(cuò)誤碼
"msg":"success",//信息說明
"result": null
}
查詢語音包詳情
參數(shù)名稱 |
類型 |
含義 |
是否必填 |
示例 |
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 |
簽名類型 |
True |
v4 |
packetId |
String |
語音包id |
True |
P_24A59791123C49A9B498DCD1972803B3 |
{
"errorCode":"0",//錯(cuò)誤碼
"msg":"success",//信息說明
"result": {
"name":"名稱", // 語音包名稱
"description":"描述", //語音包描述
"recordingCount":5, //包含錄音數(shù)
"createTime":"2022-08-22 14:33:10", //語音包創(chuàng)建時(shí)間
"packetId":"", // 語音包id
"voiceList":[
{
"order":1, //錄音序號(hào)
"audioUrl":"", //音頻鏈接
"text":"", //評(píng)測(cè)文本
},
...
]
}
}
服務(wù)配置
輸出格式 |
文本大小或音頻時(shí)長 |
支持語言 |
wav |
噪音檢測(cè) 3-5s 語音評(píng)測(cè)音頻時(shí)長 2-15s 語音評(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 |
語音包創(chuàng)建階段,訓(xùn)練任務(wù)未啟動(dòng) |
訓(xùn)練錯(cuò)誤代碼
錯(cuò)誤碼 |
含義 |
101 |
缺少必填的參數(shù),首先確保必填參數(shù)齊全,然后,確認(rèn)參數(shù)書寫是否正確。 |
102 |
不支持的語言類型 |
103 |
翻譯文本過長 |
104 |
不支持的API類型 |
105 |
不支持的簽名類型 |
106 |
不支持的響應(yīng)類型 |
107 |
不支持的傳輸加密類型 |
108 |
應(yīng)用ID無效,注冊(cè)賬號(hào),登錄后臺(tái)創(chuàng)建應(yīng)用和實(shí)例并完成綁定,可獲得應(yīng)用ID和應(yīng)用密鑰等信息 |
109 |
batchLog格式不正確 |
110 |
無相關(guān)服務(wù)的有效實(shí)例,應(yīng)用沒有綁定服務(wù)。注:某些服務(wù)的結(jié)果發(fā)音需要tts,需要在控制臺(tái)創(chuàng)建語音合成綁定應(yīng)用后方能使用。 |
111 |
開發(fā)者賬號(hào)無效 |
112 |
請(qǐng)求服務(wù)無效 |
113 |
q不能為空 |
114 |
不支持的圖片傳輸方式 |
115 |
語音包異常:不存在或者已刪除或者不屬于當(dāng)前devId |
116 |
referenceSynthesisId已存在 |
201 |
解密失敗,可能為DES,BASE64,URLDecode的錯(cuò)誤 |
202 |
簽名檢驗(yàn)失敗 |
203 |
訪問IP地址不在可訪問IP列表 |
205 |
請(qǐng)求的接口與應(yīng)用的平臺(tái)類型不一致,確保接入方式(Android SDK、IOS SDK、API)與創(chuàng)建的應(yīng)用平臺(tái)類型一致。 |
206 |
因?yàn)闀r(shí)間戳無效導(dǎo)致簽名校驗(yàn)失敗 |
207 |
重放請(qǐng)求 |
303 |
服務(wù)端的其它異常 |
401 |
賬戶已經(jīng)欠費(fèi)停 |
402 |
offlinesdk不可用 |
403 |
無權(quán)限 |
404 |
資源不存在 |
405 |
auth服務(wù)不可用 |
411 |
訪問頻率受限,請(qǐng)稍后訪問 |
412 |
超過最大翻譯字符數(shù) |
VC001 |
不支持訓(xùn)練類型 |
VC002 |
不支持性別類型 |
VC003 |
無有效ticket |
VC004 |
語音包創(chuàng)建失敗 |
VC005 |
語音包id不存在 |
VC006 |
環(huán)境音檢測(cè)失敗 |
VC007 |
語音包重訓(xùn)練次數(shù)耗盡 |
VC008 |
當(dāng)前存在訓(xùn)練中的任務(wù) |
VC009 |
啟動(dòng)訓(xùn)練失敗 |
VC010 |
訓(xùn)練任務(wù)id不存在 |
VC011 |
刪除語音包失敗 |
VC012 |
獲取語音包列表失敗 |
VC013 |
獲取訓(xùn)練狀態(tài)失敗 |
VC014 |
語音評(píng)測(cè)失敗 |
VC015 |
開發(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)建語音包到達(dá)上限 |
VC032 |
音頻時(shí)長錯(cuò)誤 |
VC033 |
userId和packetId不匹配 |
VC034 |
語音包錄制文本重復(fù) |
VC036 |
獲取語音包詳情失敗 |
VC041 |
音量過高 |
VC042 |
音頻格式錯(cuò)誤 |
VC043 |
音頻次序錯(cuò)誤 |
VC044 |
音頻質(zhì)量過低 |
VC045 |
創(chuàng)建任務(wù)數(shù)超出限制(每天最多創(chuàng)建1000個(gè)訓(xùn)練任務(wù)) |
VC046 |
音頻數(shù)量錯(cuò)誤 |
VC047 |
不支持的啟動(dòng)類型 |