四虎网站在线,中文日韩无码欧,日韩A级黄片,日韩电影网站久久久

幫助與文檔 > 產(chǎn)品文檔 > 自然語言翻譯服務(wù) > IOS_SDK文檔 > 圖片翻譯
圖片翻譯

圖片翻譯 IOS SDK 簡介

概述

(1) 概念解釋

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

(2) 說明

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

如果您想快速體驗(yàn)服務(wù),建議您前往官網(wǎng)體驗(yàn)中心 或者在體驗(yàn)中心右下側(cè)找到小程序二維碼,掃描進(jìn)行體驗(yàn)。

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

如果您有與我們商務(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ā)人員,接入測試前需要在后臺創(chuàng)建iOS應(yīng)用,并綁定圖片翻譯實(shí)例;如果您還沒有,請按照新手指南 操作。 平臺向每個賬戶贈送50元的體驗(yàn)金,供用戶集成前測試所用,具體資費(fèi)規(guī)則詳見圖片翻譯服務(wù)報(bào)價(jià) 。

功能介紹

有道圖片翻譯 SDK 是有道智云開放平臺提供的云服務(wù)之一,是有道在線圖片翻譯接口的一種實(shí)現(xiàn),支持在線圖片翻譯。

兼容性

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

圖片翻譯SDK集成指南

集成前提

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

集成步驟

SDK包導(dǎo)入

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

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

  2. 設(shè)置工程 Other Linker Flags 為 -ObjC

Alt

  1. 若使用離線功能,修改工程中任意一個類后綴名為 .mm,參見 demo 中 ViewController.mm,Xcode 10.0之前的版本需要添加libstc++.6.0.9.tbd,Xcode 10.0及以上版本需要設(shè)置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(應(yīng)用ID),只執(zhí)行初始化一次即可。 注:appKey即應(yīng)用ID

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

功能集成

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

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

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

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];
    }
}];

翻譯結(jié)果說明

對于在線圖片翻譯,服務(wù)器查詢結(jié)果返回?cái)?shù)據(jù)如下:

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

render_image 是服務(wù)端渲染過的翻譯圖片

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

@interface YDOCRTransResult : NSObject
/* 錯誤碼 */
@property (nonatomic, copy) NSString *errorCode;
/* ocr所識別出來認(rèn)為的圖片中的語言 */
@property (nonatomic, copy) NSString *lanFrom;
/* 目標(biāo)語言 */
@property (nonatomic, copy) NSString *lanTo;
/* 圖片所對應(yīng)的方向 */
@property (nonatomic, copy) NSString *orientation;
/* 圖片翻譯的具體內(nèi)容 */
@property (nonatomic, strong) NSArray *resRegions;
/* 圖片的傾斜角度 */
@property (nonatomic, copy) NSString *textAngle;
/* 原始數(shù)據(jù) */
@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;
/* 行數(shù)(用于前端排版) */
@property (nonatomic, copy) NSString *linesCount;
/* 翻譯結(jié)果 */
@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 缺少必填的參數(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í)例
111 開發(fā)者賬號無效
113 q不能為空
114 不支持的圖片傳輸方式
201 解密失敗,可能為DES,BASE64,URLDecode的錯誤
202 簽名檢驗(yàn)失敗
203 訪問IP地址不在可訪問IP列表
205 請求的接口與應(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 不支持的語音聲道
2004 不支持的語音上傳類型
2005 不支持的語言類型
2006 不支持的識別類型
2201 識別音頻文件過大
2301 識別音頻時(shí)長過長
2411 不支持的音頻文件類型
2412 不支持的發(fā)音類型
3001 不支持的語音格式
3002 不支持的語音采樣率
3003 不支持的語音聲道
3004 不支持的語音上傳類型
3005 不支持的語言類型
3006 不支持的識別類型
3007 識別音頻文件過大
3008 識別音頻時(shí)長過長
3009 不支持的音頻文件類型
3010 不支持的發(fā)音類型
3201 解密失敗
3301 語音識別失敗
3302 語音翻譯失敗
3303 服務(wù)的異常
3411 訪問頻率受限,請稍后訪問
3412 超過最大請求字符數(shù)
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 超過最大識別流量
13001 不支持的角度類型
13002 不支持的文件類型
13003 表格識別圖片過大
13004 文件為空
13301 表格識別失敗
17001 需要圖片
17002 圖片過大(1M)
17003 識別類型未找到
17004 不支持的識別類型
17005 服務(wù)調(diào)用失敗
-1000 未知錯誤
-2000 查詢輸入為空

常見問題及注意事項(xiàng)

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

2.翻譯沒結(jié)果? 檢查下翻譯接口回調(diào)的錯誤信息,保證申請的應(yīng)用ID是有效且提前綁定了。

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

版本更新記錄

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