語音翻譯 API 簡介
概念解釋
語音翻譯:將一段源語言音頻文件轉(zhuǎn)換成目標(biāo)語言文本/語音,大大減輕傳統(tǒng)文本翻譯的讀寫成本,翻譯更輕松
說明
Hi,您好,歡迎使用有道智云語音翻譯API接口服務(wù)。
本文檔主要針對需要集成HTTP API的技術(shù)開發(fā)工程師,詳細(xì)描述語音翻譯能力相關(guān)的技術(shù)內(nèi)容。
如果您有與我們商務(wù)合作的需求,可以通過以下方式聯(lián)系我們:
商務(wù)郵箱: AIcloud_Business@corp.youdao.com
如果您對文檔內(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
溫馨提示:
- 本文檔主要針對開發(fā)人員,接入測試前需要獲取應(yīng)用ID和應(yīng)用密鑰;如果您還沒有,請按照新手指南獲取。
- 平臺向每個(gè)賬戶贈送50元的體驗(yàn)金,供用戶集成前測試所用,具體資費(fèi)規(guī)則詳見 語音翻譯服務(wù)報(bào)價(jià) 。
接口說明
語音翻譯API接口提供有道的語音翻譯服務(wù),包含了中文和其他有道自有語種的互譯功能。您只需要通過調(diào)用有道語音翻譯API,傳入待翻譯的音頻文件,并指定要翻譯的源語言(支持源語言語種自動檢測)和目標(biāo)語言種類,以POST方式請求就可以得到相應(yīng)的翻譯結(jié)果。
有道語音翻譯API HTTPS地址:
https://openapi.youdao.com/speechtransapi
注:上傳的語音文件時(shí)長不能超過15s,文件大小不能超過2M。
協(xié)議須知
調(diào)用方在集成語音翻譯API時(shí),請遵循以下規(guī)則。
規(guī)則 |
描述 |
傳輸方式 |
HTTPS |
請求方式 |
POST |
字符編碼 |
統(tǒng)一使用 UTF-8 編碼 |
請求格式 |
表單 |
響應(yīng)格式 |
JSON |
接口調(diào)用參數(shù)
調(diào)用API需要向接口發(fā)送以下字段來訪問服務(wù)。
字段名 |
類型 |
含義 |
必填 |
備注 |
q |
text |
要翻譯的音頻文件的Base64編碼字符串 |
True |
必須是UTF-8編碼 |
from |
text |
源語言 |
True |
參考下方的 支持語言 |
to |
text |
目標(biāo)語言 |
True |
參考下方的 支持語言 |
appKey |
text |
應(yīng)用ID |
True |
可在應(yīng)用管理 查看 |
salt |
text |
UUID |
True |
uuid,唯一通用識別碼 |
sign |
text |
簽名 |
True |
sha256(應(yīng)用ID+input+salt+curtime+應(yīng)用密鑰) |
signType |
text |
簽名類型 |
True |
v3 |
format |
text |
語音文件的格式, 目前只支持wav/mp3,區(qū)分大小寫 |
true |
wav/mp3 |
rate |
text |
采樣率,推薦 16000 采用率 |
true |
16000 |
channel |
text |
聲道數(shù), 僅支持單聲道,請?zhí)顚懝潭ㄖ? |
true |
1 |
type |
text |
上傳類型, 僅支持Base64上傳,請?zhí)顚懝潭ㄖ? |
true |
1 |
ext |
text |
翻譯結(jié)果音頻格式,支持mp3,默認(rèn)mp3 |
false |
mp3 |
voice |
text |
翻譯結(jié)果發(fā)音選擇 |
false |
0為女聲,1為男聲。默認(rèn)為女聲 |
version |
text |
接口版本 |
false |
v1 |
簽名生成方法如下:
signType=v3;
sign=sha256(應(yīng)用ID
+input
+salt
+curtime
+應(yīng)用密鑰
);
其中,input的計(jì)算方式為:input
=q前10個(gè)字符
+ q長度
+ q后10個(gè)字符
(當(dāng)q長度大于20)或 input
=q字符串
(當(dāng)q長度小于等于20);
注意:
- 請先將需要識別的音頻文件轉(zhuǎn)換為 Base64 編碼。
- 在發(fā)送HTTP請求之前需要對各字段做 URL encode。
- 在生成簽名拼接
應(yīng)用ID+q+salt+應(yīng)用密鑰
字符串時(shí),q
不需要做 URL encode,在生成簽名之后,發(fā)送 HTTP 請求之前才需要對要發(fā)送的 q
做URL encode。
- 簽名和請求有疑問,可以參考文檔最后的常用語言demo。
輸出結(jié)果
返回的結(jié)果是json格式,包含字段與FROM和TO的值有關(guān),具體說明如下:
字段 |
含義 |
tSpeakUrl |
翻譯結(jié)果發(fā)音地址,翻譯成功一定存在 |
errorCode |
翻譯結(jié)果錯(cuò)誤碼,一定存在 |
query |
源語言文本,翻譯成功一定存在 |
translation |
翻譯結(jié)果,翻譯成功一定存在 |
dict |
text,詞典deeplink |
webdict |
text,詞典web deeplink |
speakUrl |
源語言發(fā)音地址,翻譯成功一定存在 |
示例
使用good單詞查詢作為示例進(jìn)行說明:
發(fā)送請求,調(diào)用接口:
{
"q":"xxx", //xxx為音頻的base64編碼
"salt":123,
"docType":"json",
"format":"wav",
"channel":1,
"sign":"ACE8373C54C82A9C793A480B55138F3E",
"type":1,
"version":"v1",
"rate":16000,
"signType":"v1",
"appKey":"test",
"from":"zh-CHS",
"to":"en"
}
輸出結(jié)果與FROM和TO的值有關(guān):
如果源語言和目標(biāo)語言一致,直接返回識別結(jié)果。
若不一致,按如下格式返回如下結(jié)果:
{
"tSpeakUrl": "https://openapi.youdao.com/ttsapi?q=北京科技館&langType=en&sign=40133A29285AD7F85D62DC9EBFE36955&salt=1512458805233&appKey=apiTest", //翻譯結(jié)果發(fā)音地址,翻譯成功一定存在
"query": "北京科技館", //識別結(jié)果,翻譯成功一定存在
"translation": [
"Beijing science and technology museum"
], //翻譯結(jié)果
"errorCode": "0", //錯(cuò)誤碼。一定存在
"dict": {
"url": "yddict://m.youdao.com/dict?le=eng&q=%E5%8C%97%E4%BA%AC%E7%A7%91%E6%8A%80%E9%A6%86"
}, //詞典deeplink
"webdict": {
"url": "http://m.youdao.com/dict?le=eng&q=%E5%8C%97%E4%BA%AC%E7%A7%91%E6%8A%80%E9%A6%86"
}, //webdict deeplink
"speakUrl": "https://openapi.youdao.com/ttsapi?q=%E5%8C%97%E4%BA%AC%E7%A7%91%E6%8A%80%E9%A6%86&langType=zh-CHS&sign=25FA4EFF0F453867B8D5EAD9C0EF5D07&salt=1512458805232&appKey=zhudytest123" //源語言發(fā)音地址
}
支持語言
英文名 |
中文名 |
代碼 |
Mandarin (China) |
中文 |
zh-CHS |
English (US) |
英文 |
en |
English (Australia) |
英文(澳大利亞) |
en-AUS |
English (GB) |
英文(英國) |
en-GBR |
English (India) |
英文(印度) |
en-IND |
Japanese |
日文 |
ja |
Korean |
韓文 |
ko |
French |
法文 |
fr |
Spanish |
西班牙文 |
es |
Portuguese (Portugal) |
葡萄牙文 |
pt |
Russian |
俄文 |
ru |
German |
德文 |
de |
Arabic |
阿拉伯文 |
ar |
Indonesian |
印尼文 |
id |
Catalan |
加泰隆語 |
ca |
Czech |
捷克語 |
cs |
Danish |
丹麥語 |
da |
Greek |
希臘語 |
el |
Finnish |
芬蘭語 |
fi |
French (Canada) |
法語(加拿大) |
fr-CAN |
Hebrew |
希伯來語 |
he |
Hindi |
印地語 |
hi |
Hungarian |
匈牙利語 |
hu |
Italian |
意大利語 |
it |
Dutch |
荷蘭語 |
nl |
Norwegian |
挪威語 |
no |
Polish |
波蘭語 |
pl |
Portuguese (Brazil) |
葡萄牙語(巴西) |
pt-BRA |
Romanian |
羅馬尼亞語 |
ro |
Slovak |
斯洛伐克語 |
sk |
Swedish |
瑞典語 |
sv |
Thai |
泰語 |
th |
Turkish |
土耳其語 |
tr |
Cantonese |
粵語 |
yue |
Mandarin (Taiwan) |
普通話(中國臺灣) |
zh-TWN |
注意
- 越南語和印尼語目前只支持和中文的互譯。
- 支持自動識別的語種包括:中文、英文。
- 若列表語言出現(xiàn)不支持的問題,請參考產(chǎn)品定價(jià)列表語種互譯的限制
語音支持
格式支持:wav格式 / mp3格式(不壓縮、pcm編碼)。
采樣率:推薦16k。
編碼:16bit位深的單聲道
服務(wù)配置
支持格式 |
音頻大小上限 |
單次最大請求時(shí)長(s) |
每小時(shí)最大查詢次數(shù) |
支持語言 |
wav/mp3 |
2M(編碼后) |
15 |
3000 |
中/英/日/韓等,詳見支持的語言列表 |
錯(cuò)誤代碼列表
錯(cuò)誤碼 |
含義 |
101 |
缺少必填的參數(shù),首先確保必填參數(shù)齊全,然后,確認(rèn)參數(shù)書寫是否正確。 |
102 |
不支持的語言類型 |
103 |
翻譯文本過長 |
104 |
不支持的API類型 |
105 |
不支持的簽名類型 |
106 |
不支持的響應(yīng)類型 |
107 |
不支持的傳輸加密類型 |
108 |
應(yīng)用ID無效,注冊賬號,登錄后臺創(chuàng)建應(yīng)用和實(shí)例并完成綁定,可獲得應(yīng)用ID和應(yīng)用密鑰等信息 |
109 |
batchLog格式不正確 |
110 |
無相關(guān)服務(wù)的有效實(shí)例,應(yīng)用沒有綁定服務(wù)實(shí)例,可以新建服務(wù)實(shí)例,綁定服務(wù)實(shí)例。注:某些服務(wù)的翻譯結(jié)果發(fā)音需要tts實(shí)例,需要在控制臺創(chuàng)建語音合成實(shí)例綁定應(yīng)用后方能使用。 |
111 |
開發(fā)者賬號無效 |
112 |
請求服務(wù)無效 |
113 |
q不能為空 |
114 |
不支持的圖片傳輸方式 |
201 |
解密失敗,可能為DES,BASE64,URLDecode的錯(cuò)誤 |
202 |
簽名檢驗(yàn)失敗,如果確認(rèn)應(yīng)用ID和應(yīng)用密鑰的正確性,仍返回202,一般是編碼問題。請確保翻譯文本 q 為UTF-8編碼. |
203 |
訪問IP地址不在可訪問IP列表 |
205 |
請求的接口與應(yīng)用的平臺類型不一致,確保接入方式(Android SDK、IOS SDK、API)與創(chuàng)建的應(yīng)用平臺類型一致。如有疑問請參考入門指南 |
206 |
因?yàn)闀r(shí)間戳無效導(dǎo)致簽名校驗(yàn)失敗 |
207 |
重放請求 |
301 |
辭典查詢失敗 |
302 |
翻譯查詢失敗 |
303 |
服務(wù)端的其它異常 |
304 |
會話閑置太久超時(shí) |
401 |
賬戶已經(jīng)欠費(fèi)停 |
402 |
offlinesdk不可用 |
411 |
訪問頻率受限,請稍后訪問 |
412 |
長請求過于頻繁,請稍后訪問 |
1001 |
無效的OCR類型 |
1002 |
不支持的OCR image類型 |
1003 |
不支持的OCR Language類型 |
1004 |
識別圖片過大 |
1201 |
圖片base64解密失敗 |
1301 |
OCR段落識別失敗 |
1411 |
訪問頻率受限 |
1412 |
超過最大識別字節(jié)數(shù) |
2003 |
不支持的語言識別Language類型 |
2004 |
合成字符過長 |
2005 |
不支持的音頻文件類型 |
2006 |
不支持的發(fā)音類型 |
2201 |
解密失敗 |
2301 |
服務(wù)的異常 |
2411 |
訪問頻率受限,請稍后訪問 |
2412 |
超過最大請求字符數(shù) |
3001 |
不支持的語音格式 |
3002 |
不支持的語音采樣率 |
3003 |
不支持的語音聲道 |
3004 |
不支持的語音上傳類型 |
3005 |
不支持的語言類型 |
3006 |
不支持的識別類型 |
3007 |
識別音頻文件過大 |
3008 |
識別音頻時(shí)長過長 |
3009 |
不支持的音頻文件類型 |
3010 |
不支持的發(fā)音類型 |
3201 |
解密失敗 |
3301 |
語音識別失敗 |
3302 |
語音翻譯失敗 |
3303 |
服務(wù)的異常 |
3411 |
訪問頻率受限,請稍后訪問 |
3412 |
超過最大請求字符數(shù) |
4001 |
不支持的語音識別格式 |
4002 |
不支持的語音識別采樣率 |
4003 |
不支持的語音識別聲道 |
4004 |
不支持的語音上傳類型 |
4005 |
不支持的語言類型 |
4006 |
識別音頻文件過大 |
4007 |
識別音頻時(shí)長過長 |
4201 |
解密失敗 |
4301 |
語音識別失敗 |
4303 |
服務(wù)的異常 |
4411 |
訪問頻率受限,請稍后訪問 |
4412 |
超過最大請求時(shí)長 |
5001 |
無效的OCR類型 |
5002 |
不支持的OCR image類型 |
5003 |
不支持的語言類型 |
5004 |
識別圖片過大 |
5005 |
不支持的圖片類型 |
5006 |
文件為空 |
5201 |
解密錯(cuò)誤,圖片base64解密失敗 |
5301 |
OCR段落識別失敗 |
5411 |
訪問頻率受限 |
5412 |
超過最大識別流量 |
9001 |
不支持的語音格式 |
9002 |
不支持的語音采樣率 |
9003 |
不支持的語音聲道 |
9004 |
不支持的語音上傳類型 |
9005 |
不支持的語音識別 Language類型 |
9301 |
ASR識別失敗 |
9303 |
服務(wù)器內(nèi)部錯(cuò)誤 |
9411 |
訪問頻率受限(超過最大調(diào)用次數(shù)) |
9412 |
超過最大處理語音長度 |
10001 |
無效的OCR類型 |
10002 |
不支持的OCR image類型 |
10004 |
識別圖片過大 |
10201 |
圖片base64解密失敗 |
10301 |
OCR段落識別失敗 |
10411 |
訪問頻率受限 |
10412 |
超過最大識別流量 |
11001 |
不支持的語音識別格式 |
11002 |
不支持的語音識別采樣率 |
11003 |
不支持的語音識別聲道 |
11004 |
不支持的語音上傳類型 |
11005 |
不支持的語言類型 |
11006 |
識別音頻文件過大 |
11007 |
識別音頻時(shí)長過長,最大支持30s |
11201 |
解密失敗 |
11301 |
語音識別失敗 |
11303 |
服務(wù)的異常 |
11411 |
訪問頻率受限,請稍后訪問 |
11412 |
超過最大請求時(shí)長 |
12001 |
圖片尺寸過大 |
12002 |
圖片base64解密失敗 |
12003 |
引擎服務(wù)器返回錯(cuò)誤 |
12004 |
圖片為空 |
12005 |
不支持的識別圖片類型 |
12006 |
圖片無匹配結(jié)果 |
13001 |
不支持的角度類型 |
13002 |
不支持的文件類型 |
13003 |
表格識別圖片過大 |
13004 |
文件為空 |
13301 |
表格識別失敗 |
15001 |
需要圖片 |
15002 |
圖片過大(1M) |
15003 |
服務(wù)調(diào)用失敗 |
17001 |
需要圖片 |
17002 |
圖片過大(1M) |
17003 |
識別類型未找到 |
17004 |
不支持的識別類型 |
17005 |
服務(wù)調(diào)用失敗 |
音頻切換
本部分描述如何把其他格式的音頻轉(zhuǎn)成符合語音識別輸入要求的格式文件。
語音識別底層使用的是wav格式,因此推薦使用wav格式音頻。音頻格式轉(zhuǎn)換推薦使用ffmpeg。
PCM文件音頻介紹
pcm保存的是未壓縮的音頻信息,沒有頭文件
16bits編碼是指每次采樣信息用2個(gè)字節(jié)保存。
16000采樣率,是指1秒采樣16000次,常見的音頻是44100HZ,即一秒采樣44100次。
單聲道: 只有一個(gè)聲道。
根據(jù)這些信息,可以得出:
1ms的16采樣率音頻文件大小是 2*16 = 32字節(jié) 。
1ms的8采樣率音頻文件大小是 2*8 = 16字節(jié),由此即可得到音頻的長度。
ffmpeg簡介
ffmpeg是一個(gè)自由軟件,可以運(yùn)行音頻、視頻多種格式的錄影、轉(zhuǎn)換、流功能,包含libavcodec--這是一個(gè)用于多個(gè)項(xiàng)目中的音頻、視頻的解碼器庫,以及l(fā)ibavformat--一個(gè)音頻和視頻格式轉(zhuǎn)換庫。
ffmpeg官網(wǎng):https://www.ffmpeg.org/
ffmpeg的github地址:https://github.com/FFmpeg/FFmpeg
ffmpeg編譯參數(shù)
ffmpeg默認(rèn)支持pcm和wav(pcm編碼)格式,額外的編譯參數(shù)如下:
—enable-libopencore-amrnb 支持amr-nb(8000 采樣率) 讀寫
—enable-libopencore-amrwb 支持amr-wb(16000 采樣率) 讀取
—enable-libvo-amrwbenc 支持amr-wb(16000 采樣率) 寫入
—enable-libmp3lame 支持mp3 寫入
ffmpeg -codecs 可以查看所有的格式:
D..... = Decoding supported # 讀取
.E.... = Encoding supported # 寫入
..A... = Audio codec # 音頻編碼
....L. = Lossy compression # 有損
.....S = Lossless compression # 無損
DEA..S pcm_s16le PCM signed 16-bit little-endian
DEA.LS wavpack WavPack
DEA.L. mp3 MP3 (MPEG audio layer 3)
DEA.L. amr_nb AMR-NB (Adaptive Multi-Rate NarrowBand)
DEA.L. amr_wb AMR-WB (Adaptive Multi-Rate WideBand)
主要參數(shù)
-i 設(shè)定輸入流
-f 設(shè)定格式
-ss 開始時(shí)間
wav、mp3、amr格式都自帶頭部,包含采樣率、編碼、多聲道等信息。而pcm為原始音頻信息,沒有頭部信息。wav(pcm編碼)就是pcm文件加了wav的頭部信息。
輸入wav、mp3、amr:
-i audio.wav/audio.mp3/audio.amr
輸入pcm格式:pcm需要額外告知編碼格式,采樣率,單聲道信息
-f s16le -ac 1 -ar 16000 -i 16k.pcm //單聲道、16000采樣率、16bits編碼的pcm文件
音頻參數(shù)
-ar 設(shè)定采樣率
-ac 設(shè)定聲音的channel數(shù)
-acodec 設(shè)定聲音編解碼器,未設(shè)定時(shí)則使用與輸入流相同的編解碼器
-an 不處理音頻
-ab 設(shè)置比特率(單位:bit/s,也許老版是kb/s),前面ac設(shè)置為立體聲時(shí)要以一半的比特率來設(shè)置,比如192kbps的就設(shè)置為96,轉(zhuǎn)換默認(rèn)比特率都較小,要聽到高品質(zhì)聲音的話建議設(shè)到160kbps(80)以上。
在原始采樣率 大于或者接近16000的時(shí)候,推薦使用16000,8000采樣率會降低識別效果。
輸出wav和amr時(shí),如果沒有指定聲音編解碼器,則會選擇默認(rèn)的編碼器。
輸出pcm:
-f s16le -ac 1 -ar 16000 16k.pcm // 單聲道 16000 采樣率 16bits編碼 pcm文件
輸出wav:
-ar 1 -ar 16000 16k.wav //單聲道 16000 采樣率 16bits編碼 pcm編碼的wav文件
amr-nb:全稱是:Adaptive Multi-Rate,自適應(yīng)多速率,是一種音頻編碼文件格式,專用于有效地壓縮語音頻率。amr-nb格式只能選 8000采樣率。bit rates越高音質(zhì)越好,但是文件越大
bit rates 4.75k, 5.15k, 5.9k, 6.7k, 7.4k, 7.95k, 10.2k or 12.2k
輸出 amr-wb 格式,采樣率 16000。 bit rates越高音質(zhì)越好,但是文件越大。
6600 8850 12650 14250 15850 18250 19850 23050 23850
常用參數(shù)
-y 覆蓋同名文件
-v 日志輸出 基本如-v ERROR -v quiet等
轉(zhuǎn)換命令示例
ffmpeg {常用參數(shù)} {輸入音頻參數(shù)} {輸出音頻參數(shù)}
- wav 文件轉(zhuǎn) 16k 16bits 位深的單聲道pcm文件
ffmpeg -y -i 16k.wav -acodec pcm_s16le -f s16le -ac 1 -ar 16000 16k.pcm
ffmpeg -y -f s16le -ar 16000 -ac 1 -acodec pcm_s16le 16k.pcm 16k.wav
- m4a文件轉(zhuǎn)16k 16bits 位深的單聲道pcm文件
D:\ffmpeg\bin>ffmpeg -y -i test.m4a -acodec pcm_s16le -f s16le -ac 1 -ar 16000 16k.pcm
常用語言 Demo
Java 示例
語音翻譯 Java demo
Python3 示例
語音翻譯 python demo
C#示例
語音翻譯 c# demo
PHP 示例
語音翻譯 php demo
go 示例
語音翻譯 go demo