91精品久久人人妻人人爽人人,一本a道久遛,中文字幕在线精品视频入口一区,无码伊人久久大杳蕉中文无码

幫助與文檔 > 產(chǎn)品文檔 > 自然語言翻譯服務 > Android_SDK文檔 > 文本翻譯
文本翻譯

文本翻譯 Android SDK 簡介

概述

(1) 概念解釋

文本翻譯:將一段源語言文本轉換成目標語言文本,可根據(jù)語言參數(shù)的不同實現(xiàn)多國語音之間的互譯

(2) 說明

Hi,您好,歡迎使用有道智云文本翻譯Android SDK。如果您想快速體驗服務,建議您前往翻譯體驗中心 或者在體驗中心右下側找到小程序二維碼,掃描進行體驗。

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

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

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

如果您對文檔內(nèi)容有任何疑問,可以通過以下幾種方式聯(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)建Android應用,并綁定文本翻譯實例;如果您還沒有,請按照 新手指南操作。
平臺向每個賬戶贈送50元的體驗金,供用戶集成前測試所用,具體資費規(guī)則詳見 文本翻譯服務報價 。

功能介紹

文本翻譯SDK是有道在線文本翻譯服務進行封裝,提供快速的接入方式。

兼容性

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

文本翻譯 Android SDK集成指南

集成前提

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

集成步驟

(1) SDK包導入

請在工程文件根目錄下創(chuàng)建一個名為 libs 的子目錄(有的話則不需要創(chuàng)建),并將以下jar包拷貝到 libs 目錄下:

文件說明
YoudaoBase_v20230803.jar翻譯相關sdk基礎庫(必選)
online_auth.jar翻譯相關sdk基礎庫(必選)
zhiyun_offline_common.jar翻譯相關sdk基礎庫(必選)
YoudaoCnDictOffline.jar漢語詞典翻譯sdk(可選,使用漢語詞典功能時使用)
YoudaoTranslateOnline_v2.0.1.jar在線翻譯sdk(可選,包含英漢互譯,以及小語種翻譯,在線查詢)

將以下代碼添加到app的build.gradle中:

android {
    sourceSets.main.jniLibs.srcDirs = ['libs']
    ...
}
dependencies {
    compile files('libs/YoudaoBase_v20230803.jar')
    compile files('libs/online_auth.jar')
    compile files('libs/zhiyun_offline_common.jar')
    compile files('libs/YoudaoTranslateOnline_v2.0.1.jar')
    compile files('libs/YoudaoCnDictOffline.jar')
    compile files('libs/YoudaoTranslateOffline.jar')
}

(2) AndroidManifest配置

<uses-permission android:name="android.permission.INTERNET" />
        <!-- 獲取WiFi狀態(tài) -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <!-- 獲取網(wǎng)絡信息狀態(tài),如當前的網(wǎng)絡連接是否有效 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <!-- 讀取手機狀態(tài) phone group -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <!-- 往SDCard讀寫數(shù)據(jù)權限   storage group -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

(3) 代碼混淆配置

代碼混淆文件proguard-project.txt,添加如下內(nèi)容:

-ignorewarnings
-libraryjars libs/ YoudaoBase_v20230803.jar
-libraryjars libs/ YoudaoCnDictOffline.jar
-libraryjars libs/ YoudaoTranslateOnline_v2.0.1.jar
-libraryjars libs/ YoudaoTranslateOffline.jar

-keep class com.youdao.sdk.ydtranslate.** { *;}
-keep class com.youdao.sdk.chdict.** { *;}
-keep class com.youdao.localtransengine.** { *;}
-keep class com.youdao.sdk.ydonlinetranslate.** { *;}

(4) SDK初始化

使用圖片翻譯SDK,請在程序的Application中調(diào)用SDK初始化代碼,可以參考demo中DemoApplication。
注:appKey即應用ID

//appKey即應用ID
YouDaoApplication.init(this, appkey,appSecret);

功能集成

1.漢語詞典翻譯功能集成

(1) 構造查詞對象

提供了兩種初始化方法,如下所示:

/*
 * 可以查詞之前設置詞庫路徑,則采用默認路徑Environment
 *   .getExternalStorageDirectory().getPath() + "/yuwen/backup/"
 * 請確保設置的路徑或者默認路徑下包含漢語詞典的包
 */
