五月天综合,欧美一区二区三区在线观看视频,久久中文字幕乱码久久午夜加勒比 ,亚洲一区 视频 在线

幫助與文檔 > 產(chǎn)品文檔 > 自然語言翻譯服務(wù) > Android_SDK文檔 > 實(shí)時(shí)語音翻譯
實(shí)時(shí)語音翻譯

實(shí)時(shí)語音翻譯 SDK 簡介

概述

(1) 概念解釋

實(shí)時(shí)語音翻譯:可實(shí)現(xiàn)對連續(xù)音頻流的實(shí)時(shí)識別,實(shí)時(shí)識別和翻譯語音輸入的內(nèi)容,轉(zhuǎn)換成文本信息并返回對應(yīng)文字流。

(2) 說明

Hi,您好,歡迎使用有道智云實(shí)時(shí)語音翻譯 Android SDK。如果您想快速體驗(yàn)服務(wù),建議您前往實(shí)時(shí)語音翻譯體驗(yàn)中心 或者在體驗(yàn)中心右下側(cè)找到小程序二維碼,掃描進(jìn)行體驗(yàn)。

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

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

###功能介紹

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

###兼容性

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

實(shí)時(shí)語音翻譯 SDK 集成指南

集成前提

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

集成步驟

1. SDK 包導(dǎo)入

請將 ydasr-release.aar 拷貝到 libs 目錄下,并將以下代碼添加到 app 的 build.gradle 中:

apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
    ...
    repositories {
        flatDir {
            dirs 'libs'
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}
dependencies {
    ...
    implementation "android.arch.lifecycle:extensions:$lifecycleVersion"
    implementation "android.arch.lifecycle:common-java8:$lifecycleVersion"
    implementation "com.squareup.okhttp3:okhttp:$okHttpVersion"
    implementation "com.google.code.gson:gson:$gsonVersion"
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"

    implementation (name:'ydasr-release', ext:'aar')

    kapt "android.arch.lifecycle:compiler:$lifecycleVersion"
}
buildscript {
    ext {
        // App dependencies
        gsonVersion = '2.8.5'
        kotlinVersion = '1.3.0'
        lifecycleVersion = '1.1.1'
        okHttpVersion = '3.11.0'
    }
    dependencies {
        ...
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
    }
}

2.AndroidManifest 配置

添加權(quán)限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.BLUETOOTH" />

其中 RECORD_AUDIO 和 WRITE_EXTERNAL_STORAGE 權(quán)限需要動態(tài)申請

3. 代碼混淆配置

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

# Gson
-keepattributes Signature
-keepattributes *Annotation*
-keep class sun.misc.Unsafe { *; }
-keep class com.google.gson.stream.** { *; }

#okhttp3
-dontwarn com.squareup.okhttp3.**
-keep class com.squareup.okhttp3.** { *;}
-dontwarn okhttp3.**
-dontwarn okio.**
-dontwarn javax.annotation.**
-dontwarn org.conscrypt.**

#lifecycle
-keep public class android.arch.lifecycle.** {
    public protected *;
}
-keepclassmembers class ** {
    @android.arch.lifecycle.OnLifecycleEvent public *;
}

#kotlin
-dontwarn kotlin.**

#AsrSdk
-keep class com.youdao.ydasr.** { *; }
-keep interface com.youdao.ydasr.** { *; }
-keep class com.youdao.audio.** { *; }
-keep interface com.youdao.audio.** { *; }

使用說明

// 創(chuàng)建asr返回接口,如果不想實(shí)現(xiàn)所有接口,可以使用實(shí)現(xiàn) OptionalAsrListener
private AsrListener mAsrListener = new AsrListener() {
    // 開始識別回調(diào)
    @Override
    public void onAsrStart() {}

    // 重連后再次連接成功回調(diào)
    @Override
    public void onAsrRestart() {}

    // 結(jié)束識別回調(diào)
    @Override
    public void onAsrStop() {}

    // 正在重連提示
    @Override
    public void onAsrReconnecting() {}

    // 錯誤回調(diào)
    @Override
    public void onAsrError(@NotNull AsrResultCode error) {

    // ASR結(jié)果回調(diào) 識別結(jié)果:result.getResult().getContext()
    // 翻譯結(jié)果:result.getResult().getTranContent()
    @Override
    public void onAsrNext(@NotNull AsrResult result, boolean isPartial) {}

    // 音量變化回調(diào)
    @Override
    public void onAsrVolumeChange(float volume) {}

    // 后端點(diǎn)靜音回調(diào)
    @Override
    public void onAsrSilentEnd() {}

    // 前端點(diǎn)靜音回調(diào)
    @Override
    public void onAsrSilentStart() {}

    // 連接上藍(lán)牙麥克風(fēng)提示
    @Override
    public void onBluetoothAudioConnected() {}

    // 藍(lán)牙麥克風(fēng)斷開提示
    @Override
    public void onBluetoothAudioDisconnected() {}
};

// 在onCreate中調(diào)用,創(chuàng)建AsrManager,并注冊生命周期觀察
asrParams = new ASRParams.Builder()
        .transPattern(transPattern) //翻譯模式 支持實(shí)時(shí)(stream)和整句(sentence)翻譯
        .timeoutStart(5000L)
        .timeoutEnd(10000L)
        .sentenceTimeout(3000L)
        .connectTimeout(10000L)
        .isWaitServerDisconnect(true)
        .build();
mAsrManager = AsrManager.getInstance(this, "your appKey", asrParams, mAsrListener);
getLifecycle().addObserver(mAsrManager);

//設(shè)置是否添加頭文件
mAsrManager.addWavHead = true;

//設(shè)置源語言和目標(biāo)語言 FROM源語言,TO目標(biāo)語言,當(dāng)前已支持多達(dá)80余種語言的互譯
mAsrManager.setASRLanguage(from, to);

//如果是本地已經(jīng)錄制好的文件不需要加頭,其余情況需要添加頭文件
mAsrManager.addWavHead = true;

// 開始連接(注:先連接,后插入數(shù)據(jù)流)
mAsrManager.startConnect();

// 停止識別
mAsrManager.stop();

// 數(shù)據(jù)實(shí)時(shí)翻譯
mAsrManager.insertAudioBytes(bytes);

注:音頻目前僅支持 16k 采樣率,通過手機(jī)錄音獲取的音頻需要添加頭文件,本地文件不需要頭文件

support library 26.1.0 以下處理辦法

針對 support library 26.1.0 以下,請使用這個(gè)版本去除 lifecycle 依賴版本

同時(shí)需要去除 lifecycle 依賴:

dependencies {
    ...
    // implementation "android.arch.lifecycle:extensions:$lifecycleVersion"
    // implementation "android.arch.lifecycle:common-java8:$lifecycleVersion"
    implementation "com.squareup.okhttp3:okhttp:$okHttpVersion"
    implementation "com.google.code.gson:gson:$gsonVersion"
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
    // implementation (name:'ydaudiosdk-release', ext:'aar')
    implementation (name:'ydasrsdk-release', ext:'aar')
    // kapt "android.arch.lifecycle:compiler:$lifecycleVersion"
}

并在調(diào)用過程中去除

// getLifecycle().addObserver(mAsrManager);

并添加:

@Override
protected void onDestroy() {
    mAsrManager.destroy();
    super.onDestroy();
}

識別結(jié)果說明

參數(shù) 含義 說明
bg 分句開始時(shí)間 單位毫秒/ms
ed 分句結(jié)束時(shí)間 單位毫秒/ms
context 識別結(jié)果
tranContent 翻譯結(jié)果
partial 是否是中間結(jié)果 true:中間結(jié)果;false:完整句子
segId 分句 id 從 0 開始遞增

支持語言

代碼 語言
zh-CHS 簡體中文
en 通用英文
enzh 中英混合
ar-IL 阿拉伯語(以色列)
ar-JO 阿拉伯語(約旦)
ar-AE 阿拉伯語(阿拉伯聯(lián)合酋長國)
ar-BH 阿拉伯語(巴林)
ar-DZ 阿拉伯語(阿爾及利亞)
ar-SA 阿拉伯語(沙特阿拉伯)
ar-IQ 阿拉伯語(伊拉克)
ar-KW 阿拉伯語(科威特)
ar-MA 阿拉伯語(摩洛哥)
ar-TN 阿拉伯語(突尼斯)
ar-OM 阿拉伯語(阿曼)
ar-PS 阿拉伯語(巴勒斯坦國)
ar-QA 阿拉伯語(卡塔爾)
ar-LB 阿拉伯語(黎巴嫩)
ar-EG 阿拉伯語(埃及)
pl 波蘭語(波蘭)
da 丹麥語(丹麥)
de 德語(德國)
ru 俄語
fr 法語(法國)
fr-CA 法語(加拿大)
fi 芬蘭語(芬蘭)
ko 韓語(韓國)
nl 荷蘭語(荷蘭)
cs 捷克語(捷克共和國)
hr 克羅地亞語(克羅地亞)
lv 拉脫維亞語(拉脫維亞)
ro 羅馬尼亞語(羅馬尼亞)
ms 馬來語(馬來西亞)
pt-BRA 葡萄牙語(巴西)
pt 葡萄牙語(葡萄牙)
ja 日語(日本)
sv 瑞典語(瑞典)
te 泰盧固語(印度)
ta 泰米爾語(印度)
ta-SG 泰米爾語(新加坡)
ta-LK 泰米爾語(斯里蘭卡)
ta-MY 泰米爾語(馬來西亞)
th 泰語(泰國)
tr 土耳其語(土耳其)
es 西班牙語(西班牙)
es-AR 西班牙語(阿根廷)
es-BO 西班牙語(玻利維亞)
es-CL 西班牙語(智利)
es-COL 西班牙語(哥倫比亞)
es-CR 西班牙語(哥斯達(dá)黎加)
es-EC 西班牙語(厄瓜多爾)
es-SV 西班牙語(薩爾瓦多)
es-US 西班牙語(美國)
es-GT 西班牙語(危地馬拉)
es-HN 西班牙語(洪都拉斯)
es-MEX 西班牙語(墨西哥)
es-NI 西班牙語(尼加拉瓜)
es-PA 西班牙語(巴拿馬)
es-PY 西班牙語(巴拉圭)
es-PE 西班牙語(秘魯)
es-PR 西班牙語(波多黎各)
es-DO 西班牙語(多米尼加共和國)
es-UY 西班牙語(烏拉圭)
es-VE 西班牙語(委內(nèi)瑞拉)
it 意大利語(意大利)
hi 印地語(印度)
en-AUS 英語(澳大利亞)
en-CA 英語(加拿大)
en-GH 英語(加納)
en-GBR 英語(英國)
en-IND 英語(印度)
en-IE 英語(愛爾蘭)
en-KE 英語(肯尼亞)
en-NZ 英語(新西蘭)
en-NG 英語(尼日利亞)
en-PH 英語(菲律賓)
en-SG 英語(新加坡)
en-ZAF 英語(南非)
en-TZ 英語(坦桑尼亞)
en-US 英語(美國)
vi 越南語(越南)
zh-TWN 臺灣普通話(中國臺灣)
lo 老撾語(老撾)
bn 孟加拉語(孟加拉)
bn-IN 孟加拉語(印度)
tl 菲律賓語

錯誤代碼列表

錯誤碼 含義
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ù)
4001 不支持的語音識別格式
4002 不支持的語音識別采樣率
4003 不支持的語音識別聲道
4004 不支持的語音上傳類型
4005 不支持的語言類型
4006 識別音頻文件過大
4007 識別音頻時(shí)長過長
4201 解密失敗
4301 語音識別失敗
4303 服務(wù)的異常
4411 訪問頻率受限,請稍后訪問
4412 超過最大請求時(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 超過最大識別流量
11001 不支持的語音識別格式
11002 不支持的語音識別采樣率
11003 不支持的語音識別聲道
11004 不支持的語音上傳類型
11005 不支持的語言類型
11006 識別音頻文件過大
11007 識別音頻時(shí)長過長,最大支持 30s
11201 解密失敗
11301 語音識別失敗
11303 服務(wù)的異常
11411 訪問頻率受限,請稍后訪問
11412 超過最大請求時(shí)長
12001 圖片尺寸過大
12002 圖片 base64 解密失敗
12003 引擎服務(wù)器返回錯誤
12004 圖片為空
12005 不支持的識別圖片類型
12006 圖片無匹配結(jié)果
13001 不支持的角度類型
13002 不支持的文件類型
13003 表格識別圖片過大
13004 文件為空
13301 表格識別失敗
15001 需要圖片
15002 圖片過大(1M)
15003 服務(wù)調(diào)用失敗
17001 需要圖片
17002 圖片過大(1M)
17003 識別類型未找到
17004 不支持的識別類型
17005 服務(wù)調(diào)用失敗
-1000 未知錯誤
-2000 查詢輸入為空

關(guān)于 Demo 中本地文件識別命名規(guī)則說明

將 wav 后綴文件儲存至手機(jī)存儲的 ydasrDemo/temp 目錄下,將文件名改成對應(yīng) from 語言的對應(yīng)參數(shù)時(shí),可自動根據(jù)所選 from 語言種類自動選擇相對應(yīng)的音頻文件。

例如:該目錄下存在 da.wav 的音頻文件。當(dāng)選擇 from 語言為丹麥語(丹麥)時(shí),點(diǎn)擊翻譯本地文件按鈕后,自動開始翻譯 da.wav 文件。

版本更新記錄

上線日期 版本號 更新內(nèi)容
2019.06.20 v1.0.0 支持實(shí)時(shí)語音翻譯和整句翻譯
2019.09.19 v1.1.0 擴(kuò)充小語種