(1) 概念解釋
語音翻譯:將一段源語言音頻文件轉換成目標語言文本/語音,大大減輕傳統(tǒng)文本翻譯的讀寫成本,翻譯更輕松
(2) 說明
Hi,您好,歡迎使用有道智云語音翻譯iOS SDK。
本文檔主要針對需要集成語音翻譯服務iOS SDK的開發(fā)工程師,詳細描述有道智云語音翻譯服務能力及集成過程。
如果您有與我們商務合作的需求,可以通過以下方式聯(lián)系我們:
商務郵箱: AIcloud_Business@corp.youdao.com
如果您對文檔內容有任何疑問,可以通過以下幾種方式聯(lián)系我們:
客服QQ:1906538062
智云翻譯技術交流QQ 1群: 652880659
智云翻譯技術交流QQ 2群: 669384425
智云翻譯技術交流QQ 3群: 807539209
智云翻譯技術交流QQ 4群: 936752411
聯(lián)系郵箱: zhiyun@corp.youdao.com
溫馨提示:
本文檔主要針對開發(fā)人員,接入測試前需要在后臺創(chuàng)建iOS應用,并綁定語音翻譯實例;如果您還沒有,請按照新手指南 操作。
平臺向每個賬戶贈送50元的體驗金,供用戶集成前測試所用,具體資費規(guī)則詳見語音翻譯服務報價 。
有道語音翻譯SDK是有道開放平臺提供的云服務之一,是有道在線翻譯接口的一種實現(xiàn)。有道語音翻譯SDK支持中文與外文(詳見 支持語言)之間的互譯。
支持設備:運行了iOS 8.0及以上系統(tǒng)的 iOS 設備
開始集成SDK之前開發(fā)者需要登錄有道智云平臺 ,創(chuàng)建應用獲取應用ID(或者通過運營人員獲取應用ID),以便使用翻譯服務。
翻譯SDK由如下幾個SDK組成,用戶可根據(jù)需要組合使用:
文件 | 說明 |
---|---|
FanYiSDK.h | 頭文件(必選) |
libbase.a | 語音翻譯相關sdk基礎庫(必選) |
libspeechtransonline.a | 在線語音翻譯 SDK(必選,使用在線語音翻譯時使用) |
1.添加頭文件和庫文件:將 translateSDK 添加到工程中,包括 FanYiSDK.h 頭文件和 libFanYiSDK.a 文件。可以直接將 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, SystemConfiguration, libz.tbd和libsqlite3.tbd。如下:
說明:所有的查詢都需要初始化appKey(應用ID),只執(zhí)行初始化一次即可。
注:appKey即應用ID
//初始化appKey(應用ID)
YDTranslateInstance *yd = [YDTranslateInstance sharedInstance];
yd.appKey = @"your appkey";
說明:請參考 demo 中 SpeechOnlineViewController的使用
(1) 使用的庫文件:頭文件、libbase.a、libspeechtransonline.as;
(2) 構造查詢器
YDSpeechOnlineRequest *request = [YDSpeechOnlineRequest request];
YDSpeechOnlineParam *param = [YDSpeechOnlineParam param];
param.from = @"en";//源語言
param.to = @"zh-CHS";//翻譯目標語言
param.format = @"wav";//語言文件格式
param.rate = @"8000";//采樣率
param.channel = @"1";//聲道數(shù),目前只支持單聲道,請寫固定值1
request.param = param;
(3) 將語音數(shù)據(jù)轉化為base64編碼
NSData *speechData = [NSData dataWithContentsOfURL:self.recordFileUrl];
NSString *base64Str = [speechData base64EncodedStringWithOptions:0];
(4) 執(zhí)行翻譯過程。
翻譯返回兩種情況,一種是成功,相關結果存儲在 result
參數(shù)中,另外一種是失敗,失敗信息放在 error
,可根據(jù) 錯誤代碼列表 查詢。整個識別是異步的。
[request lookup:base64Str WithCompletionHandler:^(YDSpeechOnlineRequest *request, YDSpeechResult *result, NSError *error) {
if (error) {
//失敗
NSLog(@"error:%@", error);
}else {
//成功
[self handleReuslt:result];
}
}];
對于在線語音翻譯,服務器查詢結果返回數(shù)據(jù)如下:
{
"tSpeakUrl": “[url]“,
"query": "Sorry",
"translation": ["對不起"],
"errorCode": "0",
"dict": {
"url": "yddict://m.youdao.com/dict?le=eng&q=Sorry"
},
"webdict": {
"url": "http://m.youdao.com/dict?le=eng&q=Sorry"
},
"speakUrl": “[url]“
}
字段 | 含義 |
---|---|
tSpeakUrl | 翻譯結果發(fā)音地址,翻譯成功一定存在 |
errorCode | 翻譯結果錯誤碼,一定存在 |
query | 源語言文本,翻譯成功一定存在 |
translation | 翻譯結果,翻譯成功一定存在 |
dict | 詞典deeplink |
webdict | 詞典web deeplink |
speakUrl | 源語言發(fā)音地址,翻譯成功一定存在 |
SDK對上述json數(shù)據(jù)解析封裝為YDSpeechResult對象,如下
@interface YDSpeechResult : NSObject
/* 翻譯結果發(fā)音地址,翻譯成功一定存在 */
@property (nonatomic, copy) NSString *tSpeakUrl;
/* 翻譯結果錯誤碼,一定存在 */
@property (nonatomic, copy) NSString *errorCode;
/* 源語言文本,翻譯成功一定存在 */
@property (nonatomic, copy) NSString *query;
/* 翻譯結果,翻譯成功一定存在 */
@property (nonatomic, strong) NSArray *translation;
/* 詞典deeplink */
@property (nonatomic, strong) NSDictionary *dict;
/* 詞典web deeplink */
@property (nonatomic, strong) NSDictionary *webdict;
/* 源語言發(fā)音地址,翻譯成功一定存在 */
@property (nonatomic, copy) NSString *speakUrl;
+ (instancetype)initWithDict:(NSDictionary *)info;
@end
英文名 | 中文名 | 代碼 |
---|---|---|
Arabic | 阿拉伯語 | ar |
Cantonese | 粵語 | yue |
Catalan | 加泰隆語 | ca |
Czech | 捷克語 | cs |
Danish | 丹麥語 | da |
Dutch | 荷蘭語 | nl |
English (Australia) | 英語(澳大利亞) | en-AUS |
English (GB) | 英語(英國) | en-GBR |
English (India) | 英語(印度) | en-IND |
English (US) | 英語(美國) | en-USA |
Finnish | 芬蘭語 | fi |
French | 法語 | fr |
French (Canada) | 法語(加拿大) | fr-CAN |
German | 德語 | de |
Greek | 希臘語 | el |
Hebrew | 希伯來語 | he |
Hindi | 印地語 | hi |
Hungarian | 匈牙利語 | hu |
Italian | 意大利語 | it |
Indonesian | 印尼文 | id |
Japanese | 日語 | ja |
Korean | 韓語 | ko |
Mandarin (China) | 普通話(中國) | zh-CHN |
Mandarin (Taiwan) | 普通話(中國臺灣) | zh-TWN |
Norwegian | 挪威語 | no |
Polish | 波蘭語 | pl |
Portuguese (Brazil) | 葡萄牙語(巴西) | pt-BRA |
Portuguese (Portugal) | 葡萄牙語(葡萄牙) | pt |
Romanian | 羅馬尼亞語 | ro |
Russian | 俄語 | ru |
Slovak | 斯洛伐克語 | sk |
Spanish | 西班牙語 | es |
Swedish | 瑞典語 | sv |
Thai | 泰語 | th |
Turkish | 土耳其語 | tr |
注意
(1). 運行程序崩潰?
檢查下是否對應的 SDK靜態(tài)庫包
是否放到當前工程目錄下。
(2). 翻譯沒結果?
檢查下翻譯接口回調的錯誤信息,保證申請的應用ID是有效且提前綁定了。
(3). 添加翻譯 SDK 之后審核沒有通過?
翻譯 SDK 使用了 AdSupport 框架獲取設備 IDFA 信息用以統(tǒng)計計費,提交審核時對應用是否有廣告選項請選擇“是”。
錯誤碼 | 含義 |
---|---|
101 | 缺少必填的參數(shù) |
102 | 不支持的語言類型 |
103 | 翻譯文本過長 |
104 | 不支持的API類型 |
105 | 不支持的簽名類型 |
106 | 不支持的響應類型 |
107 | 不支持的傳輸加密類型 |
108 | 應用ID無效,注冊賬號,登錄后臺創(chuàng)建應用和實例并完成綁定,可獲得應用ID和應用密鑰等信息 |
109 | batchLog格式不正確 |
110 | 無相關服務的有效實例 |
111 | 開發(fā)者賬號無效 |
113 | q不能為空 |
201 | 解密失敗,可能為DES,BASE64,URLDecode的錯誤 |
202 | 簽名檢驗失敗 |
203 | 訪問IP地址不在可訪問IP列表 |
205 | 請求的接口與應用的平臺類型不一致,如有疑問請參考入門指南 |
206 | 因為時間戳無效導致簽名校驗失敗 |
207 | 重放請求 |
301 | 辭典查詢失敗 |
302 | 翻譯查詢失敗 |
303 | 服務端的其它異常 |
401 | 賬戶已經(jīng)欠費停 |
402 | offlinesdk不可用 |
411 | 訪問頻率受限,請稍后訪問 |
412 | 長請求過于頻繁,請稍后訪問 |
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 | 超過最大請求字符數(shù) |
5001 | 無效的OCR類型 |
5002 | 不支持的OCR image類型 |
5003 | 不支持的語言類型 |
5004 | 識別圖片過大 |
5005 | 不支持的圖片類型 |
5006 | 文件為空 |
5201 | 解密錯誤,圖片base64解密失敗 |
5301 | OCR段落識別失敗 |
5411 | 訪問頻率受限 |
5412 | 超過最大識別流量 |
-1000 | 未知錯誤 |
-2000 | 查詢輸入為空 |
上線日期 | 版本號 | 更新內容 |
---|---|---|
2017.05.08 | v1.0.0 | 有道智云翻譯 iOS SDK上線,支持在線離線翻譯 |
2017.06.07 | v1.1.0 | 1. 拆分翻譯 SDK,SDK 拆分為多個文件,用戶可根據(jù)需要引用 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 | 支持在線圖片翻譯 |