chDictor = new ChDictor();
/*
*表*示Environment.getExternalStorageDirectory().getAbsolutePath()* + dictFilePath路徑下存在庫
*/
chDictor = new ChDictor(dictFilePath);

(2) 查詞對象初始化和查詢

//注意,每次查詢之前都需要初始化
chDictor.init();
chDictor.lookup(text, new DictListener() {
       @Override
       public void onResult(final List<ChDictTranslate> chTs) {
         //針對多音字的情況,可能返回多個ChDictTranslate對象,比如查詢“會”
         // 注意:回調(diào)是在子線程中進行,拿到查詢結果之后若有更新UI操作,請切換到主線程執(zhí)行
         MainHandler.getInstance().post(new Runnable() {
             @Override
             public void run() {
             }
         });
       }
       @Override
       public void onError(String q, String info) {
         // TODO Auto-generated method stub
       }
});

注意: 使用漢語詞典前,請確認 最新漢語詞庫v1.1\最新漢語詞庫\hh 在設置的路徑或者默認路徑下

2.在線查詞和翻譯功能(支持小語種)功能集成

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

(1) 參數(shù)說明

from:表示源語言

to:表示目標語言

source:設置為app對應的名稱(英文字符串)

注意:若from設置為自動,則查詢自動識別源語言,自動識別不能保證完全正確,最好傳源語言類型

(2) 構造查詞參數(shù)對象

Language langFrom = LanguageUtils.getLangByName("中文");
Language langTo = LanguageUtils.getLangByName("英文");

TranslateParameters tps = new TranslateParameters.Builder()
       .source("ydtranslate-demo")
       .from(langFrom)
       .to(langTo)
       .build();

(3) 設置回調(diào)和開始翻譯

通過Translator,設置上一步構造的查詞對象,調(diào)用lookup方法傳入文本數(shù)據(jù)和回調(diào)接口開始查詢,方法中參數(shù)"requestId",SDK并未使用,在回調(diào)中會再返回給開發(fā)者,用于區(qū)分每次調(diào)用,開發(fā)者可傳null或者任意字符串。

識別回調(diào)接口包含兩個方法:onResult表示識別成功,相關結果存儲在result參數(shù)中,onError表示失敗,失敗信息放在TranslateErrorCode枚舉類中。

注意:整個識別是異步的,回調(diào)在子線程進行,若涉及到界面操作,請切回主線程。

Translator.getInstance(tps).lookup(input, "requestId", new TranslateListener() {

        @Override
        public void onResult(Translate result, String input, String requestId) {//查詢成功

        }

        @Override
        public void onError(TranslateErrorCode error, String requestId) {//查詢失敗

        }

        @Override
        public void onResult(List<Translate> results, List<String> input, List<TranslateErrorCode> errors, String requestId) {//查詢成功

        }
});

3.查詞和句子翻譯功能集成

(1) 查詞對象初始化

translatorOffline = new TranslatorOffline();

(2) 初始化詞庫

若使用查詞,請通過方式一、方式二或者方式三初始化詞庫,三種方式只能選擇一種;

初始化詞庫方式一,詞庫在assets/dict目錄下,不支持直接放在assets目錄下

translatorOffline.initWordDict("dict", true, new EnWordTranslator.EnWordInitListener() {
            @Override
            public void success() {

            }
            public void fail(TranslateErrorCode errorCode){
                Log.d("translatorOffline","init false");
            }
        });

初始化詞庫方式二,指定詞庫絕對路徑,比如sd卡下:

translatorOffline.initWordDict(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Youdao/localdict1/", false, new EnWordTranslator.EnWordInitListener() {
            @Override
            public void success() {
                Log.d("translatorOffline", "init success");
                long end = System.currentTimeMillis();
                long time = end - start;
                Log.i("1111111111111111", "111111111初始化時間" + time);
            }

            public void fail(TranslateErrorCode errorCode) {
                Log.d("translatorOffline", "init false");
            }
        });

初始化詞庫方式三,分別指定每個詞庫的路徑:

//初始化中日詞庫,若使用日中還需要初始化日中詞庫
       translatorOffline.initWordDictWithWordConvert("dict", true, WordConvert.CH2JA, new EnWordTranslator.EnWordInitListener() {
            @Override
            public void success() {
            }
            public void fail(TranslateErrorCode errorCode){

            }
        });
