五月天综合,欧美一区二区三区在线观看视频,久久中文字幕乱码久久午夜加勒比 ,亚洲一区 视频 在线

幫助與文檔 > 產品文檔 > 自然語言翻譯服務 > IOS_SDK文檔 > 圖片翻譯
圖片翻譯

圖片翻譯 IOS SDK 簡介

概述

(1) 概念解釋

圖片翻譯:基于文字識別與文本翻譯技術,結合組段和渲染技術,滿足用戶翻譯圖片文字的需求,提升輸入效率

(2) 說明

Hi,您好,歡迎使用有道智云圖片翻譯iOS SDK。

如果您想快速體驗服務,建議您前往官網體驗中心 或者在體驗中心右下側找到小程序二維碼,掃描進行體驗。

本文檔主要針對需要集成圖片翻譯服務iOS SDK的開發(fā)工程師,詳細描述有道智云圖片翻譯能力及集成過程。

如果您有與我們商務合作的需求,可以通過以下方式聯系我們:

商務郵箱: AIcloud_Business@corp.youdao.com

如果您對文檔內容有任何疑問,可以通過以下幾種方式聯系我們:

客服QQ:1906538062

智云翻譯技術交流QQ 1群: 652880659

智云翻譯技術交流QQ 2群: 669384425

智云翻譯技術交流QQ 3群: 807539209

智云翻譯技術交流QQ 4群: 936752411

聯系郵箱: zhiyun@corp.youdao.com

溫馨提示: 本文檔主要針對開發(fā)人員,接入測試前需要在后臺創(chuàng)建iOS應用,并綁定圖片翻譯實例;如果您還沒有,請按照新手指南 操作。 平臺向每個賬戶贈送50元的體驗金,供用戶集成前測試所用,具體資費規(guī)則詳見圖片翻譯服務報價

功能介紹

有道圖片翻譯 SDK 是有道智云開放平臺提供的云服務之一,是有道在線圖片翻譯接口的一種實現,支持在線圖片翻譯。

兼容性

支持設備:運行了iOS 8.0及以上系統(tǒng)的 iOS 設備

圖片翻譯SDK集成指南

集成前提

開始集成SDK之前開發(fā)者需要登錄有道智云平臺 ,創(chuàng)建應用獲取應用ID(或者通過運營人員獲取應用ID),以便使用翻譯服務。

集成步驟

SDK包導入

翻譯SDK由如下幾個SDK組成,用戶可根據需要組合使用:

文件 說明
FanYiSDK.h 頭文件(必選)
libbase.a 圖片翻譯相關sdk基礎庫(必選)
libocrtrans.a 在線圖片翻譯 SDK(必選,使用在線圖片翻譯時使用)
  1. 添加頭文件和庫文件:將 translateSDK 添加到工程中,包括 FanYiSDK.h 頭文件和 libFanYiSDK.a 文件??梢灾苯訉?translateSDK 文件夾拖動到工程中,也可以選擇File “Add files to ‘Project Name’…”

  2. 設置工程 Other Linker Flags 為 -ObjC

Alt

  1. 若使用離線功能,修改工程中任意一個類后綴名為 .mm,參見 demo 中 ViewController.mm,Xcode 10.0之前的版本需要添加libstc++.6.0.9.tbd,Xcode 10.0及以上版本需要設置C++ Standard Library為libc++;若未使用離線功能可跳過此步驟;

Alt

  1. 在工程build Phases – Link Binary With Libraries中添加libFanYiSDK.a, AdSupport.framework, CoreTelephony.framework, SystemConfiguration, libz.tbd和libsqlite3.tbd。如下:

Alt

SDK初始化

說明:所有的查詢都需要初始化appKey(應用ID),只執(zhí)行初始化一次即可。 注:appKey即應用ID

//初始化appKey(應用ID)
YDTranslateInstance *yd = [YDTranslateInstance sharedInstance];
yd.appKey = @"your appkey";

功能集成

說明:請參考 demo 中 OCRTransController 的使用

  1. 構造查詢器
YDOCRTransRequest *request = [YDOCRTransRequest request];
YDOCRTransParameter *param = [YDOCRTransParameter param];
param.from = @"en"; //設置源語言
param.to = @"zh-CHS"; //設置目標語言
param.serverRenderImage = YES; //設置服務端渲染
request.param = param;
  1. 將圖片轉化為base64編碼
