文本翻譯 API 簡介
概念解釋
文本翻譯:將一段源語言文本轉(zhuǎn)換成目標(biāo)語言文本,可根據(jù)語言參數(shù)的不同實現(xiàn)多國語言之間的互譯。
智云上線了領(lǐng)域化翻譯,目前支持領(lǐng)域有計算機(jī)、金融、醫(yī)學(xué)和游戲四個領(lǐng)域;支持語種是中英雙向;
說明
Hi,您好,歡迎使用有道智云文本翻譯API接口服務(wù)。如果您想快速體驗服務(wù),建議您前往翻譯體驗中心 或者在體驗中心右下側(cè)找到小程序二維碼,掃描進(jìn)行體驗。
本文檔主要針對需要集成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)用密鑰
,請按照新手指南 獲取。
- 平臺向每個賬戶贈送50元的體驗金,供用戶集成前測試所用,具體資費規(guī)則詳見 文本翻譯服務(wù)報價 。
接口說明
文本翻譯API接口提供有道的翻譯服務(wù),包含了中英翻譯和小語種翻譯功能。您只需要通過調(diào)用文本翻譯API,傳入待翻譯的內(nèi)容,并指定要翻譯的源語言(支持源語言語種自動檢測)和目標(biāo)語言種類,就可以得到相應(yīng)的翻譯結(jié)果。
文本翻譯API HTTPS地址:
https://openapi.youdao.com/api
協(xié)議須知
調(diào)用方在集成文本翻譯API時,請遵循以下規(guī)則。
規(guī)則 |
描述 |
傳輸方式 |
HTTPS |
請求方式 |
GET/POST |
字符編碼 |
統(tǒng)一使用UTF-8 編碼 |
請求格式 |
表單 |
響應(yīng)格式 |
JSON |
接口調(diào)用參數(shù)
調(diào)用API需要向接口發(fā)送以下字段來訪問服務(wù)。
字段名 |
類型 |
含義 |
必填 |
備注 |
q |
text |
待翻譯文本 |
True |
必須是UTF-8編碼 |
from |
text |
源語言 |
True |
參考下方 支持語言 (可設(shè)置為auto) |
to |
text |
目標(biāo)語言 |
True |
參考下方 支持語言 |
appKey |
text |
應(yīng)用ID |
True |
可在應(yīng)用管理 查看 |
salt |
text |
隨機(jī)字符串,可使用UUID進(jìn)行生產(chǎn) |
True |
uuid (可使用uuid生成) |
sign |
text |
簽名 |
True |
sha256(應(yīng)用ID+input+salt+curtime+應(yīng)用密鑰) |
signType |
text |
簽名類型 |
True |
v3 |
curtime |
text |
當(dāng)前UTC時間戳(秒) |
true |
TimeStamp |
ext |
text |
翻譯結(jié)果音頻格式,支持mp3 |
false |
mp3 |
voice |
text |
翻譯結(jié)果發(fā)音選擇 |
false |
0為女聲,1為男聲。默認(rèn)為女聲 |
strict |
text |
是否嚴(yán)格按照指定from和to進(jìn)行翻譯:true/false |
false |
如果為false,則會自動中譯英,英譯中。默認(rèn)為false |
vocabId |
text |
用戶上傳的術(shù)語表 |
false |
用戶指定的術(shù)語表ID: out_id,支持英中互譯,更多語種方向請前往控制臺查詢 |
domain |
text |
領(lǐng)域化翻譯 |
false |
默認(rèn)為:general。僅在控制臺開通領(lǐng)域化翻譯的情況下可傳,支持領(lǐng)域見下表 |
rejectFallback |
text |
拒絕領(lǐng)域化翻譯降級-當(dāng)領(lǐng)域化翻譯失敗時改為通用翻譯 |
false |
true或false,默認(rèn)為:false。僅在控制臺開通領(lǐng)域化翻譯的情況生效。 |
簽名生成方法如下:
signType=v3;
sign=sha256(應(yīng)用ID
+input
+salt
+curtime
+應(yīng)用密鑰
);
其中,input的計算方式為:input
=q前10個字符
+ q長度
+ q后10個字符
(當(dāng)q長度大于20)或 input
=q字符串
(當(dāng)q長度小于等于20);
注意:
- voice 沒有男聲的,會輸出女聲。
- 發(fā)音需要在控制臺創(chuàng)建tts實例,并綁定應(yīng)用才能使用,否則點擊發(fā)音會報110錯誤。
- 接口salt+curtime來防重放(即一個請求不可以被請求2次),所以salt最好為UUID。
不同語言獲取時間戳,請參看此鏈接
如果對簽名有疑問,可以參看各語言demo。
用戶術(shù)語表使用
登錄控制臺,選擇文本翻譯服務(wù),點擊右側(cè)的術(shù)語表,選擇新建,填寫表名稱和語言方向,添加需要的術(shù)語表,然后獲取對應(yīng)詞表id即可。
領(lǐng)域模型使用
對專業(yè)或者學(xué)術(shù)有要求的翻譯場景,開通方式如下:
登錄控制臺,選擇文本翻譯服務(wù),勾選下面的領(lǐng)域翻譯服務(wù),點擊保存即可開通使用。
模型支持的領(lǐng)域
取值 |
含義 |
general |
通用(默認(rèn)取值) |
computers |
計算機(jī) |
medicine |
醫(yī)學(xué) |
finance |
金融經(jīng)濟(jì) |
game |
游戲 |
輸出結(jié)果
返回的結(jié)果是json格式,包含字段與FROM和TO的值有關(guān),具體說明如下:
字段名 |
類型 |
含義 |
備注 |
errorCode |
text |
錯誤返回碼 |
一定存在 |
query |
text |
源語言 |
查詢正確時,一定存在 |
translation |
Array |
翻譯結(jié)果 |
查詢正確時,一定存在 |
l |
text |
源語言和目標(biāo)語言 |
一定存在 |
dict |
text |
詞典deeplink |
查詢語種為支持語言時,存在 |
webdict |
text |
webdeeplink |
查詢語種為支持語言時,存在 |
tSpeakUrl |
text |
翻譯結(jié)果發(fā)音地址 |
翻譯成功一定存在,需要應(yīng)用綁定語音合成服務(wù)才能正常播放 否則返回110錯誤碼 |
speakUrl |
text |
源語言發(fā)音地址 |
翻譯成功一定存在,需要應(yīng)用綁定語音合成服務(wù)才能正常播放 否則返回110錯誤碼 |
示例
使用good單詞查詢作為示例進(jìn)行說明:
輸出結(jié)果與FROM和TO的值有關(guān):
1. 當(dāng)FROM和TO的值都在{zh-CHS, EN}范圍內(nèi)時
{
"errorCode":"0",
"query":"good", //查詢正確時,一定存在
"isDomainSupport":"true", //翻譯結(jié)果是否為領(lǐng)域翻譯(僅開通領(lǐng)域翻譯時存在)
"translation": [ //查詢正確時一定存在
"好"
],
"dict":{
"url":"yddict://m.youdao.com/dict?le=eng&q=good"
},
"webdict":{
"url":"http://m.youdao.com/dict?le=eng&q=good"
},
"l":"EN2zh-CHS",
"tSpeakUrl":"XXX",//翻譯后的發(fā)音地址
"speakUrl": "XXX" //查詢文本的發(fā)音地址
}
2. 當(dāng)FROM和TO的值有在{zh-CHS, EN}范圍外的時候
{
"errorCode": "0",
"translation": ["大丈夫です"], //小語種翻譯,一定存在
"dict":{
"url":"yddict://m.youdao.com/dict?le=jap&q=%E6%B2%A1%E5%85%B3%E7%B3%BB%E3%80%82"
},
"webdict":{
"url":"http://m.youdao.com/dict?le=jap&q=%E6%B2%A1%E5%85%B3%E7%B3%BB%E3%80%82"
},
"l":"zh-CHS2ja",
"tSpeakUrl":"XXX", //翻譯后的發(fā)音地址
"speakUrl": "XXX" //查詢文本的發(fā)音地址
}
支持語言
下表為各語言對應(yīng)代碼:
英文名 |
中文名 |
代碼 |
Arabic |
阿拉伯語 |
ar |
German |
德語 |
de |
English |
英語 |
en |
Spanish |
西班牙語 |
es |
French |
法語 |
fr |
Hindi |
印地語 |
hi |
Indonesian |
印度尼西亞語 |
id |
Italian |
意大利語 |
it |
Japanese |
日語 |
ja |
Korean |
韓語 |
ko |
Dutch |
荷蘭語 |
nl |
Portuguese |
葡萄牙語 |
pt |
Russian |
俄語 |
ru |
hai |
泰語 |
th |
Vietnamese |
越南語 |
vi |
Chinese |
簡體中文 |
zh-CHS |
Chinese |
繁體中文 |
zh-CHT |
Afrikaans |
南非荷蘭語 |
af |
Amharic |
阿姆哈拉語 |
am |
Azeerbaijani |
阿塞拜疆語 |
az |
Belarusian |
白俄羅斯語 |
be |
Bulgarian |
保加利亞語 |
bg |
Bangla |
孟加拉語 |
bn |
Bosnian (Latin) |
波斯尼亞語 |
bs |
Catalan |
加泰隆語 |
ca |
Cebuano |
宿務(wù)語 |
ceb |
Corsican |
科西嘉語 |
co |
Czech |
捷克語 |
cs |
Welsh |
威爾士語 |
cy |
Danish |
丹麥語 |
da |
Greek |
希臘語 |
el |
Esperanto |
世界語 |
eo |
Estonian |
愛沙尼亞語 |
et |
Basque |
巴斯克語 |
eu |
Persian |
波斯語 |
fa |
Finnish |
芬蘭語 |
fi |
Fijian |
斐濟(jì)語 |
fj |
Frisian |
弗里西語 |
fy |
Irish |
愛爾蘭語 |
ga |
Scots |
蘇格蘭蓋爾語 |
gd |
Galician |
加利西亞語 |
gl |
Gujarati |
古吉拉特語 |
gu |
Hausa |
豪薩語 |
ha |
Hawaiian |
夏威夷語 |
haw |
Hebrew |
希伯來語 |
he |
Hindi |
印地語 |
hi |
Croatian |
克羅地亞語 |
hr |
Haitian |
海地克里奧爾語 |
ht |
Hungarian |
匈牙利語 |
hu |
Armenian |
亞美尼亞語 |
hy |
Igbo |
伊博語 |
ig |
Icelandic |
冰島語 |
is |
Javanese |
爪哇語 |
jw |
Georgian |
格魯吉亞語 |
ka |
Kazakh |
哈薩克語 |
kk |
Khmer |
高棉語 |
km |
Kannada |
卡納達(dá)語 |
kn |
Kurdish |
庫爾德語 |
ku |
Kyrgyz |
柯爾克孜語 |
ky |
Latin |
拉丁語 |
la |
Luxembourgish |
盧森堡語 |
lb |
Lao |
老撾語 |
lo |
Lithuanian |
立陶宛語 |
lt |
Latvian |
拉脫維亞語 |
lv |
Malagasy |
馬爾加什語 |
mg |
Maori |
毛利語 |
mi |
Macedonian |
馬其頓語 |
mk |
Malayalam |
馬拉雅拉姆語 |
ml |
Mongolian |
蒙古語 |
mn |
Marathi |
馬拉地語 |
mr |
Malay |
馬來語 |
ms |
Maltese |
馬耳他語 |
mt |
Hmong |
白苗語 |
mww |
Myanmar (Burmese) |
緬甸語 |
my |
Nepali |
尼泊爾語 |
ne |
Dutch |
荷蘭語 |
nl |
Norwegian |
挪威語 |
no |
Nyanja (Chichewa) |
齊切瓦語 |
ny |
Querétaro Otomi |
克雷塔羅奧托米語 |
otq |
Punjabi |
旁遮普語 |
pa |
Polish |
波蘭語 |
pl |
Pashto |
普什圖語 |
ps |
Romanian |
羅馬尼亞語 |
ro |
Sindhi |
信德語 |
sd |
Sinhala (Sinhalese) |
僧伽羅語 |
si |
Slovak |
斯洛伐克語 |
sk |
Slovenian |
斯洛文尼亞語 |
sl |
Samoan |
薩摩亞語 |
sm |
Shona |
修納語 |
sn |
Somali |
索馬里語 |
so |
Albanian |
阿爾巴尼亞語 |
sq |
Serbian (Cyrillic) |
塞爾維亞語(西里爾文) |
sr-Cyrl |
Serbian (Latin) |
塞爾維亞語(拉丁文) |
sr-Latn |
Sesotho |
塞索托語 |
st |
Sundanese |
巽他語 |
su |
Swedish |
瑞典語 |
sv |
Kiswahili |
斯瓦希里語 |
sw |
Tamil |
泰米爾語 |
ta |
Telugu |
泰盧固語 |
te |
Tajik |
塔吉克語 |
tg |
Filipino |
菲律賓語 |
tl |
Klingon |
克林貢語 |
tlh |
Tongan |
湯加語 |
to |
Turkish |
土耳其語 |
tr |
Tahitian |
塔希提語 |
ty |
Ukrainian |
烏克蘭語 |
uk |
Urdu |
烏爾都語 |
ur |
Uzbek |
烏茲別克語 |
uz |
Xhosa |
南非科薩語 |
xh |
Yiddish |
意第緒語 |
yi |
Yoruba |
約魯巴語 |
yo |
Yucatec |
尤卡坦瑪雅語 |
yua |
Cantonese (Traditional) |
粵語 |
yue |
Zulu |
南非祖魯語 |
zu |
|
自動識別 |
auto |
注意:
其中auto可以識別中文、英文、日文、韓文、法文、西班牙文、葡萄牙文、俄文、越南文、德文、阿拉伯文、印尼文、意大利文,其他語種無法識別,為提高準(zhǔn)確率,請指定語種。
若列表語言出現(xiàn)不支持的問題,請參考產(chǎn)品定價列表語種互譯的限制
服務(wù)配置
單次查詢最大字符數(shù) |
每小時最大查詢次數(shù) |
每小時最大查詢字符數(shù) |
支持語言 |
5000 |
100萬 |
120萬 |
詳見語種表 |
錯誤代碼列表
錯誤碼 |
含義 |
101 |
缺少必填的參數(shù),首先確保必填參數(shù)齊全,然后確認(rèn)參數(shù)書寫是否正確。 |
102 |
不支持的語言類型 |
103 |
翻譯文本過長 |
104 |
不支持的API類型 |
105 |
不支持的簽名類型 |
106 |
不支持的響應(yīng)類型 |
107 |
不支持的傳輸加密類型 |
108 |
應(yīng)用ID無效,注冊賬號,登錄后臺創(chuàng)建應(yīng)用并完成綁定,可獲得應(yīng)用ID和應(yīng)用密鑰等信息 |
109 |
batchLog格式不正確 |
110 |
無相關(guān)服務(wù)的有效應(yīng)用,應(yīng)用沒有綁定服務(wù)應(yīng)用,可以新建服務(wù)應(yīng)用。注:某些服務(wù)的翻譯結(jié)果發(fā)音需要tts服務(wù),需要在控制臺創(chuàng)建語音合成服務(wù)綁定應(yīng)用后方能使用。 |
111 |
開發(fā)者賬號無效 |
112 |
請求服務(wù)無效 |
113 |
q不能為空 |
114 |
不支持的圖片傳輸方式 |
116 |
strict字段取值無效,請參考文檔填寫正確參數(shù)值 |
201 |
解密失敗,可能為DES,BASE64,URLDecode的錯誤 |
202 |
簽名檢驗失敗,如果確認(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 |
因為時間戳無效導(dǎo)致簽名校驗失敗 |
207 |
重放請求 (接口salt+curtime來防重放(即一個請求不可以被請求2次),所以salt最好為UUID。) |
301 |
辭典查詢失敗 |
302 |
翻譯查詢失敗 |
303 |
服務(wù)端的其它異常 |
304 |
翻譯失敗,請聯(lián)系技術(shù)同學(xué) |
308 |
rejectFallback參數(shù)錯誤 |
309 |
domain參數(shù)錯誤 |
310 |
未開通領(lǐng)域翻譯服務(wù) |
401 |
賬戶已經(jīng)欠費,請進(jìn)行賬戶充值 |
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 |
識別音頻時長過長 |
3009 |
不支持的音頻文件類型 |
3010 |
不支持的發(fā)音類型 |
3201 |
解密失敗 |
3301 |
語音識別失敗 |
3302 |
語音翻譯失敗 |
3303 |
服務(wù)的異常 |
3411 |
訪問頻率受限,請稍后訪問 |
3412 |
超過最大請求字符數(shù) |
4001 |
不支持的語音識別格式 |
4002 |
不支持的語音識別采樣率 |
4003 |
不支持的語音識別聲道 |
4004 |
不支持的語音上傳類型 |
4005 |
不支持的語言類型 |
4006 |
識別音頻文件過大 |
4007 |
識別音頻時長過長 |
4201 |
解密失敗 |
4301 |
語音識別失敗 |
4303 |
服務(wù)的異常 |
4411 |
訪問頻率受限,請稍后訪問 |
4412 |
超過最大請求時長 |
5001 |
無效的OCR類型 |
5002 |
不支持的OCR image類型 |
5003 |
不支持的語言類型 |
5004 |
識別圖片過大 |
5005 |
不支持的圖片類型 |
5006 |
文件為空 |
5201 |
解密錯誤,圖片base64解密失敗 |
5301 |
OCR段落識別失敗 |
5411 |
訪問頻率受限 |
5412 |
超過最大識別流量 |
9001 |
不支持的語音格式 |
9002 |
不支持的語音采樣率 |
9003 |
不支持的語音聲道 |
9004 |
不支持的語音上傳類型 |
9005 |
不支持的語音識別 Language類型 |
9301 |
ASR識別失敗 |
9303 |
服務(wù)器內(nèi)部錯誤 |
9411 |
訪問頻率受限(超過最大調(diào)用次數(shù)) |
9412 |
超過最大處理語音長度 |
10001 |
無效的OCR類型 |
10002 |
不支持的OCR image類型 |
10004 |
識別圖片過大 |
10201 |
圖片base64解密失敗 |
10301 |
OCR段落識別失敗 |
10411 |
訪問頻率受限 |
10412 |
超過最大識別流量 |
11001 |
不支持的語音識別格式 |
11002 |
不支持的語音識別采樣率 |
11003 |
不支持的語音識別聲道 |
11004 |
不支持的語音上傳類型 |
11005 |
不支持的語言類型 |
11006 |
識別音頻文件過大 |
11007 |
識別音頻時長過長,最大支持30s |
11201 |
解密失敗 |
11301 |
語音識別失敗 |
11303 |
服務(wù)的異常 |
11411 |
訪問頻率受限,請稍后訪問 |
11412 |
超過最大請求時長 |
12001 |
圖片尺寸過大 |
12002 |
圖片base64解密失敗 |
12003 |
引擎服務(wù)器返回錯誤 |
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)用失敗 |
版本更新記錄
上線日期 |
版本號 |
更新內(nèi)容 |
2019.04.22 |
v1.0.0 |
新增中文與意大利文、英文與日文互譯;新增單詞校驗邏輯,對于輸入單詞大小寫混合返回小寫單詞、單詞前面存在符號時返回去符號單詞、中文繁體返回純簡體內(nèi)容。 |
2023.05.11 |
v2.0.0 |
更新多語言示例 demo及下載鏈接 |
2024.04.22 |
v3.0.0 |
下線接口內(nèi)相關(guān)的詞典數(shù)據(jù)內(nèi)容 |
常用語言 Demo
Java 示例
文本翻譯 Java demo
Python3 示例
文本翻譯 python3 demo
C#示例
文本翻譯 c# demo
PHP 示例
文本翻譯 php demo
go 示例
文本翻譯 go demo
注:其他開發(fā)語言請參照 接口API文檔 進(jìn)行開發(fā),也歡迎企業(yè)咨詢來提出你們需要的demo。
JS demo
<!doctype html>
<head>
<meta charset="utf-8"/>
</head>
<body>
<div>可打開瀏覽器控制臺查看結(jié)果</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/crypto-js/4.0.0/crypto-js.js"></script>
<script type="text/javascript">
var appKey = '';
var key = '';//注意:暴露appSecret,有被盜用造成損失的風(fēng)險
var salt = (new Date).getTime();
var curtime = Math.round(new Date().getTime()/1000);
var query = '您好,歡迎再次使用有道智云文本翻譯API接口服務(wù)';
// 多個query可以用\n連接 如 query='apple\norange\nbanana\npear'
var from = 'zh-CHS';
var to = 'en';
var str1 = appKey + truncate(query) + salt + curtime + key;
var vocabId = '您的用戶詞表ID';
//console.log('---',str1);
var sign = CryptoJS.SHA256(str1).toString(CryptoJS.enc.Hex);
$.ajax({
url: 'https://openapi.youdao.com/api',
type: 'post',
dataType: 'jsonp',
data: {
q: query,
appKey: appKey,
salt: salt,
from: from,
to: to,
sign: sign,
signType: "v3",
curtime: curtime,
vocabId: vocabId,
},
success: function (data) {
console.log(data);
}
});
function truncate(q){
var len = q.length;
if(len<=20) return q;
return q.substring(0, 10) + len + q.substring(len-10, len);
}
</script>
</body>