(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基礎庫(必選) |
| 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),只執行初始化一次即可。 注: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";//聲道數,目前只支持單聲道,請寫固定值1
request.param = param;
(3) 將語音數據轉化為base64編碼
NSData *speechData = [NSData dataWithContentsOfURL:self.recordFileUrl];
NSString *base64Str = [speechData base64EncodedStringWithOptions:0];
(4) 執行翻譯過程。
翻譯返回兩種情況,一種是成功,相關結果存儲在 result 參數中,另外一種是失敗,失敗信息放在 error,可根據 錯誤代碼列表 查詢。整個識別是異步的。
[request lookup:base64Str WithCompletionHandler:^(YDSpeechOnlineRequest *request, YDSpeechResult *result, NSError *error) {
if (error) {
//失敗
NSLog(@"error:%@", error);
}else {
//成功
[self handleReuslt:result];
}
}];
對于在線語音翻譯,服務器查詢結果返回數據如下:
{
"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 | 翻譯結果發音地址,翻譯成功一定存在 |
| errorCode | 翻譯結果錯誤碼,一定存在 |
| query | 源語言文本,翻譯成功一定存在 |
| translation | 翻譯結果,翻譯成功一定存在 |
| dict | 詞典deeplink |
| webdict | 詞典web deeplink |
| speakUrl | 源語言發音地址,翻譯成功一定存在 |
SDK對上述json數據解析封裝為YDSpeechResult對象,如下
@interface YDSpeechResult : NSObject
/* 翻譯結果發音地址,翻譯成功一定存在 */
@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;
/* 源語言發音地址,翻譯成功一定存在 */
@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靜態庫包 是否放到當前工程目錄下。
(2). 翻譯沒結果?
檢查下翻譯接口回調的錯誤信息,保證申請的應用ID是有效且提前綁定了。
(3). 添加翻譯 SDK 之后審核沒有通過?
翻譯 SDK 使用了 AdSupport 框架獲取設備 IDFA 信息用以統計計費,提交審核時對應用是否有廣告選項請選擇“是”。
| 錯誤碼 | 含義 |
|---|---|
| 101 | 缺少必填的參數 |
| 102 | 不支持的語言類型 |
| 103 | 翻譯文本過長 |
| 104 | 不支持的API類型 |
| 105 | 不支持的簽名類型 |
| 106 | 不支持的響應類型 |
| 107 | 不支持的傳輸加密類型 |
| 108 | 應用ID無效,注冊賬號,登錄后臺創建應用和實例并完成綁定,可獲得應用ID和應用密鑰等信息 |
| 109 | batchLog格式不正確 |
| 110 | 無相關服務的有效實例 |
| 111 | 開發者賬號無效 |
| 113 | q不能為空 |
| 201 | 解密失敗,可能為DES,BASE64,URLDecode的錯誤 |
| 202 | 簽名檢驗失敗 |
| 203 | 訪問IP地址不在可訪問IP列表 |
| 205 | 請求的接口與應用的平臺類型不一致,如有疑問請參考入門指南 |
| 206 | 因為時間戳無效導致簽名校驗失敗 |
| 207 | 重放請求 |
| 301 | 辭典查詢失敗 |
| 302 | 翻譯查詢失敗 |
| 303 | 服務端的其它異常 |
| 401 | 賬戶已經欠費停 |
| 402 | offlinesdk不可用 |
| 411 | 訪問頻率受限,請稍后訪問 |
| 412 | 長請求過于頻繁,請稍后訪問 |
| 2003 | 不支持的語音聲道 |
| 2004 | 不支持的語音上傳類型 |
| 2005 | 不支持的語言類型 |
| 2006 | 不支持的識別類型 |
| 2201 | 識別音頻文件過大 |
| 2301 | 識別音頻時長過長 |
| 2411 | 不支持的音頻文件類型 |
| 2412 | 不支持的發音類型 |
| 3001 | 不支持的語音格式 |
| 3002 | 不支持的語音采樣率 |
| 3003 | 不支持的語音聲道 |
| 3004 | 不支持的語音上傳類型 |
| 3005 | 不支持的語言類型 |
| 3006 | 不支持的識別類型 |
| 3007 | 識別音頻文件過大 |
| 3008 | 識別音頻時長過長 |
| 3009 | 不支持的音頻文件類型 |
| 3010 | 不支持的發音類型 |
| 3201 | 解密失敗 |
| 3301 | 語音識別失敗 |
| 3302 | 語音翻譯失敗 |
| 3303 | 服務的異常 |
| 3411 | 訪問頻率受限,請稍后訪問 |
| 3412 | 超過最大請求字符數 |
| 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 拆分為多個文件,用戶可根據需要引用 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 | 支持在線圖片翻譯 |