NSString *base64Str = [self image2DataURL:self.imgView.image];
  1. 執(zhí)行翻譯過程

識別返回兩種情況,一種是成功,相關結果存儲在 result 參數中,另外一種是失敗,失敗信息放在 error,可根據 錯誤代碼列表 查詢。整個識別是異步的。

request lookup:base64Str WithCompletionHandler:^(YDOCRTransRequest *request, NSDictionary *info, NSError *error) {
    if (error) {
        //失敗
        NSLog(@"error:%@", error);
        [HUDUtil show:self.view text:@"識別失敗"];
    }else {
            //成功
        YDOCRTransResult *result = [YDOCRTransResult mj_objectWithKeyValues:info];
        NSLog(@"%@", result);
        [HUDUtil show:self.view text:@"識別成功"];
        [self handleOCRTransReuslt:result];
    }
}];

翻譯結果說明

對于在線圖片翻譯,服務器查詢結果返回數據如下:

{
    "orientation": "Up",
    "lanFrom": "en",
    "textAngle": "0.0",
    "errorCode": "0",
    "lanTo": "zh-CHS",
    "render_image": "...."
    "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": "有兩種方法可以在政府應對的問題。一個(在前一章討論)是提供的服務或產品marketlike環(huán)境。肩上的負擔,轉變評價專業(yè)評估和客戶的肩膀上,并讓后者用腳投票?!翱蛻簟痹谶@些情況下可以公民個人或政府機構;重要的是客戶端可以選擇從競爭對手的供應商。"
    }, {
        "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": "但是一些公共服務不能提供,或弧永遠不會一口招搖撞騙,由一個市場。我們可以想象允許父母選擇在學校但是我們無法想象讓他們選擇(至少在大多數情況下)在警察部門或軍隊。在這種情況下應該采用第二種方法評價公共服務:開展示范項目或進行現場試驗。(我將使用兩個概念互換,盡管有些schol ars區(qū)分them.7)一個實驗計劃變更的狀態(tài)設計測量干預的效果。它涉及到問這個問題:“如果我改變X,Y,會發(fā)生什么在第一次確信一切保持不變嗎?”這聽起來容易,但事實并非如此。"
    }, {
        "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": "一個好的實驗(壞的比任何實驗)要求執(zhí)行以下操作:首先,確定一個測試ed的行動;叫它治療。“治療”可以是一個警察戰(zhàn)術,一個學校cur riculum,或福利計劃。第二,決定什么是影響治療"
    }]
}

render_image 是服務端渲染過的翻譯圖片

服務器是按照區(qū)域,行,字的格式返回的,即一張圖片會識別出圖片對應的 Result,其上可能有多個區(qū)域 Region,每個區(qū)域會包含一行或多行 Line,boundingBox 字段返回坐標和大小。 SDK 對上述 json 數據解析封裝為 YDOCRTransResult 對象,如下:

@interface YDOCRTransResult : NSObject
/* 錯誤碼 */
@property (nonatomic, copy) NSString *errorCode;
/* ocr所識別出來認為的圖片中的語言 */
@property (nonatomic, copy) NSString *lanFrom;
/* 目標語言 */
@property (nonatomic, copy) NSString *lanTo;
/* 圖片所對應的方向 */
@property (nonatomic, copy) NSString *orientation;
/* 圖片翻譯的具體內容 */
@property (nonatomic, strong) NSArray *resRegions;
/* 圖片的傾斜角度 */
@property (nonatomic, copy) NSString *textAngle;
/* 原始數據 */
@property (nonatomic, strong) NSDictionary *info;

+ (instancetype)initWithDict:(NSDictionary *)info;
@end

@interface YDOCRTransRegion : NSObject
/* 區(qū)域范圍,四個值:左上角的x值,左上角的y值,區(qū)域的的寬,區(qū)域的高,例如:134,0,1066,249 */
@property (nonatomic, copy) NSString *boundingBox;
/* 該區(qū)域的原文 */
@property (nonatomic, copy) NSString *context;
/* 行高 */
@property (nonatomic, copy) NSString *lineheight;
/* 行數(用于前端排版) */
@property (nonatomic, copy) NSString *linesCount;
/* 翻譯結果 */
@property (nonatomic, copy) NSString *tranContent;
/* 行間距 */
@property (nonatomic, copy) NSString *linespace;

