(1) 概念解释
文本翻译:将一段源语言文本转换成目标语言文本,可根据语言参数的不同实现多国语音之间的互译
(2) 说明
Hi,您好,欢迎使用写逸智云翻译iOS SDK。
如果您想快速体验服务,建议您前往 翻译体验中心 或者在体验中心右下侧找到小程序二维码,扫描进行体验。
本文档主要针对需要集成翻译服务iOS SDK的开发工程师,详细描述写逸智云翻译服务能力及集成过程。
如果您有与我们商务合作的需求,可以通过以下方式联系我们:
商务邮箱: AIcloud_Business@corp.youdao.com
如果您对文档内容有任何疑问,可以通过以下几种方式联系我们:
客服QQ:1906538062
智云翻译技术交流QQ 1群: 652880659
智云翻译技术交流QQ 2群: 669384425
智云翻译技术交流QQ 3群: 807539209
智云翻译技术交流QQ 4群: 936752411
联系邮箱: zhiyun@corp.youdao.com
温馨提示:
本文档主要针对开发人员,接入测试前需要在后台创建iOS应用,并绑定翻译实例;如果您还没有,请按照 新手指南 操作。
平台向每个账户赠送50元的体验金,供用户集成前测试所用,具体资费规则详见 文本翻译服务报价 。
写逸翻译SDK是写逸开放平台提供的云服务之一,是写逸在线翻译接口的一种实现,同时,支持离线中英查词。写逸翻译SDK支持中文和目标文字(日文、英文、韩文、法文、俄文、葡萄牙文、西班牙文、越南文、中文繁体、德文、阿拉伯文和印尼文)之间的互译。
支持设备:运行了iOS 8.0及以上系统的 iOS 设备
开始集成SDK之前开发者需要登录 写逸智云平台 ,创建应用获取应用ID(或者通过运营人员获取应用ID),以便使用翻译服务。
翻译SDK由如下几个SDK组成,用户可根据需要组合使用:
| 文件 | 说明 |
|---|---|
| FanYiSDK.h | 头文件(必选) |
| libbase.a | 翻译相关SDK基础库(必选) |
| libhanyucidianoffline.a | 汉语词典翻译SDK(可选,使用汉语词典功能时使用) |
| libonline.a | 在线翻译SDK(可选,包含英汉互译,以及小语种翻译,在线查询) |
| libwordoffline.a | 离线查词SDK(可选,中英单词的离线查询) |
| libsencentenceoffline.a | 离线句子SDK(可选,中英句子的离线查询) |
| libSpeechRecognition.a | 短语音识别SDK(可选,15秒短语音识别功能) |
| libspeechtransonline.a | 语音翻译SDK(可选,语音翻译功能) |
| libocrtrans.a | 图片翻译SDK(可选,图片翻译功能) |
| libStreamASR.a | 流式语音识别SDK(可选,流式语音识别功能) |
| libSpeechEvaluation.a | 在线语音评测SDK(可选,在线语音评测功能) |
| fanyidemo | SDK使用demo |
| StaticResource | StaticResource文件夹下的文件用于离线查词和汉语词典翻译,如果不使用离线功能,不需要StaticResource文件。 |
文件目录如下图所示:

说明:无论使用何种功能,都需要加入 FanYiSDK.h 和 libbase.a ,和相应功能的SDK,各SDK可组合使用。
(1) 添加头文件和库文件:将 translateSDK 添加到工程中,包括 FanYiSDK.h 头文件、libbase.a文件和要导入功能对应的SDK包。可以直接将 translateSDK 文件夹拖动到工程中,也可以选择File “Add files to ‘Project Name’…”
(2) 设置工程 Other Linker Flags 为 -ObjC

(3) 若使用离线功能,修改工程中任意一个类后缀名为 .mm,参见 demo 中 ViewController.mm,Xcode 10.0之前的版本需要添加libstc++.6.0.9.tbd,Xcode 10.0及以上版本需要设置C++ Standard Library为libc++;若未使用离线功能可跳过此步骤;

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