//初始化韓中詞庫,若使用中韓,還需要初始化中韓詞庫
        translatorOffline.initWordDictWithWordConvert(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Youdao/localdict2/", false, WordConvert.KO2CH, new EnWordTranslator.EnWordInitListener() {
            @Override
            public void success() {
            }
            public void fail(TranslateErrorCode errorCode){
            }
        });
//初始化中英、英中詞庫
        translatorOffline.initWordDictWithWordConvert("dict", true, WordConvert.EN2CH, new EnWordTranslator.EnWordInitListener() {
            @Override
            public void success() {
            }
            public void fail(TranslateErrorCode errorCode){

            }
        });

(3) 初始化句子庫

translatorOffline.initLineDict(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Youdao/Translator/transdata/data/ce2");

(4) 獲取詞庫和句子庫是否初始化成功

translatorOffline.isLineInited();        translatorOffline.isWordInited();

(5) 執(zhí)行查詢

String from = "中文";
String to = "英文";
Language langFrom = LanguageUtils.getLangByName(from);
Language langTo = LanguageUtils.getLangByName(to);
TranslateParameters parameters = new TranslateParameters.Builder().
        from(langFrom).to(langTo).useAutoConvertWord(true).useAutoConvertLine(false).build();
translatorOffline.lookupNative(input, parameters, "requestId", new TranslateListener() {
    @Override
    public void onResult(final Translate result, String input, String requestId) {
        handler.post(new Runnable() {
            @Override
            public void run() {

            }
        });
    }

    @Override
    public void onError(final TranslateErrorCode error, String requestId) {
        handler.post(new Runnable() {
            @Override
            public void run() {
                T
            }
        });
    }
});

注意:

1.若查詞和查句子都初始化了,則每次查詢,先去詞庫中找,若找不到去句子庫中查詢

2.查詞功能,詞庫支持放在assets目錄下,此時需要將詞庫localdict.datx解壓到對應目錄下(解壓得到三個文件),若是sd卡路徑,開發(fā)者可以直接放置解壓前或者解壓后的文件。使用句子翻譯前,請確定"句子\ce"文件夾下的2個文件夾,e2c和c2e在設置的路徑中或者默認路徑下是存在的。

3.useAutoConvertWord和useAutoConvertLine參數(shù)是指定是否自動識別中英文,若設置為true,則查詢時自動忽略from和to參數(shù),根據(jù)實際輸入查詢,若設置為false,則嚴格按照from和to參數(shù)返回查詢結果

4.若想查詢不常見的變形詞,如,countries,請使用擴展詞庫。將wordlib.zip中的文件解壓到中英詞庫同級目錄。wordlib下的文件跟localdict.datx在同一級目錄,不需要wordlib文件夾。當查詢countries有查詢結果時,說明擴展詞庫生效。

4.deeplink功能

說明:請參考 demo 中 TranslateDetailActivityHanyuActivity 查看更多功能的使用

SDK中查詢結果 Translate(英語單詞、句子在線、查詢返回結果類)和 ChDictTranslate(漢語詞典查詢結果類)中提供了 openMore(Context context)方法來實現(xiàn)查看更多的跳轉,若用戶安裝詞典則打開詞典 app,否則打開詞典移動 web 頁面。

代碼使用:

translate.openMore(context);

注意:若上面跳轉邏輯不能滿足開發(fā)需求,可調(diào)用

translate.getDictWebUrl() 方法得到對應的查詞 web 頁面地址

translate.openDict(context) 方法跳轉到詞典,若跳轉成功,返回 true,否則返回 false

支持語言

下表為各語言對應代碼:

英文名中文名代碼
Arabic阿拉伯語ar
German德語de
English英語en
Spanish西班牙語es
French法語fr
Hindi印地語hi
Indonesian印度尼西亞語id
Italian意大利語it
Japanese日語ja
Korean韓語ko
Dutch荷蘭語nl
Portuguese葡萄牙語pt
Russian俄語ru
hai泰語th
Vietnamese越南語vi
Chinese簡體中文zh-CHS
Chinese繁體中文zh-CHT
Afrikaans南非荷蘭語af
Amharic阿姆哈拉語am
Azeerbaijani阿塞拜疆語az
Belarusian白俄羅斯語be
Bulgarian保加利亞語bg
Bangla孟加拉語bn
Bosnian (Latin)波斯尼亞語bs
Catalan加泰隆語ca
Cebuano宿務語ceb
Corsican科西嘉語co
Czech捷克語cs
Welsh威爾士語cy
Danish丹麥語da
Greek希臘語el
Esperanto世界語eo
Estonian愛沙尼亞語et
Basque巴斯克語eu
Persian波斯語fa
Finnish芬蘭語fi
Fijian斐濟語fj
Frisian弗里西語fy
Irish愛爾蘭語ga
Scots蘇格蘭蓋爾語gd
Galician加利西亞語gl
Gujarati古吉拉特語gu
Hausa豪薩語ha
Hawaiian夏威夷語haw
Hebrew希伯來語he
Hindi印地語hi
Croatian克羅地亞語hr
Haitian海地克里奧爾語ht
Hungarian匈牙利語hu
Armenian亞美尼亞語hy
Igbo伊博語ig
Icelandic冰島語is
Javanese爪哇語jw
Georgian格魯吉亞語ka
Kazakh哈薩克語kk
Khmer高棉語km
Kannada卡納達語kn
Kurdish庫爾德語ku
Kyrgyz柯爾克孜語ky
Latin拉丁語la
Luxembourgish盧森堡語lb
Lao老撾語lo
Lithuanian立陶宛語lt
Latvian拉脫維亞語lv
Malagasy馬爾加什語mg
Maori毛利語mi
Macedonian馬其頓語mk
Malayalam馬拉雅拉姆語ml
Mongolian蒙古語mn
Marathi馬拉地語mr
Malay馬來語ms
Maltese馬耳他語mt
Hmong白苗語mww
Myanmar (Burmese)緬甸語my
Nepali尼泊爾語ne
Dutch荷蘭語nl
Norwegian挪威語no
Nyanja (Chichewa)齊切瓦語ny
Querétaro Otomi克雷塔羅奧托米語otq
Punjabi旁遮普語pa
Polish波蘭語pl
Pashto普什圖語ps
Romanian羅馬尼亞語ro
Sindhi信德語sd
Sinhala (Sinhalese)僧伽羅語si
Slovak斯洛伐克語sk
Slovenian斯洛文尼亞語sl
Samoan薩摩亞語sm
Shona修納語sn
Somali索馬里語so
Albanian阿爾巴尼亞語sq
Serbian (Cyrillic)塞爾維亞語(西里爾文)sr-Cyrl
Serbian (Latin)塞爾維亞語(拉丁文)sr-Latn
Sesotho塞索托語st
Sundanese巽他語su
Swedish瑞典語sv
Kiswahili斯瓦希里語sw
Tamil泰米爾語ta
Telugu泰盧固語te
Tajik塔吉克語tg
Filipino菲律賓語tl
Klingon克林貢語tlh
Tongan湯加語to
Turkish土耳其語tr
Tahitian塔希提語ty
Ukrainian烏克蘭語uk
Urdu烏爾都語ur
Uzbek烏茲別克語uz
Xhosa南非科薩語xh
Yiddish意第緒語yi
Yoruba約魯巴語yo
Yucatec尤卡坦瑪雅語yua
Cantonese (Traditional)粵語yue
Zulu南非祖魯語zu
自動識別auto

注意:
其中auto可以識別中文、英文、日文、韓文、法文、西班牙文、葡萄牙文、俄文、越南文、德文、阿拉伯文、印尼文、意大利文,其他語種無法識別,為提高準確率,請指定語種。

錯誤代碼列表

錯誤碼含義
101缺少必填的參數(shù)
102不支持的語言類型
103翻譯文本過長
104不支持的API類型
105不支持的簽名類型
106不支持的響應類型
107不支持的傳輸加密類型
108應用ID無效,注冊賬號,登錄后臺創(chuàng)建應用和實例并完成綁定,可獲得應用ID和應用密鑰等信息
109batchLog格式不正確
110無相關服務的有效實例
111開發(fā)者賬號無效
113q不能為空
114不支持的圖片傳輸方式
201解密失敗,可能為DES,BASE64,URLDecode的錯誤
202簽名檢驗失敗
203訪問IP地址不在可訪問IP列表
205請求的接口與應用的平臺類型不一致,如有疑問請參考入門指南
206因為時間戳無效導致簽名校驗失敗
207重放請求
301辭典查詢失敗
302翻譯查詢失敗
303服務端的其它異常
304會話閑置太久超時
401賬戶已經(jīng)欠費停
402offlinesdk不可用
411訪問頻率受限,請稍后訪問
412長請求過于頻繁,請稍后訪問
1001無效的OCR類型
1002不支持的OCR image類型
1003不支持的OCR Language類型
1004識別圖片過大
1201圖片base64解密失敗
1301OCR段落識別失敗
1411訪問頻率受限
1412超過最大識別字節(jié)數(shù)
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ù)
4001不支持的語音識別格式
4002不支持的語音識別采樣率
4003不支持的語音識別聲道
4004不支持的語音上傳類型
4005不支持的語言類型
4006識別音頻文件過大
4007識別音頻時長過長
4201解密失敗
4301語音識別失敗
4303服務的異常
4411訪問頻率受限,請稍后訪問
4412超過最大請求時長
5001無效的OCR類型
5002不支持的OCR image類型
5003不支持的語言類型
5004識別圖片過大
5005不支持的圖片類型
5006文件為空
5201解密錯誤,圖片base64解密失敗
5301OCR段落識別失敗
5411訪問頻率受限
5412超過最大識別流量
9001不支持的語音格式
9002不支持的語音采樣率
9003不支持的語音聲道
9004不支持的語音上傳類型
9005不支持的語音識別 Language類型
9301ASR識別失敗
9303服務器內(nèi)部錯誤
9411訪問頻率受限(超過最大調(diào)用次數(shù))
9412超過最大處理語音長度
10001無效的OCR類型
10002不支持的OCR image類型
10004識別圖片過大
10201圖片base64解密失敗
10301OCR段落識別失敗
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服務調(diào)用失敗
17001需要圖片
17002圖片過大(1M)
17003識別類型未找到
17004不支持的識別類型
17005服務調(diào)用失敗
-1000未知錯誤
-2000查詢輸入為空

