 
			文本翻譯:將一段源語言文本轉換成目標語言文本,可根據語言參數的不同實現多國語言之間的互譯。
智云上線了領域化翻譯,目前支持領域有計算機、金融、醫學和游戲四個領域;支持語種是中英雙向;
Hi,您好,歡迎使用有道智云文本翻譯API接口服務。如果您想快速體驗服務,建議您前往翻譯體驗中心 或者在體驗中心右下側找到小程序二維碼,掃描進行體驗。
本文檔主要針對需要集成HTTP API的技術開發工程師,詳細描述文本翻譯能力相關的技術內容。
如果您有與我們商務合作的需求,可以通過以下方式聯系我們:
商務郵箱: AIcloud_Business@corp.youdao.com
如果您對文檔內容有任何疑問,可以通過以下幾種方式聯系我們:
客服QQ:1906538062
智云翻譯技術交流QQ 1群: 652880659
智云翻譯技術交流QQ 2群: 669384425
智云翻譯技術交流QQ 3群: 807539209
智云翻譯技術交流QQ 4群: 936752411
聯系郵箱: zhiyun@corp.youdao.com
溫馨提示:
文本翻譯API接口提供有道的翻譯服務,包含了中英翻譯和小語種翻譯功能。您只需要通過調用文本翻譯API,傳入待翻譯的內容,并指定要翻譯的源語言(支持源語言語種自動檢測)和目標語言種類,就可以得到相應的翻譯結果。
文本翻譯API HTTPS地址:
https://openapi.youdao.com/api
調用方在集成文本翻譯API時,請遵循以下規則。
| 規則 | 描述 | 
|---|---|
| 傳輸方式 | HTTPS | 
| 請求方式 | GET/POST | 
| 字符編碼 | 統一使用UTF-8 編碼 | 
| 請求格式 | 表單 | 
| 響應格式 | JSON | 
調用API需要向接口發送以下字段來訪問服務。
| 字段名 | 類型 | 含義 | 必填 | 備注 | 
|---|---|---|---|---|
| q | text | 待翻譯文本 | True | 必須是UTF-8編碼(注:一些http庫,例如:libcurl,可能需要顯示對此參數進行url編碼) | 
| from | text | 源語言 | True | 參考下方 支持語言 (可設置為auto) | 
| to | text | 目標語言 | True | 參考下方 支持語言 | 
| appKey | text | 應用ID | True | 可在應用管理 查看 | 
| salt | text | 隨機字符串,可使用UUID進行生產 | True | uuid (可使用uuid生成) | 
| sign | text | 簽名 | True | sha256(應用ID+input+salt+curtime+應用密鑰) | 
| signType | text | 簽名類型 | True | v3 | 
| curtime | text | 當前UTC時間戳(秒) | true | TimeStamp | 
| ext | text | 翻譯結果音頻格式,支持mp3 | false | mp3 | 
| voice | text | 翻譯結果發音選擇 | false | 0為女聲,1為男聲。默認為女聲 | 
| strict | text | 是否嚴格按照指定from和to進行翻譯:true/false | false | 如果為false,則會自動中譯英,英譯中。默認為false | 
| vocabId | text | 用戶上傳的術語表 | false | 用戶指定的術語表ID: out_id,支持英中互譯,更多語種方向請前往控制臺查詢 | 
| domain | text | 領域化翻譯 | false | 默認為:general。僅在控制臺開通領域化翻譯的情況下可傳,支持領域見下表 | 
| rejectFallback | text | 拒絕領域化翻譯降級-當領域化翻譯失敗時改為通用翻譯 | false | true或false,默認為:false。僅在控制臺開通領域化翻譯的情況生效。 | 
簽名生成方法如下: signType=v3; sign=sha256(
應用ID+input+salt+curtime+應用密鑰); 其中,input的計算方式為:input=q前10個字符+q長度+q后10個字符(當q長度大于20)或input=q字符串(當q長度小于等于20);
注意:
不同語言獲取時間戳,請參看此鏈接
如果對簽名有疑問,可以參看各語言demo。
登錄控制臺,選擇文本翻譯服務,點擊右側的術語表,選擇新建,填寫表名稱和語言方向,添加需要的術語表,然后獲取對應詞表id即可。
對專業或者學術有要求的翻譯場景,開通方式如下: 登錄控制臺,選擇文本翻譯服務,勾選下面的領域翻譯服務,點擊保存即可開通使用。
| 取值 | 含義 | 
|---|---|
| general | 通用(默認取值) | 
| computers | 計算機 | 
| medicine | 醫學 | 
| finance | 金融經濟 | 
| game | 游戲 | 
返回的結果是json格式,包含字段與FROM和TO的值有關,具體說明如下:
| 字段名 | 類型 | 含義 | 備注 | 
|---|---|---|---|
| errorCode | text | 錯誤返回碼 | 一定存在 | 
| query | text | 源語言 | 查詢正確時,一定存在 | 
| translation | Array | 翻譯結果 | 查詢正確時,一定存在 | 
| l | text | 源語言和目標語言 | 一定存在 | 
| dict | text | 詞典deeplink | 查詢語種為支持語言時,存在 | 
| webdict | text | webdeeplink | 查詢語種為支持語言時,存在 | 
| tSpeakUrl | text | 翻譯結果發音地址 | 翻譯成功一定存在,需要應用綁定語音合成服務才能正常播放 否則返回110錯誤碼 | 
| speakUrl | text | 源語言發音地址 | 翻譯成功一定存在,需要應用綁定語音合成服務才能正常播放 否則返回110錯誤碼 | 
使用good單詞查詢作為示例進行說明:
輸出結果與FROM和TO的值有關:
1. 當FROM和TO的值都在{zh-CHS, EN}范圍內時
{
  "errorCode":"0",
  "query":"good", //查詢正確時,一定存在
  "isDomainSupport":"true", //翻譯結果是否為領域翻譯(僅開通領域翻譯時存在)
  "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",//翻譯后的發音地址
  "speakUrl": "XXX" //查詢文本的發音地址
}
2. 當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", //翻譯后的發音地址
   "speakUrl": "XXX"  //查詢文本的發音地址
}
下表為各語言對應代碼:
| 英文名 | 中文名 | 代碼 | 支持自動識別 | 
|---|---|---|---|
| Arabic | 阿拉伯語 | ar | Y | 
| German | 德語 | de | Y | 
| English | 英語 | en | Y | 
| Spanish | 西班牙語 | es | Y | 
| French | 法語 | fr | Y | 
| Hindi | 印地語 | hi | Y | 
| Indonesian | 印度尼西亞語 | id | Y | 
| Italian | 意大利語 | it | Y | 
| Japanese | 日語 | ja | Y | 
| Korean | 韓語 | ko | Y | 
| Dutch | 荷蘭語 | nl | Y | 
| Portuguese | 葡萄牙語 | pt | Y | 
| Russian | 俄語 | ru | Y | 
| Thai | 泰語 | th | Y | 
| Vietnamese | 越南語 | vi | Y | 
| Chinese | 簡體中文 | zh-CHS | Y | 
| Chinese | 繁體中文 | zh-CHT | Y | 
| Afrikaans | 南非荷蘭語 | af | Y | 
| Amharic | 阿姆哈拉語 | am | N | 
| Azerbaijani | 阿塞拜疆語 | az | Y | 
| Belarusian | 白俄羅斯語 | be | Y | 
| Bulgarian | 保加利亞語 | bg | Y | 
| Bangla | 孟加拉語 | bn | Y | 
| Bosnian (Latin) | 波斯尼亞語 | bs | Y | 
| Catalan | 加泰隆語 | ca | Y | 
| Cebuano | 宿務語 | ceb | N | 
| Corsican | 科西嘉語 | co | N | 
| Czech | 捷克語 | cs | Y | 
| Welsh | 威爾士語 | cy | Y | 
| Danish | 丹麥語 | da | Y | 
| Greek | 希臘語 | el | Y | 
| Esperanto | 世界語 | eo | Y | 
| Estonian | 愛沙尼亞語 | et | Y | 
| Basque | 巴斯克語 | eu | Y | 
| Persian | 波斯語 | fa | Y | 
| Finnish | 芬蘭語 | fi | Y | 
| Fijian | 斐濟語 | fj | N | 
| Frisian | 弗里西語 | fy | Y | 
| Irish | 愛爾蘭語 | ga | Y | 
| Scots | 蘇格蘭蓋爾語 | gd | N | 
| Galician | 加利西亞語 | gl | Y | 
| Gujarati | 古吉拉特語 | gu | Y | 
| Hausa | 豪薩語 | ha | N | 
| Hawaiian | 夏威夷語 | haw | N | 
| Hebrew | 希伯來語 | he | Y | 
| Hindi | 印地語 | hi | Y | 
| Croatian | 克羅地亞語 | hr | Y | 
| Haitian | 海地克里奧爾語 | ht | Y | 
| Hungarian | 匈牙利語 | hu | Y | 
| Armenian | 亞美尼亞語 | hy | N | 
| Igbo | 伊博語 | ig | N | 
| Icelandic | 冰島語 | is | Y | 
| Javanese | 爪哇語 | jw | N | 
| Georgian | 格魯吉亞語 | ka | N | 
| Kazakh | 哈薩克語 | kk | Y | 
| Khmer | 高棉語 | km | Y | 
| Kannada | 卡納達語 | kn | Y | 
| Kurdish | 庫爾德語 | ku | N | 
| Kyrgyz | 柯爾克孜語 | ky | Y | 
| Latin | 拉丁語 | la | Y | 
| Luxembourgish | 盧森堡語 | lb | Y | 
| Lao | 老撾語 | lo | Y | 
| Lithuanian | 立陶宛語 | lt | Y | 
| Latvian | 拉脫維亞語 | lv | Y | 
| Malagasy | 馬爾加什語 | mg | N | 
| Maori | 毛利語 | mi | N | 
| Macedonian | 馬其頓語 | mk | Y | 
| Malayalam | 馬拉雅拉姆語 | ml | Y | 
| Mongolian | 蒙古語 | mn | Y | 
| Marathi | 馬拉地語 | mr | Y | 
| Malay | 馬來語 | ms | Y | 
| Maltese | 馬耳他語 | mt | Y | 
| Hmong | 白苗語 | mww | N | 
| Myanmar (Burmese) | 緬甸語 | my | Y | 
| Nepali | 尼泊爾語 | ne | Y | 
| Dutch | 荷蘭語 | nl | Y | 
| Norwegian | 挪威語 | no | Y | 
| Nyanja (Chichewa) | 齊切瓦語 | ny | N | 
| Querétaro Otomi | 克雷塔羅奧托米語 | otq | N | 
| Punjabi | 旁遮普語 | pa | Y | 
| Polish | 波蘭語 | pl | Y | 
| Pashto | 普什圖語 | ps | Y | 
| Romanian | 羅馬尼亞語 | ro | Y | 
| Sindhi | 信德語 | sd | Y | 
| Sinhala (Sinhalese) | 僧伽羅語 | si | N | 
| Slovak | 斯洛伐克語 | sk | Y | 
| Slovenian | 斯洛文尼亞語 | sl | Y | 
| Samoan | 薩摩亞語 | sm | N | 
| Shona | 修納語 | sn | N | 
| Somali | 索馬里語 | so | Y | 
| Albanian | 阿爾巴尼亞語 | sq | Y | 
| Serbian (Cyrillic) | 塞爾維亞語(西里爾文) | sr-Cyrl | Y | 
| Serbian (Latin) | 塞爾維亞語(拉丁文) | sr-Latn | Y | 
| Sesotho | 塞索托語 | st | N | 
| Sundanese | 巽他語 | su | Y | 
| Swedish | 瑞典語 | sv | Y | 
| Kiswahili | 斯瓦希里語 | sw | Y | 
| Tamil | 泰米爾語 | ta | Y | 
| Telugu | 泰盧固語 | te | Y | 
| Tajik | 塔吉克語 | tg | Y | 
| Filipino | 菲律賓語 | tl | Y | 
| Klingon | 克林貢語 | tlh | N | 
| Tongan | 湯加語 | to | N | 
| Turkish | 土耳其語 | tr | Y | 
| Tahitian | 塔希提語 | ty | N | 
| Ukrainian | 烏克蘭語 | uk | Y | 
| Urdu | 烏爾都語 | ur | N | 
| Uzbek | 烏茲別克語 | uz | Y | 
| Xhosa | 南非科薩語 | xh | N | 
| Yiddish | 意第緒語 | yi | Y | 
| Yoruba | 約魯巴語 | yo | Y | 
| Yucatec | 尤卡坦瑪雅語 | yua | N | 
| Cantonese (Traditional) | 粵語 | yue | N | 
| Zulu | 南非祖魯語 | zu | N | 
| 自動識別 | auto | - | 
| 單次查詢最大字符數 | 每小時最大查詢次數 | 每小時最大查詢字符數 | 支持語言 | 
|---|---|---|---|
| 5000 | 100萬 | 120萬 | 詳見語種表 | 
| 錯誤碼 | 含義 | 
|---|---|
| 101 | 缺少必填的參數,首先確保必填參數齊全,然后確認參數書寫是否正確。 | 
| 102 | 不支持的語言類型 | 
| 103 | 翻譯文本過長 | 
| 104 | 不支持的API類型 | 
| 105 | 不支持的簽名類型 | 
| 106 | 不支持的響應類型 | 
| 107 | 不支持的傳輸加密類型 | 
| 108 | 應用ID無效,注冊賬號,登錄后臺創建應用并完成綁定,可獲得應用ID和應用密鑰等信息 | 
| 109 | batchLog格式不正確 | 
| 110 | 無相關服務的有效應用,應用沒有綁定服務應用,可以新建服務應用。注:某些服務的翻譯結果發音需要tts服務,需要在控制臺創建語音合成服務綁定應用后方能使用。 | 
| 111 | 開發者賬號無效 | 
| 112 | 請求服務無效 | 
| 113 | q不能為空 | 
| 114 | 不支持的圖片傳輸方式 | 
| 116 | strict字段取值無效,請參考文檔填寫正確參數值 | 
| 201 | 解密失敗,可能為DES,BASE64,URLDecode的錯誤 | 
| 202 | 簽名檢驗失敗,如果確認應用ID和應用密鑰的正確性,仍返回202,一般是編碼問題。請確保翻譯文本 q為UTF-8編碼. | 
| 203 | 訪問IP地址不在可訪問IP列表 | 
| 205 | 請求的接口與應用的平臺類型不一致,確保接入方式(Android SDK、IOS SDK、API)與創建的應用平臺類型一致。如有疑問請參考入門指南 | 
| 206 | 因為時間戳無效導致簽名校驗失敗 | 
| 207 | 重放請求 (接口salt+curtime來防重放(即一個請求不可以被請求2次),所以salt最好為UUID。) | 
| 301 | 辭典查詢失敗 | 
| 302 | 翻譯查詢失敗 | 
| 303 | 服務端的其它異常 | 
| 304 | 翻譯失敗,請聯系技術同學 | 
| 308 | rejectFallback參數錯誤 | 
| 309 | domain參數錯誤 | 
| 310 | 未開通領域翻譯服務 | 
| 401 | 賬戶已經欠費,請進行賬戶充值 | 
| 402 | offlinesdk不可用 | 
| 411 | 訪問頻率受限,請稍后訪問 | 
| 412 | 長請求過于頻繁,請稍后訪問 | 
| 1001 | 無效的OCR類型 | 
| 1002 | 不支持的OCR image類型 | 
| 1003 | 不支持的OCR Language類型 | 
| 1004 | 識別圖片過大 | 
| 1201 | 圖片base64解密失敗 | 
| 1301 | OCR段落識別失敗 | 
| 1411 | 訪問頻率受限 | 
| 1412 | 超過最大識別字節數 | 
| 2003 | 不支持的語言識別Language類型 | 
| 2004 | 合成字符過長 | 
| 2005 | 不支持的音頻文件類型 | 
| 2006 | 不支持的發音類型 | 
| 2201 | 解密失敗 | 
| 2301 | 服務的異常 | 
| 2411 | 訪問頻率受限,請稍后訪問 | 
| 2412 | 超過最大請求字符數 | 
| 3001 | 不支持的語音格式 | 
| 3002 | 不支持的語音采樣率 | 
| 3003 | 不支持的語音聲道 | 
| 3004 | 不支持的語音上傳類型 | 
| 3005 | 不支持的語言類型 | 
| 3006 | 不支持的識別類型 | 
| 3007 | 識別音頻文件過大 | 
| 3008 | 識別音頻時長過長 | 
| 3009 | 不支持的音頻文件類型 | 
| 3010 | 不支持的發音類型 | 
| 3201 | 解密失敗 | 
| 3301 | 語音識別失敗 | 
| 3302 | 語音翻譯失敗 | 
| 3303 | 服務的異常 | 
| 3411 | 訪問頻率受限,請稍后訪問 | 
| 3412 | 超過最大請求字符數 | 
| 4001 | 不支持的語音識別格式 | 
| 4002 | 不支持的語音識別采樣率 | 
| 4003 | 不支持的語音識別聲道 | 
| 4004 | 不支持的語音上傳類型 | 
| 4005 | 不支持的語言類型 | 
| 4006 | 識別音頻文件過大 | 
| 4007 | 識別音頻時長過長 | 
| 4201 | 解密失敗 | 
| 4301 | 語音識別失敗 | 
| 4303 | 服務的異常 | 
| 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 | 服務器內部錯誤 | 
| 9411 | 訪問頻率受限(超過最大調用次數) | 
| 9412 | 超過最大處理語音長度 | 
| 10001 | 無效的OCR類型 | 
| 10002 | 不支持的OCR image類型 | 
| 10004 | 識別圖片過大 | 
| 10201 | 圖片base64解密失敗 | 
| 10301 | OCR段落識別失敗 | 
| 10411 | 訪問頻率受限 | 
| 10412 | 超過最大識別流量 | 
| 11001 | 不支持的語音識別格式 | 
| 11002 | 不支持的語音識別采樣率 | 
| 11003 | 不支持的語音識別聲道 | 
| 11004 | 不支持的語音上傳類型 | 
| 11005 | 不支持的語言類型 | 
| 11006 | 識別音頻文件過大 | 
| 11007 | 識別音頻時長過長,最大支持30s | 
| 11201 | 解密失敗 | 
| 11301 | 語音識別失敗 | 
| 11303 | 服務的異常 | 
| 11411 | 訪問頻率受限,請稍后訪問 | 
| 11412 | 超過最大請求時長 | 
| 12001 | 圖片尺寸過大 | 
| 12002 | 圖片base64解密失敗 | 
| 12003 | 引擎服務器返回錯誤 | 
| 12004 | 圖片為空 | 
| 12005 | 不支持的識別圖片類型 | 
| 12006 | 圖片無匹配結果 | 
| 13001 | 不支持的角度類型 | 
| 13002 | 不支持的文件類型 | 
| 13003 | 表格識別圖片過大 | 
| 13004 | 文件為空 | 
| 13301 | 表格識別失敗 | 
| 15001 | 需要圖片 | 
| 15002 | 圖片過大(1M) | 
| 15003 | 服務調用失敗 | 
| 17001 | 需要圖片 | 
| 17002 | 圖片過大(1M) | 
| 17003 | 識別類型未找到 | 
| 17004 | 不支持的識別類型 | 
| 17005 | 服務調用失敗 | 
| 上線日期 | 版本號 | 更新內容 | 
|---|---|---|
| 2019.04.22 | v1.0.0 | 新增中文與意大利文、英文與日文互譯;新增單詞校驗邏輯,對于輸入單詞大小寫混合返回小寫單詞、單詞前面存在符號時返回去符號單詞、中文繁體返回純簡體內容。 | 
| 2023.05.11 | v2.0.0 | 更新多語言示例 demo及下載鏈接 | 
| 2024.04.22 | v3.0.0 | 下線接口內相關的詞典數據內容 | 
注:其他開發語言請參照 接口API文檔 進行開發,也歡迎企業咨詢來提出你們需要的demo。
<!doctype html>
<head>
    <meta charset="utf-8"/>
</head>
<body>
<div>可打開瀏覽器控制臺查看結果</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,有被盜用造成損失的風險
var salt = (new Date).getTime();
var curtime = Math.round(new Date().getTime()/1000);
var query = '您好,歡迎再次使用有道智云文本翻譯API接口服務';
// 多個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>