说明:所有的查询都需要初始化appKey(应用ID),只执行初始化一次即可。
注:appKey即应用ID
//初始化appKey(应用ID)
YDTranslateInstance *yd = [YDTranslateInstance sharedInstance];
yd.appKey = @"your appkey";说明:请参考 demo 中 HanyucidianViewController 的使用
(1) 使用的库文件:头文件、libbase.a、libhanyucidianoffline.a,以及离线词库文件hh,离线词库可以下载或者放入工程中,开发者根据需求自行决定:若下载则需要提供下载url,先下载再初始化;若放入工程中则可提词库路径直接初始化。
(2) 构造查询器
offlinetranslate = [YDHanyucidianOfflineTranslate request];(3) 初始化离线词库
-(void)offLineInit {
// 执行此初始化方法之后,确保hh文件在指定路径中存在(hh文件可压缩成zip文件后供用户下载,客户端使用之前解压即可)
if([offlinetranslate initOfflineWithPath:[XUtil getDownloadPath]]){
[HUDUtil show:self.view text:@"离线查词初始化成功"];
}else{
[HUDUtil show:self.view text:@"离线查词初始化失败"];
}
}注意: initOffline 方法是 YDHanyucidianOfflineTranslate 的实例方法,当 YDHanyucidianOfflineTranslate 被重新初始化之后,若想使用离线查词,必须调用 initOffline 方法。
(4) 执行查词过程。
查询,返回两种情况,一种是成功,相关结果存储在 response 参数中,另外一种是失败,失败信息放在error中,可根据 错误代码 进行查询。整个查询是异步的,查询结果存在数组中。
[offlinetranslate lookup:textField.text WithCompletionHandler:^(YDHanyucidianOfflineTranslate *request, NSArray *transltes, NSError *error) {
if (error) {
NSString *des = [error.userInfo objectForKey:NSLocalizedDescriptionKey];
NSLog(@"================> %ld%@", (long)error.code,des);
}
[self showTrans:transltes];
}];说明:请参考demo中TranslatesViewController的使用
(1) 使用的库文件:头文件、libbase.a、libonline.a
(2) 构造查询器
translateRequest = [YDTranslateRequest request];(3) 设置查词所需要的附加信息
YDTranslateParameters *parameters = [YDTranslateParameters targeting];
parameters.source = @"youdaosw";
parameters.from = YDLanguageTypeChinese;
parameters.to = YDLanguageTypeEnglish;
translateRequest.translateParameters = parameters;(4) 执行查词过程
查询,返回两种情况,一种是成功,相关结果存储在 response 参数中,另外一种是失败,失败信息放在error中,可根据 错误代码 进行查询。整个查询是异步的。
[translateRequest lookup:[_translate objectForKey:@"content"] WithCompletionHandler:^(YDTranslateRequest *request, YDTranslate *response, NSError *error) {
if (error) {
//查询失败
} else {
//查询成功
}
}];说明:请参考 demo 中 OfflineTranslatesViewController 的使用, StaticResource 中文件夹中包含离线查词的库。
(1) 使用的库文件:头文件、libbase.a、libwordoffline.a、以及离线词库,离线词库可以下载或者放入工程中,开发者根据需求自行决定:若下载则需要提供下载url,先下载再初始化;若放入工程中则可提词库路径直接初始化。
(2) 构造查询器
offlinetranslate = [YDWordOfflineTranslate request];(3) 初始化离线词库
离线查词包含2个库,dicta 和 dictb,区别是 dicta 词库包含的词比较多,文件较大,dictb 只包含常见词汇。开发者可根据实际情况,选择一个词库使用即可。下面以 dictb 词库为例,介绍如何使用离线查词功能。
使用离线查询功能, 涉及到4个包,ba160111.ydd,bb160111,dictWithSeg.dat,yddict.dat.其中 dictWithSeg.dat 和 yddict.idx 文件必须导入到工程中,并且已经添加到 Copy bundle Resource 中。如下:

