圖片翻譯:基于文字識別與文本翻譯技術,結合組段和渲染技術,滿足用戶翻譯圖片文字的需求,提升輸入效率。
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,傳入圖片的Base64編碼,指定源語言與目標語言,通過POST請求方式,就可以識別圖片中的文字并進行翻譯。
圖片翻譯 API HTTPS地址:
https://openapi.youdao.com/ocrtransapi
調用方在集成文本翻譯API時,請遵循以下規則。
規則 | 描述 |
---|---|
傳輸方式 | HTTPS |
請求方式 | POST |
字符編碼 | 統一使用UTF-8編碼 |
請求格式 | 表單 |
響應格式 | JSON |
調用API需要向接口發送以下字段來訪問服務。
字段名 | 類型 | 含義 | 必填 | 備注 |
---|---|---|---|---|
type | text | 文件上傳類型 | True | 目前支持Base64,請置該字段值為1 |
from | text | 源語言 | True | 參考下方的 支持語言 (可設置為auto) |
to | text | 目標語言 | True | 參考下方的 支持語言 (可設置為auto) |
appKey | text | 應用ID | True | 可在應用管理 查看 |
salt | text | UUID | True | uuid,唯一通用識別碼,例:1995882C5064805BC30A39829B779D7B |
sign | text | 簽名 | True | sha256(應用ID+input+salt+curtime+應用密鑰) |
signType | text | 簽名類型 | True | v3 |
curtime | text | 當前UTC時間戳(秒) | true | TimeStamp |
ext | text | 翻譯結果音頻格式,支持mp3 | false | mp3 |
q | text | 要識別的圖片 | true | type為1時必填,圖片的Base64編碼 |
docType | text | 服務器響應類型,目前只支持json | false | json |
render | text | 是否需要服務端返回渲染的圖片,0:否;1:是,默認是0 | false | 0 |
translateOption | text | 切換不同模型參數,0:NMT模型,不傳時取這個默認值;1:有道翻譯大模型pro版;2:有道翻譯大模型lite版 | false | 0 |
簽名生成方法如下: signType=v3; sign=sha256(
應用ID
+input
+salt
+curtime
+應用密鑰
); 其中,input的計算方式為:input
=q前10個字符
+q長度
+q后10個字符
(當q長度大于20)或input
=q字符串
(當q長度小于等于20);
注意:
應用ID+q+salt+應用密鑰
字符串時,q
不需要做 URL encode,在生成簽名之后,發送 HTTP 請求之前才需要對要發送的 q
做URL encode。返回的結果是json格式,具體說明如下:
字段名 | 字段說明 |
---|---|
orientation | 圖片所對應的方向 |
lanFrom | ocr所識別出來認為的圖片中的語言 |
textAngle | 圖片的傾斜角度 |
errorCode | 錯誤碼 |
lanTo | 目標語言 |
resRegions | 圖片翻譯的具體內容 |
-boundingBox | 區域范圍,四個值: 左上角的x值,左上角的y值,區域的的寬,區域的高 例如:134,0,1066,249 |
-linesCount | 行數(用于前端排版) |
-lineheight | 行高 |
-context | 該區域的原文 |
-linespace | 行間距 |
-tranContent | 翻譯結果 |
-lines | 當render=1即返回渲染圖片,返回結果lines |
-color | 圖片顏色(默認字段,暫不支持修改) |
-words | 字數組,當render=1即返回渲染圖片 |
-text | 行識別結果,當render=1即返回渲染圖片 |
-word | 識別的字的結果,當render=1即返回渲染圖片 |
-textHeight | 文字的高度,當render=1即返回渲染圖片 |
注:resRegions是一個json列表,表示圖中多個區域對應的翻譯結果,每個json中有6個參數:boundingBox、linesCount、lineheight、context、linespace、tranContent。
發送請求,調用接口:
{
"type":"1",
"q":"BASE64", //要翻譯的圖片BASE 64編碼
"from":"en",
"to":"zh-CHS",
"appKey":"test",
"salt":"1995882C5064805BC30A39829B779D7B",
"sign":"f9976efca9dd9e280d4c6637230da5d94c2df6e520605db5a5a4d1d91ba45761",
"signType":"v3",
"docType":"json"
}
返回結果:
{
"orientation": "Up",
"lanFrom": "en",
"textAngle": "0.0",
"errorCode": "0",
"lanTo": "zh-CHS",
"resRegions": [{
"boundingBox": "134,0,1066,249",
"linesCount": 7,
"lineheight": 28,
"context": " There are two ways to cope with the problem in government. One (dis cussed in the preceding chapter) is to supply the service or product in a marketlike environment. Shift the burden of evaluation off the shoulders of professional evaluators and onto the shoulders of clients and customers, and let the latter vote with their feet. The \"client\" in these cases can be individual citizens or government agencies; what is important is that the client be able to choose from among rival suppliers.",
"linespace": 7,
"tranContent": "有兩種方法可以解決政府的問題。一個(在前一章中討論的)是在一個市場環境中提供服務或產品。將評估的負擔從專業評估人員的肩膀上轉移到客戶和客戶的肩上,讓后者用腳投票。這些案件的“委托人”可以是公民個人或政府機構;重要的是客戶可以從競爭對手那里選擇。"
}, {
"boundingBox": "116,253,1100,354",
"linesCount": 10,
"lineheight": 28,
"context": " But some public services cannot be supplied, or arc never going to be sup plied, by a market. We can imagine allowing parents to choose among schools but we cannot imagine letting them choose (at least for most purposes) among police departments or armies. In that case one should adopt the second way of evaluating a public service: carry out a demonstration project or conduct a field experiment. (I will use the two ideas interchangeably, though some schol ars distinguish between them.7) An experiment is a planned alteration in a state of affairs designed to measure the effect of the intervention. It involves asking the question, \"If I change X, what will happen to Y, having first made certain that everything else stays the same?\" It sounds easy, but it is not.",
"linespace": 5,
"tranContent": "但是一些公共服務不能提供,或者不能被市場所壟斷。我們可以想象允許父母在學校里選擇,但我們無法想象讓他們在警察部門或軍隊中選擇(至少是在大多數情況下)。在這種情況下,應該采用第二種評價公共服務的方法:進行示范項目或進行現場試驗。(我將把這兩種觀點交替使用,盡管有些學校將兩者區分開來。)實驗是一種計劃中的改變,旨在衡量干預的效果。它涉及到問這個問題,“如果我改變X, Y會發生什么,首先確定其他一切都保持不變?”這聽起來很容易,但事實并非如此。"
}, {
"boundingBox": "101,609,1141,152",
"linesCount": 4,
"lineheight": 28,
"context": " A good experiment (bad ones are worse than no experiment at all) requires that one do the following: First, identify a course of action to be test ed; call it the treatment. A \"treatment\" can be a police tactic, a school cur riculum, or a welfare program. Second, decide what impact the treatment is",
"linespace": 5,
"tranContent": "一個好的實驗(壞的實驗比沒有實驗更糟糕)需要一個人做以下的事情:首先,確定要測試的行動過程;叫它治療。“治療”可以是警察的策略,也可以是學校里的,或者是福利項目。其次,確定治療的影響。"
}]
}
下表為各語言對應代碼:
英文名 | 中文名 | 代碼 | 支持自動識別 |
---|---|---|---|
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 |
Azeerbaijani | 阿塞拜疆語 | 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 |
Frisian | 弗里西語 | fy | Y |
Irish | 愛爾蘭語 | ga | Y |
Scots | 蘇格蘭蓋爾語 | gd | N |
Galician | 加利西亞語 | gl | Y |
Gujarati | 古吉拉特語 | gu | Y |
Hausa | 豪薩語 | ha | N |
Hawaiian | 夏威夷語 | haw | N |
Hebrew | 希伯來語 | he | 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 | N |
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 |
Myanmar (Burmese) | 緬甸語 | my | Y |
Nepali | 尼泊爾語 | ne | Y |
Norwegian | 挪威語 | no | Y |
Nyanja (Chichewa) | 齊切瓦語 | ny | 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 |
Turkish | 土耳其語 | tr | Y |
Ukrainian | 烏克蘭語 | uk | Y |
Urdu | 烏爾都語 | ur | N |
Uzbek | 烏茲別克語 | uz | Y |
Yiddish | 意第緒語 | yi | Y |
Yoruba | 約魯巴語 | yo | Y |
Cantonese (Traditional) | 粵語 | yue | N |
Zulu | 南非祖魯語 | zu | N |
- | 自動識別 | auto | - |
**注意:**若列表語言出現不支持的問題,請參考產品定價列表語種互譯的限制
支持圖片格式 | 圖片大小 | 每小時最大查詢次數 | 支持語言 |
---|---|---|---|
jpg\jpeg\png\bmp | 5M 內(編碼后)圖片的base64編碼是不包含圖片頭的,如(data:image/jpg;base64,) | 3600 | 支持多種語言互譯,具體語種參考文檔支持的語言列表 |
錯誤碼 | 含義 |
---|---|
101 | 缺少必填的參數,首先確保必填參數齊全,然后確認參數書寫是否正確。 |
102 | 不支持的語言類型 |
103 | 翻譯文本過長 |
104 | 不支持的API類型 |
105 | 不支持的簽名類型 |
106 | 不支持的響應類型 |
107 | 不支持的傳輸加密類型 |
108 | 應用ID無效,注冊賬號,登錄后臺創建應用和實例并完成綁定,可獲得應用ID和應用密鑰等信息, |
109 | batchLog格式不正確 |
110 | 無相關服務的有效實例,應用沒有綁定服務實例,可以新建服務實例,綁定服務實例。注:某些服務的翻譯結果發音需要tts實例,需要在控制臺創建語音合成實例綁定應用后方能使用。 |
111 | 開發者賬號無效 |
112 | 請求服務無效 |
113 | q不能為空 |
114 | 不支持的圖片傳輸方式 |
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 | 會話閑置太久超時 |
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 | 服務調用失敗 |