實時語音識別 Android SDK簡介
概述
(1) 概念解釋
實時語音識別:可實現(xiàn)對連續(xù)音頻流的實時識別,轉(zhuǎn)換成文本信息并返對應(yīng)文字流
(2) 說明
Hi,您好,歡迎使用有道智云實時語音識別Android SDK。
本文檔主要針對需要集成實時語音識別的Android開發(fā)工程師,詳細(xì)描述實時語音識別能力相關(guān)的技術(shù)內(nèi)容。
如果您想快速體驗服務(wù),建議您前往 語音識別體驗中心 或者在體驗中心右下側(cè)找到小程序二維碼,掃描進(jìn)行體驗。
如果您有與我們商務(wù)合作的需求,可以通過以下方式聯(lián)系我們:
商務(wù)郵箱: AIcloud_Business@corp.youdao.com
如果您對文檔內(nèi)容有任何疑問,可以通過以下幾種方式聯(lián)系我們:
客服QQ:1906538062
智云語音技術(shù)交流QQ群:861723255
聯(lián)系郵箱: zhiyun@corp.youdao.com
溫馨提示:
本文檔主要針對開發(fā)人員,接入測試前需要在后臺創(chuàng)建 Android 應(yīng)用,并綁定實例;如果您還沒有,請按照 新手指南 操作。
平臺向每個賬戶贈送50元的體驗金,供用戶集成前測試所用,具體資費規(guī)則詳見 實時語音識別服務(wù)報價 。
功能介紹
實時語音識別SDK是對有道實時語音識別接口服務(wù)進(jìn)行封裝。提供快速的接入方式;同時提供數(shù)據(jù)統(tǒng)計能力,方便了解用戶使用情況。
兼容性
支持設(shè)備:運行了 Android 4.0.3以及以上系統(tǒng)的 Android 設(shè)備
實時語音識別SDK集成指南
集成前提
開始集成SDK之前開發(fā)者需要登錄 有道智云平臺 ,創(chuàng)建應(yīng)用獲取應(yīng)用ID(或者通過運營人員獲取應(yīng)用ID),以便使用實時語音識別服務(wù)。
集成步驟
(1) SDK包導(dǎo)入
請在工程文件根目錄下創(chuàng)建一個名為 libs 的子目錄(有的話則不需要創(chuàng)建),并將ydasrsdk-v2.0.2.jar拷貝到 libs 目錄下,并將以下代碼添加到app的build.gradle中:
dependencies {
...
implementation "android.arch.lifecycle:extensions:1.1.1"
implementation "android.arch.lifecycle:common-java8:1.1.1"
implementation "com.squareup.okhttp3:okhttp:3.11.0"
implementation "com.google.code.gson:gson:2.8.5"
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.3.0"
implementation files('libs/ydasrsdk-v2.0.2.jar')
}
(2) AndroidManifest配置
<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和READ_EXTERNAL_STORAGE 權(quán)限需要動態(tài)申請,申請權(quán)限代碼可見demo代碼所示。
(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.** { *; }
功能集成
(1) 創(chuàng)建asr返回接口
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), isSentence當(dāng)前一句是否結(jié)束,是否是完整的句子
@Override
public void onAsrNext(@NotNull AsrResult result, boolean isSentence) {}
// 音量變化回調(diào)
@Override
public void onAsrVolumeChange(float volume) {}
// 后端點靜音回調(diào)
@Override
public void onAsrSilentEnd() {}
// 前端點靜音回調(diào)
@Override
public void onAsrSilentStart() {}
// 連接上藍(lán)牙麥克風(fēng)提示
@Override
public void onBluetoothAudioConnected() {}
// 藍(lán)牙麥克風(fēng)斷開提示
@Override
public void onBluetoothAudioDisconnected() {}
};
(2) 創(chuàng)建AsrManager
在activity中創(chuàng)建AsrManager,初始化的參數(shù)包含appKey(如何獲取見集成前提)并注冊生命周期觀察
mAsrManager = AsrManager.getInstance(this, Consts.AsrAppKey, mAsrListener);
getLifecycle().addObserver(mAsrManager);
(3) 開始識別
Map<String, Object> params = new HashMap<>();
params.put(AsrParams.LANG, mLang);
params.put(AsrParams.SILENT_TIMEOUT_START, 5000L);
params.put(AsrParams.SILENT_TIMEOUT_END, 10000L);
params.put(AsrParams.SENTENCE_TIMEOUT, 3000L);
params.put(AsrParams.CONNECT_TIMEOUT, 10000L);
params.put(AsrParams.WAIT_SERVER_DISCONNECT, true);
mAsrManager.start(params);
注:音頻文件僅支持16k采樣的wav音頻
(4) 停止識別
mAsrManager.stop();
(5) 插入本地數(shù)據(jù)
Map<String, Object> params = new HashMap<>();
params.put(AsrParams.LANG, mLang);
params.put(AsrParams.SILENT_TIMEOUT_START, 5000L);
params.put(AsrParams.SILENT_TIMEOUT_END, 10000L);
params.put(AsrParams.SENTENCE_TIMEOUT, 3000L);
params.put(AsrParams.CONNECT_TIMEOUT, 10000L);
params.put(AsrParams.WAIT_SERVER_DISCONNECT, true);
mAsrManager.startConnect(params);
然后在asr回掉的onAsrStart中插入本地文件流
mAsrManager.insertAudioBytes(bytes);
識別結(jié)果
{
"result": [{
"st": [{
"bg": 30,
"ed": 480,
"ws": [{
"w": "Have",
"wb": 30,
"we": 240
}, {
"w": "a",
"wb": 240,
"we": 270
}, {
"w": "good",
"wb": 270,
"we": 480
}, {
"w": "day.",
"wb": 480,
"we": 480
}]
}],
"seg_id": 0
}],
"errorCode": "0",
"action": "recognition"
}
參數(shù) |
含義 |
說明 |
errorCode |
String |
狀態(tài)碼,詳見 錯誤代碼列表 |
action |
String |
狀態(tài)標(biāo)。started:握手;recognition:識別;error:錯誤 |
result |
String |
識別結(jié)果數(shù)據(jù) |
bg |
分句開始時間 |
單位毫秒/ms |
ed |
分句結(jié)束時間 |
單位毫秒/ms |
w |
詞(字)識別結(jié)果 |
|
wb |
詞(字)開始時間 |
單位毫秒/ms |
we |
詞(字)結(jié)束時間 |
單位毫秒/ms |
seg_id |
分句 id |
從 0 開始遞增 |
支持語言
language |
語種(中文) |
語言代碼 |
Arabic (United Arab Emirates) |
阿拉伯語(阿拉伯聯(lián)合酋長國) |
ar-AE |
Arabic (Bahrain) |
阿拉伯語(巴林) |
ar-BH |
Arabic (Algeria) |
阿拉伯語(阿爾及利亞) |
ar-DZ |
Arabic (Egypt) |
阿拉伯語(埃及) |
ar-EG |
Arabic (Israel) |
阿拉伯語(以色列) |
ar-IL |
Arabic (Iraq) |
阿拉伯語(伊拉克) |
ar-IQ |
Arabic (Jordan) |
阿拉伯語(約旦) |
ar-JO |
Arabic (Kuwait) |
阿拉伯語(科威特) |
ar-KW |
Arabic (Lebanon) |
阿拉伯語(黎巴嫩) |
ar-LB |
Arabic (Morocco) |
阿拉伯語(摩洛哥) |
ar-MA |
Arabic (Oman) |
阿拉伯語(阿曼) |
ar-OM |
Arabic (State of Palestine) |
阿拉伯語(巴勒斯坦國) |
ar-PS |
Arabic (Qatar) |
阿拉伯語(卡塔爾) |
ar-QA |
Arabic (Saudi Arabia) |
阿拉伯語(沙特阿拉伯) |
ar |
Arabic (Tunisia) |
阿拉伯語(突尼斯) |
ar-TN |
German (Germany) |
德國(德國) |
de |
English (Australia) |
英語(澳大利亞) |
en-AUS |
English (Canada) |
英語(加拿大) |
en-CA |
English (United Kingdom) |
英語(英國) |
en-GBR |
English (Ghana) |
英語(加納) |
en-GH |
English (Ireland) |
英語(愛爾蘭) |
en-IE |
English (India) |
英語(印度) |
en-IND |
English (Kenya) |
英語(肯尼亞) |
en-KE |
English (Nigeria) |
英語(尼日利亞) |
en-NG |
English (New Zealand) |
英語(新西蘭) |
en-NZ |
English (Philippines) |
英語(菲律賓) |
en-PH |
English (Singapore) |
英語(新加坡) |
en-SG |
English (Tanzania) |
英語(坦桑尼亞) |
en-TZ |
English (United States) |
英語(美國) |
en |
English (South Africa) |
英語(南非) |
en-ZAF |
Spanish (Argentina) |
西班牙語(阿根廷) |
es-AR |
Spanish (Bolivia) |
西班牙語(玻利維亞) |
es-BO |
Spanish (Chile) |
西班牙語(智利) |
es-CL |
Spanish (Colombia) |
西班牙語(哥倫比亞) |
es-COL |
Spanish (Costa Rica) |
西班牙語(哥斯達(dá)黎加) |
es-CR |
Spanish (Dominican Republic) |
西班牙語(多米尼加共和國) |
es-DO |
Spanish (Ecuador) |
西班牙語(厄瓜多爾) |
es-EC |
Spanish (Spain) |
西班牙語(西班牙) |
es |
Spanish (Guatemala) |
西班牙語(危地馬拉) |
es-GT |
Spanish (Honduras) |
西班牙語(洪都拉斯) |
es-HN |
Spanish (Mexico) |
西班牙語(墨西哥) |
es-MEX |
Spanish (Nicaragua) |
西班牙語(尼加拉瓜) |
es-NI |
Spanish (Panama) |
西班牙語(巴拿馬) |
es-PA |
Spanish (Peru) |
西班牙語(秘魯) |
es-PE |
Spanish (Puerto Rico) |
西班牙語(波多黎各) |
es-PR |
Spanish (Paraguay) |
西班牙語(巴拉圭) |
es-PY |
Spanish (El Salvador) |
西班牙語(薩爾瓦多) |
es-SV |
Spanish (United States) |
西班牙語(美國) |
es-US |
Spanish (Uruguay) |
西班牙語(烏拉圭) |
es-UY |
Spanish (Venezuela) |
西班牙語(委內(nèi)瑞拉) |
es-VE |
French (Canada) |
法語(加拿大) |
fr-CA |
French (Canada) |
法語(加拿大) |
fr-CAN |
French (France) |
法國(法國) |
fr |
Italian (Italy) |
意大利(意大利) |
it |
Japanese (Japan) |
日本(日本) |
ja |
Korean (South Korea) |
朝鮮(韓國) |
ko |
Dutch (Netherlands) |
荷蘭(荷蘭) |
nl |
Polish (Poland) |
波蘭(波蘭) |
pl |
Portuguese (Brazil) |
葡萄牙語(巴西) |
pt-BRA |
Russian (Russia) |
俄羅斯(俄羅斯) |
ru |
Thai (Thailand) |
泰國(泰國) |
th |
Turkish (Turkey) |
土耳其(土耳其) |
tr |
Chinese, Mandarin (Simplified, China) |
中文、普通話(簡體、中國) |
zh-CHS |
Chinese, Mandarin (Simplified, Hong Kong) |
中文、普通話(簡體,香港) |
zh-HK |
Chinese, Mandarin (Simplified, Taiwan) |
中文、普通話(簡體、臺灣) |
zh-TWN |
Bulgarian (Bulgaria) |
保加利亞(保加利亞) |
bg |
Catalan (Spain) |
加泰羅尼亞語(西班牙) |
ca |
Czech (Czech Republic) |
捷克(捷克) |
cs |
Danish (Denmark) |
丹麥(丹麥) |
da |
Greek (Greece) |
希臘(希臘) |
el |
Finnish (Finland) |
芬蘭(芬蘭) |
fi |
Hebrew (Israel) |
希伯來語(以色列) |
he |
Hindi (India) |
印地語(印度) |
hi |
Croatian (Croatia) |
克羅地亞(克羅地亞) |
hr |
Hungarian (Hungary) |
匈牙利(匈牙利) |
hu |
Indonesian (Indonesia) |
印尼(印度尼西亞) |
id |
Lithuanian (Lithuania) |
立陶宛(立陶宛) |
lt-LT |
Latvian (Latvia) |
拉脫維亞(拉脫維亞) |
lv-LV |
Norwegian Bokm?l (Norway) |
挪威書面挪威語(挪威) |
no |
Portuguese (Portugal) |
葡萄牙語(葡萄牙) |
pt |
Romanian (Romania) |
羅馬尼亞(羅馬尼亞) |
ro |
Slovak (Slovakia) |
斯洛伐克(斯洛伐克) |
sk |
Slovenian (Slovenia) |
斯洛文尼亞(斯洛文尼亞) |
sl |
Serbian (Serbia) |
塞爾維亞(塞爾維亞) |
sr-RS |
Swedish (Sweden) |
瑞典(瑞典) |
sv |
Ukrainian (Ukraine) |
烏克蘭(烏克蘭) |
uk |
Vietnamese (Vietnam) |
越南(越南) |
vi |
Afrikaans (South Africa) |
布爾語(南非) |
af-ZA |
Amharic (Ethiopia) |
阿姆哈拉語(埃塞俄比亞) |
am-ET |
Azerbaijani (Azerbaijan) |
阿塞拜疆(阿塞拜疆) |
az-AZ |
Bengali (Bangladesh) |
孟加拉(孟加拉) |
bn-BD |
Bengali (India) |
孟加拉語(印度) |
bn-IN |
Estonian (Estonia) |
愛沙尼亞(愛沙尼亞) |
et-EE |
Basque (Spain) |
巴斯克(西班牙) |
eu-ES |
Persian (Iran) |
波斯(伊朗) |
fa-IR |
Filipino (Philippines) |
菲律賓(菲律賓) |
tl |
Galician (Spain) |
加利西亞(西班牙) |
gl-ES |
Gujarati (India) |
古吉拉特語(印度) |
gu-IN |
Armenian (Armenia) |
亞美尼亞(亞美尼亞) |
hy-AM |
Icelandic (Iceland) |
冰島(冰島) |
is-IS |
Javanese (Indonesia) |
爪哇(印度尼西亞) |
jv-ID |
Georgian (Georgia) |
格魯吉亞(Georgia) |
ka-GE |
Khmer (Cambodia) |
紅色(高棉語) |
km-KH |
Kannada (India) |
埃納德語(印度) |
kn-IN |
Lao (Laos) |
老撾(老撾) |
lo |
Macedonian (North Macedonia) |
馬其頓(北馬其頓) |
mk-MK |
Malayalam (India) |
馬拉雅拉姆語(印度) |
ml-IN |
Mongolian (Mongolia) |
蒙古(蒙古) |
mn-MN |
Marathi (India) |
馬拉地語(印度) |
mr-IN |
Malay (Malaysia) |
馬來語(馬來西亞) |
ms |
Burmese (Myanmar) |
緬甸(緬甸) |
my-MM |
Nepali (Nepal) |
尼泊爾(尼泊爾) |
ne-NP |
Punjabi (Gurmukhi, India) |
旁遮普(果魯穆奇語、印度) |
pa-guru-IN |
Sinhala (Sri Lanka) |
僧伽羅語(斯里蘭卡) |
si-LK |
Albanian (Albania) |
阿爾巴尼亞(阿爾巴尼亞) |
sq-AL |
Sundanese (Indonesia) |
巽他語(印度尼西亞) |
su-ID |
Swahili (Kenya) |
斯瓦希里語(肯尼亞) |
sw-KE |
Swahili (Tanzania) |
斯瓦希里語(坦桑尼亞) |
sw-TZ |
Tamil (India) |
泰米爾語(印度) |
ta |
Tamil (Sri Lanka) |
泰米爾語(斯里蘭卡) |
ta-LK |
Tamil (Malaysia) |
泰米爾語(馬來西亞) |
ta-MY |
Tamil (Singapore) |
泰米爾語(新加坡) |
ta-SG |
Telugu (India) |
泰盧固語(印度) |
te |
Urdu (India) |
烏爾都語(印度) |
ur-IN |
Urdu (Pakistan) |
烏爾都語(巴基斯坦) |
ur-PK |
Uzbek (Uzbekistan) |
烏茲別克斯坦(烏茲別克斯坦) |
uz-UZ |
Chinese, Cantonese (Traditional, Hong Kong) |
中文、粵語(繁體、香港) |
yue |
Zulu (South Africa) |
祖魯語(南非) |
zu-ZA |
錯誤代碼列表
錯誤碼 |
含義 |
101 |
缺少必填的參數(shù) |
102 |
不支持的語言類型 |
103 |
翻譯文本過長 |
104 |
不支持的API類型 |
105 |
不支持的簽名類型 |
106 |
不支持的響應(yīng)類型 |
107 |
不支持的傳輸加密類型 |
108 |
應(yīng)用ID無效,注冊賬號,登錄后臺創(chuàng)建應(yīng)用和實例并完成綁定,可獲得應(yīng)用ID和應(yīng)用密鑰等信息 |
109 |
batchLog格式不正確 |
110 |
無相關(guān)服務(wù)的有效實例 |
111 |
開發(fā)者賬號無效 |
113 |
q不能為空 |
114 |
不支持的圖片傳輸方式 |
201 |
解密失敗,可能為DES,BASE64,URLDecode的錯誤 |
202 |
簽名檢驗失敗 |
203 |
訪問IP地址不在可訪問IP列表 |
205 |
請求的接口與應(yīng)用的平臺類型不一致,如有疑問請參考入門指南 |
206 |
因為時間戳無效導(dǎo)致簽名校驗失敗 |
207 |
重放請求 |
301 |
辭典查詢失敗 |
302 |
翻譯查詢失敗 |
303 |
服務(wù)端的其它異常 |
304 |
會話閑置太久超時 |
401 |
賬戶已經(jīng)欠費停 |
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 |
識別音頻時長過長 |
2411 |
不支持的音頻文件類型 |
2412 |
不支持的發(fā)音類型 |
3001 |
不支持的語音格式 |
3002 |
不支持的語音采樣率 |
3003 |
不支持的語音聲道 |
3004 |
不支持的語音上傳類型 |
3005 |
不支持的語言類型 |
3006 |
不支持的識別類型 |
3007 |
識別音頻文件過大 |
3008 |
識別音頻時長過長 |
3009 |
不支持的音頻文件類型 |
3010 |
不支持的發(fā)音類型 |
3201 |
解密失敗 |
3301 |
語音識別失敗 |
3302 |
語音翻譯失敗 |
3303 |
服務(wù)的異常 |
3411 |
訪問頻率受限,請稍后訪問 |
3412 |
超過最大請求字符數(shù) |
4001 |
不支持的語音識別格式 |
4002 |
不支持的語音識別采樣率 |
4003 |
不支持的語音識別聲道 |
4004 |
不支持的語音上傳類型 |
4005 |
不支持的語言類型 |
4006 |
識別音頻文件過大 |
4007 |
識別音頻時長過長 |
4201 |
解密失敗 |
4301 |
語音識別失敗 |
4303 |
服務(wù)的異常 |
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 |
服務(wù)器內(nèi)部錯誤 |
9411 |
訪問頻率受限(超過最大調(diào)用次數(shù)) |
9412 |
超過最大處理語音長度 |
10001 |
無效的OCR類型 |
10002 |
不支持的OCR image類型 |
10004 |
識別圖片過大 |
10201 |
圖片base64解密失敗 |
10301 |
OCR段落識別失敗 |
10411 |
訪問頻率受限 |
10412 |
超過最大識別流量 |
13001 |
不支持的角度類型 |
13002 |
不支持的文件類型 |
13003 |
表格識別圖片過大 |
13004 |
文件為空 |
13301 |
表格識別失敗 |
17001 |
需要圖片 |
17002 |
圖片過大(1M) |
17003 |
識別類型未找到 |
17004 |
不支持的識別類型 |
17005 |
服務(wù)調(diào)用失敗 |
-1000 |
未知錯誤 |
-2000 |
查詢輸入為空 |
常見問題
錯誤1
null
C:/Users/liuyanyan/.gradle/caches/transforms-1/files-1.1/appcompat-v7-28.0.0.aar/7cbab2e2b4c7701e76fa4d46215a4687/res/values-v28/values-v28.xml
D:/workdir/ydasrDemo
C:/Users/liuyanyan/.gradle/caches/transforms-1/files-1.1/appcompat-v7-28.0.0.aar/7cbab2e2b4c7701e76fa4d46215a4687/res/values/values.xml
null
failed linking references.
targetSdkVersion 28
...
dependencies {
...
implementation 'com.android.support:appcompat-v7:28.0.0'
}
錯誤2
null
Default interface methods are only supported starting with Android N (--min-api 24): void android.arch.lifecycle.DefaultLifecycleObserver.onCreate(android.arch.lifecycle.LifecycleOwner)
Stripped invalid locals information from 1 method.
null
com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\liuyanyan\.gradle\caches\modules-2\files-2.1\android.arch.lifecycle\common-java8\1.1.1\795d68cd761d093ccb235d1d91b8fd17c2ae25ff\common-java8-1.1.1.jar
com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.
com.android.tools.r8.CompilationFailedException: Compilation failed to complete
com.android.tools.r8.utils.AbortException
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
其他注意事項
- asr回調(diào)方法非主線程的,如果需要在回調(diào)中更新UI,需放到主線程中,代碼可見demo.
- 權(quán)限及動態(tài)權(quán)限一定要添加否則可能導(dǎo)致無反應(yīng)
- 依賴包也必須都添加,否則可能導(dǎo)致無反應(yīng)或崩潰問題
版本更新記錄
上線日期 |
版本號 |
更新內(nèi)容 |
2018.11.12 |
v1.0.0 |
支持在線實時語音識別 |
2019.11.12 |
v2.0.0 |
支持插入本地語音 |
2023.08.09 |
v2.0.2 |
升級支持語言 |