ba160111.ydd 和 bb160111 支持两种路径。开发者可指定词库的位置,也可以打到安装包中,分别调用不同的初始化方法即可。
//可选方式一、指定离线词库(ba160111.ydd和bb160111.ydd文件的)路径。注意,调用前提是该位置下已经包含这两个文件,否则初始化失败。
[offlinetranslate initOfflineWithPath:[XUtil getDownloadPath]];//布尔型返回值,代表初始化成功或者失败
//可选方式二、离线词库在安装包中(需要将这2个文件导入到工程中,确保Copy bundle Resource中能找到这2个文件)
[offlinetranslate initOffline]; //布尔型返回值,代表初始化成功或者失败注意:initOffline方法是YDWordOfflineTranslate的实例方法,当YDWordOfflineTranslate被重新初始化之后,若想使用离线查词,必须调用initOffline方法。
(4) 执行查词过程
查询,返回两种情况,一种是成功,相关结果存储在 response 参数中,另外一种是失败,失败信息放在error中,可根据 错误代码 进行查询。整个查询是异步的。
[offlinetranslate lookup:[_translate objectForKey:@"content"] WithCompletionHandler:^(YDWordOfflineTranslate *request, YDTranslate *translte, NSError *error) {
if (error) {
//查询失败
} else {
//查询成功
}
}];说明:请参考 demo 中 SentenceOfflineTranslateViewController 的使用
(1) 使用的库文件:头文件、libbase.a、libsencentenceoffline.a,以及离线词库文件ce.zip,离线词库可以下载或者放入工程中,开发者根据需求自行决定:若下载则需要提供下载url,先下载再初始化;若放入工程中则可提词库路径直接初始化。
(2) 构造查询器
offlinetranslate = [YDSentenceOfflineTranslate request];(3) 初始化离线词库
-(void)offLineInit{
//初始化之前先下载离线词库文件ce.zip(参见demo),每次查询均要先初始化离线翻译句子词库
if([offlinetranslate initOfflineSenWithPath:[XUtil getDownloadPath]]){
[HUDUtil show:self.view text:@"离线句子初始化成功"];
}else{
[HUDUtil show:self.view text:@"离线句子初始化失败"];
}
}注意: offLineInit 方法是 YDSentenceOfflineTranslate 的实例方法,当 YDSentenceOfflineTranslate 被重新初始化之后,若想使用离线查词,必须调用 offLineInit 方法。
(4) 执行查词过程。
查询,返回两种情况,一种是成功,相关结果存储在 response 参数中,另外一种是失败,失败信息放在error中,可根据 错误代码 进行查询。整个查询是异步的,查询结果存在数组中。
[offlinetranslate lookup:[_translate objectForKey:@"content"] WithCompletionHandler:^(YDSentenceOfflineTranslate *request, YDTranslate *translte, NSError *error) {
if (error) {
//查询失败
} else {
//查询成功
}
}];说明:请参考 demo 中 DetailWordsViewController 的使用
点击查看更多,将进行deeplink跳转,若安装写逸词典,则跳转到写逸词典app里并显示所查单词的解释,若未安装写逸词典,则跳转到Safari浏览器web界面并显示所查单词的解释;
- (void)toDict{
// //跳转到词典
[_translate.ydTranslate openMore];
}若在汉语词典界面点击查看更多,也会进行deeplink跳转;
- (void)toDict{
//跳转到词典
if (self.transltes.count) {
YDChDictTranslate *translate = [self.transltes objectAtIndex:0];
[translate openMore];
}
}说明:请参考 demo 中 SpeechOnlineViewController 的使用
(1) 使用的库文件:头文件、libbase.a、libspeechtransonline.a;
(2) 构造查询器
YDSpeechOnlineRequest *request = [YDSpeechOnlineRequest request];(3) 设置查词所需要的附加信息
YDSpeechOnlineParam *param = [YDSpeechOnlineParam param];
param.from = @"en";//源语言
param.to = @"zh-CHS";//翻译目标语言
param.rate = @"16000";//采样率
param.channel = @"1";//声道数,目前只支持单声道,请写固定值1
param.voice = @"0"; //女声代码为0,男声代码为1,英语有四种:0 美式女声 1 美式男声 2 英式女声 3 英式男声
request.param = param;(4) 执行语音翻译过程
查询输入为语音base64编码,返回两种情况,一种是成功,相关结果存储在 info 参数中,另外一种是失败,失败信息放在error中,可根据 错误代码 进行查询。
[request lookup:base64Str WithCompletionHandler:^(YDSpeechOnlineRequest *request, NSDictionary *info, NSError *error) {
if (error) {
//查询失败
} else {
//查询成功
YDSpeechResult *result = [YDSpeechResult mj_objectWithKeyValues:info];
[self showResult:result];
}
}];说明:支持最长15秒的短语音在线识别功能,请参考 demo 中 SpeechRecognitionViewController 的使用;
(1) 使用的库文件:头文件、libbase.a、libSpeechRecognition.a;
(2) 构造查询器
YDSpeechRecognitionRequest *request = [YDSpeechRecognitionRequest request];(3) 设置语音识别所需要的附加信息
YDSpeechRecognitionParam *param = [YDSpeechRecognitionParam param];
param.langType = @"zh-CHS";//源语言
param.rate = @"8000";//采样率
param.channel = @"1";//声道数,目前只支持单声道,请写固定值1
request.param = param;(4) 执行语音识别过程
查询输入为语音base64编码,返回两种情况,一种是成功,相关结果存储在 info 参数中,另外一种是失败,失败信息放在error中,可根据 错误代码 进行查询。
[request lookup:base64Str WithCompletionHandler:^(YDSpeechRecognitionRequest *request, NSDictionary *info, NSError *error) {
if (!error) {
YDSpeechRecognitionResult *result = [YDSpeechRecognitionResult initWithDict:info];
[self showResult:result];
}
}];说明:请参考 demo 中 OCRTransController 的使用
(1) 使用的库文件:头文件、libbase.a、libocrtrans.a;
(2) 构造查询器
YDOCRTransRequest *request = [YDOCRTransRequest request];(3) 设置查词所需要的附加信息
YDOCRTransParameter *param = [YDOCRTransParameter param];
param.from = @"en"; //设置源语言
param.to = @"zh-CHS"; //设置目标语言
request.param = param;(4) 执行图片翻译过程
查询输入为图片base64编码,返回两种情况,一种是成功,相关结果存储在 info 参数中,另外一种是失败,失败信息放在error中,可根据 错误代码 进行查询。
[request lookup:base64Str WithCompletionHandler:^(YDOCRTransRequest *request, NSDictionary *info, NSError *error) {
if (error) {
//查询失败
} else {
//查询成功
YDOCRTransResult *result = [YDOCRTransResult mj_objectWithKeyValues:info];
[self showResult:result];
}
}];说明:支持实时流式语音识别,目前支持中英文,请参考 demo 中 StreamASRController 的使用
(1) 使用的库文件:头文件、libbase.a、libStreamASR.a;
(2) 构造识别器
YDSpeechRecognizer *recognizer = [YDSpeechRecognizer sharedRecognizer];
recognizer.delegate = self;(3) 设置识别所需要的附加信息
YDSpeechRecognizerParam *param = [YDSpeechRecognizerParam param];
param.langType = @"zh-CHS";//源语言
param.rate = @"16000";//采样率
param.format = @"wav";//语音文件格式
param.vadBOS = 2000;//前端点静音检测时长,ms
param.vadEOS = 2000;//后端点静音检测时长,ms
recognizer.param = param;(4) 执行语音识别过程
执行[self.recognizer startListening];开始流式语音识别,结果将在代理方法中回调给开发者;
#pragma mark - speech recognizer delegate
- (void)onBeginOfSpeech {
[self startSpeakingAnimation];
NSLog(@"------speech start-----");
}
- (void)onEndOfSpeech {
[self endSpekingAnimation];
NSLog(@"------speech end-----");
}
- (void)onResults:(NSDictionary *)result isLast:(BOOL)isLast {
NSString *sentence = result[@"sentence"];
self.recognizedLabel.text = [NSString stringWithFormat:@"%@%@", self.displayingText, sentence];
if (isLast) {
[self.displayingText appendString:sentence];
}
}
- (void)onCompleted:(NSError *)speechError {
[self endSpekingAnimation];
NSLog(@"------speech completed-----");
}
- (void)onConstantlyQuietIsBOS:(BOOL)isBOS {
NSLog(@"检测到%@静音", isBOS ? @"前端点" : @"后端点");
}说明:支持在线语音评测,目前只支持英语评测,请参考 demo 中 SpeechEvaluationController 的使用
(1) 使用的库文件:头文件、libbase.a、libSpeechEvaluation.a;
(2) 构造识别器
YDSpeechEvaluationRequest *request = [YDSpeechEvaluationRequest request];(3) 设置识别所需要的附加信息
YDSpeechEvaluationParam *param = [YDSpeechEvaluationParam param];
param.langType = @"en";//目前只支持英语评测
param.rate = @"16000";//采样率
param.channel = @"1";//声道数,目前只支持单声道,请写固定值1
request.param = param;(4) 执行语音识别过程
查询输入为语音录音文件base64的字符串,返回结果回调在block中,若成功返回则info包含了返回的所有json数据,开发者可自定义model对返回的info数据进行解析;
[request lookup:base64Str text:refText completionHandler:^(YDSpeechEvaluationRequest *request, NSDictionary *info, NSError *error) {
if (!error) {
NSLog(@"%@", info);
YDSpeechEvaluationResult *result = [YDSpeechEvaluationResult mj_objectWithKeyValues:info];
[self showResult:result];
}
}];(1) 支持语言列表
| 语言 | 代码 |
|---|---|
| 中文 | zh-CHS |
| 英文 | en |
| 日文 | ja |
| 韩文 | ko |
| 法文 | fr |
| 西班牙文 | es |
| 葡萄牙文 | pt |
| 意大利文 | it |
| 俄文 | ru |
| 越南文 | vi |
| 德文 | de |
| 阿拉伯文 | ar |
| 印尼文 | id |
| 南非荷兰语 | af |
| 波斯尼亚语 | bs |
| 保加利亚语 | bg |
| 粤语 | yue |
| 加泰隆语 | ca |
| 克罗地亚语 | hr |
| 捷克语 | cs |
| 丹麦语 | da |
| 荷兰语 | nl |
| 爱沙尼亚语 | et |
| 斐济语 | fj |
| 芬兰语 | fi |
| 希腊语 | el |
| 海地克里奥尔语 | ht |
| 希伯来语 | he |
| 印地语 | hi |
| 白苗语 | mww |
| 匈牙利语 | hu |
| 斯瓦希里语 | sw |
| 克林贡语 | tlh |
| 拉脱维亚语 | lv |
| 立陶宛语 | lt |
| 马来语 | ms |
| 马耳他语 | mt |
| 挪威语 | no |
| 波斯语 | fa |
| 波兰语 | pl |
| 克雷塔罗奥托米语 | otq |
| 罗马尼亚语 | ro |
| 塞尔维亚语(西里尔文) | sr-Cyrl |
| 塞尔维亚语(拉丁文) | sr-Latn |
| 斯洛伐克语 | sk |
| 斯洛文尼亚语 | sl |
| 瑞典语 | sv |
| 塔希提语 | ty |
| 泰语 | th |
| 汤加语 | to |
| 土耳其语 | tr |
| 乌克兰语 | uk |
| 乌尔都语 | ur |
| 威尔士语 | cy |
| 尤卡坦玛雅语 | yua |
| 阿尔巴尼亚语 | sq |
| 阿姆哈拉语 | am |
| 亚美尼亚语 | hy |
| 阿塞拜疆语 | az |
| 孟加拉语 | bn |
| 巴斯克语 | eu |
| 白俄罗斯语 | be |
| 宿务语 | ceb |
| 科西嘉语 | co |
| 世界语 | eo |
| 菲律宾语 | tl |
| 弗里西语 | fy |
| 加利西亚语 | gl |
| 格鲁吉亚语 | ka |
| 古吉拉特语 | gu |
| 豪萨语 | ha |
| 夏威夷语 | haw |
| 冰岛语 | is |
| 伊博语 | ig |
| 爱尔兰语 | ga |
| 爪哇语 | jw |
| 卡纳达语 | kn |
| 哈萨克语 | kk |
| 高棉语 | km |
| 库尔德语 | ku |
| 柯尔克孜语 | ky |
| 老挝语 | lo |
| 拉丁语 | la |
| 卢森堡语 | lb |
| 马其顿语 | mk |
| 马尔加什语 | mg |
| 马拉雅拉姆语 | ml |
| 毛利语 | mi |
| 马拉地语 | mr |
| 蒙古语 | mn |
| 缅甸语 | my |
| 尼泊尔语 | ne |
| 齐切瓦语 | ny |
| 普什图语 | ps |
| 旁遮普语 | pa |
| 萨摩亚语 | sm |
| 苏格兰盖尔语 | gd |
| 塞索托语 | st |
| 修纳语 | sn |
| 信德语 | sd |
| 僧伽罗语 | si |
| 索马里语 | so |
| 巽他语 | su |
| 塔吉克语 | tg |
| 泰米尔语 | ta |
| 泰卢固语 | te |
| 乌兹别克语 | uz |
| 南非科萨语 | xh |
| 意第绪语 | yi |
| 约鲁巴语 | yo |
| 南非祖鲁语 | zu |
| 自动识别 | auto |
其中auto可以识别中文、英文、日文、韩文、法文、西班牙文、葡萄牙文、俄文、越南文、德文、阿拉伯文、印尼文、意大利文,其他语种无法识别,为提高准确率,请指定语种。其中粤语作为from时,某些小语种不能翻译。
| 错误码 | 含义 |
|---|---|
| 101 | 缺少必填的参数 |
| 102 | 不支持的语言类型 |
| 103 | 翻译文本过长 |
| 104 | 不支持的API类型 |
| 105 | 不支持的签名类型 |
| 106 | 不支持的响应类型 |
| 107 | 不支持的传输加密类型 |
| 108 | 应用ID无效,注册账号,登录后台创建应用和实例并完成绑定,可获得应用ID和应用密钥等信息 |
| 109 | batchLog格式不正确 |
| 110 | 无相关服务的有效实例 |
| 111 | 开发者账号无效 |
| 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 | 超过最大识别字节数 |
| 2003 | 不支持的语音声道 |
| 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 | 服务调用失败 |
| -1000 | 未知错误 |
| -2000 | 查询输入为空 |
1.翻译没结果?
检查下翻译接口回调的错误信息,保证申请的应用ID是有效且提前绑定了。
2.离线查询无效?
确保离线库正确放置,离线初始化成功。
3.添加翻译 SDK 之后审核没有通过?
翻译 SDK 使用了 AdSupport 框架获取设备 IDFA 信息用以统计计费,提交审核时对应用是否有广告选项请选择“是”。
| 上线日期 | 版本号 | 更新内容 |
|---|---|---|
| 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 | 修复 deeplink 相关 bug |
| 2017.08.16 | v1.4.0 | 修复已知 bug |
| 2018.02.09 | v1.5.0 | 支持在线语音翻译功能 |
| 2018.04.10 | v1.6.0 | 在线文本翻译增加越南文 |
| 2018.05.15 | v1.7.0 | 增加图片翻译功能 |
| 2018.10.10 | v1.8.0 | 在线文本翻译增加德文,阿拉伯文和印尼文 |
| 2018.11.02 | v1.9.0 | 增加流式语音识别,支持中英文 |
| 2018.11.16 | v1.10.0 | 增加语音评测,支持英文 |