常見問題及注意事項

1.運行程序崩潰?
檢查下是否對應的 so 是否放到當前工程目錄下。

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

3.如何獲得應用ID
注冊賬號, 登錄后臺創(chuàng)建應用和實例并完成綁定, 可獲得應用ID和應用密鑰等信息。

4.出現(xiàn)錯誤HTTP_REQUEST_ERROR("Http requesterror.",1)
在確保有網(wǎng)情況下,若調(diào)用過程中出現(xiàn)這個錯誤,HTTP_REQUEST_ERROR("Http requesterror.",1) ,請檢查是否是在主線程中調(diào)用的翻譯識別方法,請確保在主線程調(diào)用。

版本更新記錄

上線日期版本號更新內(nèi)容
2017.05.08v1.0.0有道智云翻譯 Android SDK上線,支持在線翻譯
2017.06.07v1.1.01. 拆分翻譯 SDK,SDK 拆分為多個文件,用戶可根據(jù)需要引用
2017.06.30v1.2.0修復已知 bug
2017.07.24v1.3.01. 修復 deeplink 相關 bug
2017.08.16v1.4.01. 修復已知 bug
2017.11.16v1.5.01. 合并查詞和句子翻譯
2018.02.09v1.7.01. 新增每種詞庫不同路徑初始化2. 支持在線語音翻譯
2018.04.26v1.7.11. 新增越南語和繁體中文2. 支持在線語音翻譯
2018.05.16v1.7.2支持在線圖片翻譯
2019.11.05v2.0.0兼容多個sdk同時使用
2023.08.07v2.0.0升級sdk
亚洲老司机综合网| 丁香花电视剧剧情| 亚洲福利一区二区| 欧美中文字幕无线码视频| 色婷婷网| 久久精品中文闷骚内射| 日韩av动漫| 天堂久久爱资源站www| 国产美女综合| 欧美精品系列| 色哟哟哟| 久久久久亚洲精品国产| 五月停停综合网| 国产精品久久久久久亚洲影视内衣| 日韩高清无码一区二区三区四区| 日韩v片| 国产精品午夜福利| 国产黄片精品一区| 偷拍 欧美 日韩| 国产91视频网站| 无码精品久久一区二区三区| 免费久久精品视频| 一本一本久久a久久| 国产中文字幕一区| 欧美激情一区二区三级高清视频 | 国产一区二区三区四区老人| 秋霞在线无码| 日韩亚洲一区二区三区| 久久久亚洲AⅤ无码精品| 成人蜜桃视频| 日韩精品一区二区三区在线观看| 崇义县| 熟妇人妻无码字幕老熟妇| 精品人成视频免费国产| 午夜老湿机免费| 日韩一欧美| 欧美熟妇在线| 亚洲一级福利片| 国产精品久久久久一区| 伦乱久久久| 久久久亚洲欧洲日产国码是av|