+ (instancetype)initWithDict:(NSDictionary *)info;
@end

支持語言

語言 代碼
中文 zh-CHS
日文 ja
英文 en
韓文 ko
法文 fr
俄文 ru
葡萄牙文 pt
西班牙文 es
越南文 vi
德文 de
阿拉伯文 ar
印尼文 id
自動識別 auto

錯誤代碼列表

錯誤碼 含義
101 缺少必填的參數
102 不支持的語言類型
103 翻譯文本過長
104 不支持的API類型
105 不支持的簽名類型
106 不支持的響應類型
107 不支持的傳輸加密類型
108 應用ID無效,注冊賬號,登錄后臺創(chuàng)建應用和實例并完成綁定,可獲得應用ID和應用密鑰等信息
109 batchLog格式不正確
110 無相關服務的有效實例
111 開發(fā)者賬號無效
113 q不能為空
114 不支持的圖片傳輸方式
201 解密失敗,可能為DES,BASE64,URLDecode的錯誤
202 簽名檢驗失敗
203 訪問IP地址不在可訪問IP列表
205 請求的接口與應用的平臺類型不一致,如有疑問請參考入門指南
206 因為時間戳無效導致簽名校驗失敗
207 重放請求
301 辭典查詢失敗
302 翻譯查詢失敗
303 服務端的其它異常
304 會話閑置太久超時
401 賬戶已經欠費停
402 offlinesdk不可用
411 訪問頻率受限,請稍后訪問
412 長請求過于頻繁,請稍后訪問
1001 無效的OCR類型
1002 不支持的OCR image類型
1003 不支持的OCR Language類型
1004 識別圖片過大
1201 圖片base64解密失敗
1301 OCR段落識別失敗
1411 訪問頻率受限
1412 超過最大識別字節(jié)數
2003 不支持的語音聲道
2004 不支持的語音上傳類型
2005 不支持的語言類型
2006 不支持的識別類型
2201 識別音頻文件過大
2301 識別音頻時長過長
2411 不支持的音頻文件類型
2412 不支持的發(fā)音類型
3001 不支持的語音格式
3002 不支持的語音采樣率
3003 不支持的語音聲道
3004 不支持的語音上傳類型
3005 不支持的語言類型
3006 不支持的識別類型
3007 識別音頻文件過大
3008 識別音頻時長過長
3009 不支持的音頻文件類型
3010 不支持的發(fā)音類型
3201 解密失敗
3301 語音識別失敗
3302 語音翻譯失敗
3303 服務的異常
3411 訪問頻率受限,請稍后訪問
3412 超過最大請求字符數
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 超過最大識別流量
13001 不支持的角度類型
13002 不支持的文件類型
13003 表格識別圖片過大
13004 文件為空
13301 表格識別失敗
17001 需要圖片
17002 圖片過大(1M)
17003 識別類型未找到
17004 不支持的識別類型
17005 服務調用失敗
-1000 未知錯誤
-2000 查詢輸入為空

常見問題及注意事項

1.運行程序崩潰? 檢查下是否對應的 SDK靜態(tài)庫包 是否放到當前工程目錄下。

2.翻譯沒結果? 檢查下翻譯接口回調的錯誤信息,保證申請的應用ID是有效且提前綁定了。

3.添加翻譯 SDK 之后審核沒有通過? 翻譯 SDK 使用了 AdSupport 框架獲取設備 IDFA 信息用以統(tǒng)計計費,提交審核時對應用是否有廣告選項請選擇“是”。

版本更新記錄

上線日期 版本號 更新內容
2017.05.08 v1.0.0 有道智云翻譯 iOS SDK上線,支持在線離線翻譯
2017.06.07 v1.1.0 1. 拆分翻譯 SDK,SDK 拆分為多個文件,用戶可根據需要引用
2. 修復已知 bug
2017.06.30 v1.2.0 修復已知 bug
2017.07.24 v1.3.0 1. 修復 deeplink 相關 bug
2017.08.16 v1.4.0 1. 修復已知 bug
2018.02.09 v1.7.0 支持在線語音翻譯
2018.05.16 v1.7.2 支持在線圖片翻譯