android訊飛語音開發常遇到的問題 各種錯誤編碼說明
阿新 • • 發佈:2019-02-14
場景:android專案中共使用了3個語音元件:線上語音聽寫、離線語音合成、離線語音識別
11208:遇到這個錯誤,授權應用失敗,先檢查裝機量(3臺測試許可權),以及appid的申請時間(35天期限),我的沒問題,所以就定位在資原始檔的問題了。請注意:保證所有的資原始檔都是最新的(線上語音聽寫、離線語音合成、離線語音識別),比如說你某個頁面只需要離線語音識別,但是卻沒有更新“離線語音合成”的資原始檔(common.jet).
23108:這個錯誤提示語法構建失敗,其實我已經寫語法了,但是由於編碼亂碼的原因,造成語法構建失敗,所以編碼問題也請大家注意。
待續。。。
訊飛官方提供的錯誤碼及解決辦法:
錯誤碼 | 錯誤碼說明 | 原因說明 | 解決方案 |
10106 | MSP_ERROR_INVALID_PARA 無效的引數 | 傳入的引數有誤 |
檢視引數是否傳錯了地方,引數值是否有問題 |
10107 | 可能是 jar 和 libmsc.so 不一致 。 魅族有預裝我們的軟體 可能會把libmsc.so push到 System lib 下面,造成版本之間的混亂 | ||
10108 | 無效的控制代碼 | 一般是客戶端網路問題,導致服務端釋放了這路會話。所以客戶端訊息再來的時候,就報無效控制代碼了。 | |
10109 | MSP_ERROR_INVALID_DATA 無效的資料 | (1)上傳的命令詞語法檔案有問題(2)網路狀況導致音訊資料傳輸不了 | 客戶端上傳的命令詞語法,單詞長度限制為128位元組。語法首部限制為#ABNF 1.0 UTF-8; 或者 #ABNF 1.0 gb2313; |
10110 | MSP_ERROR_NO_LICENSE | ||
10111 | MSP_ERROR_NOT_INIT 沒有初始化 | 沒有呼叫初始化,或登入未完成 | |
10114 | MSP_ERROR_TIME_OUT 連線超時 | 網路環境出問題了 | |
10117 | MSP_ERROR_NO_ENOUGH_BUFFER 沒有足夠的記憶體 | 每次合成字數太多 | 每次合成字數限制4096位元組,時長60s |
10118 |
MSP_ERROR_NO_DATA 沒有資料 |
前段點VAD_BOS沒有檢測到資料即停止監聽 | 檢查程式碼中VAD_BOS的設定 |
合成是沒有文字 | |||
10119 | 網路連線異常 | 可能是你說話離開麥克風比較遠時,錄音的音訊聲音太小作為噪音處理的,所以識別不到 | |
10121 | MSP_ERROR_ALREADY_EXIST | 人臉模型已經存在 | |
10129 | |||
10132 | 無效的使用者操作 | 上次服務未正常結束又啟動下次的服務 | 在本次合成或者識別之前確認,上次合成或者識別已經結束 |
10137 | 語法構建頻繁 | 上次構建還沒有出結果又構建了 | |
10138 | 詞典更新失敗 | 離線命令詞出現 | 上一次更新詞典未結束 又來一次 |
10214 | DNS解析錯誤 | 域名轉換到IP失敗 | 換個網路通暢的環境,或者先用固定IP測試 |
10301 | 解析錯誤 | 協議被不法分子篡改了,導致http協議解析失敗 | |
10402 | 沒有結果 | 在使用通用語義時:在跳轉sdk下載介面時,沒有勾選具體的語義場景;在使用私有語義時:後臺語義測試正常,但沒有點擊發布 | |
10407 | appid和資源沒有來自同一應用下 | ||
10701 | 處於不活躍的狀態 | grammarid可能有誤 | |
10702 | 語法錯誤 |
檢查語法檔案格式、內容、編碼設定(實際編碼與檔案開頭、程式碼引數設定是否一致 ) |
|
10703 | 沒有活躍的語法 | 客戶端沒有攜帶任何語法檔案,直接呼叫語法介面,造成引擎找不到可啟用的語法檔案 | 檢視是否有合法的grammarid,語法檔案是否有誤,語法檔案的真實編碼、檔案頭填寫的編碼、函式中傳入的編碼引數,三者是否一致 |
11201 | 未經授權的語音應用 | 沒有稽核的話每天的使用次數為500次,呼叫startlistening,呼叫一次算一次 | 如果應用語音功能已經完成,可以提交上線稽核。稽核通過後就沒有限制 |
11207 | 禁止使用未經授權的語言服務 | 測試版本超過限制 | 測試版本的只有3臺裝機量,35天的使用限制 |
11208 | |||
11700 | MSP_ERROR_IFR_NOT_FACE_IMAGE | 沒有檢測到人臉 | |
12413 | 圖片傳的太大,http最大限制了 | jpg 格式,人臉最低在80*80畫素,大小建議不超過150k | |
14002 | 服務端指令碼錯誤,沒有結果 | appid 跟語義的服務沒有關聯好 |
1、在使用通用語義時:在跳轉sdk下載介面時,沒有勾選具體的語義場景; 2、在使用私有語義時:後臺語義測試正常,但沒有點擊發布,會出現14002; |
16006 | 請求超時 | ||
20004 | 無效的結果 | 沒有說話就停止識別監聽 | |
20005 | Android無匹配結果 | 使用命令詞識別或者語法檔案識別出現,檢視所說的話是否在語法檔案或者命令詞識別中 | |
20006 | Android錄音失敗 | A、重啟手機,B、檢視是否使用的虛擬機器,建議真機除錯,虛擬機器很多時候不能識別到麥克風裝置,C、檢視工程是否添加了錄音許可權,D、檢視是否有其他程序正在佔用麥克風; | |
20009 | iOS錄音失敗 | ||
20010 | iOS無匹配結果 | 使用命令詞識別或者語法檔案識別出現,檢視所說的話是否在語法檔案或者命令詞識別中 | |
20012 | 引數錯誤 | ||
20017 | 本地引擎錯誤 | 被異常打斷 | 做語音識別出現20017錯誤,可能會是同時在一個Activity做識別和合成造成,但主要可能是如果上一次未結束,又開啟了下一次。可以檢查一下上一次是否結束,結束標誌:識別判斷上一次是否結束: OnResult isLast=true 或者 onError 合成判斷上一次是否結束:onCompleted |
21001 | 沒有安裝語音元件 |
1、有沒有使用SpeechUtility.createUtility()設定appid 2、有沒有將libmsc.so放到工程中 3、如果使用的是訊飛語音+的本地功能,有沒有安裝訊飛語音+ 4、如果裝置是android 5.0及其以上,需要將工程中的armeabi和armeabi-v7a資料夾中都放上libmsc.so,如果你下載的SDK中沒有armeabi-v7a對應的庫,可以將armeabi中的libmsc.so複製一份到armeabi-v7a資料夾中 5、SpeechUtility.createUtility()如在Application中呼叫,需要在Mainifest中註冊該Applicaiton。此方法不是必須在Appcation中呼叫,可在需要使用語音能力之前,例如進入語音搜尋頁面呼叫。 6、使用Android Studio的開發者注意將so放在jniLib目錄下,或者在配置檔案中指定so載入的路徑。 |
|
21002 | 引擎不支援 | ||
21003 | 初始化失敗 | 呼叫過程中剛開始初始化就開始設定引數、開始識別或開始合成 | 初始化是相對非同步進行的,初始化的時候在InitListener裡面的onInit()回撥初始化成功之後在開始設定引數、呼叫合成、呼叫識別。需要先設定appid。使用speechapi.jar的話需要先安裝訊飛語音+。新增各項許可權 |
23001 | 在離線語音合成沒有放入資源 | 使用demo測試時,需將res中資源拷貝到demo中assets相應的路徑下;使用帶UI介面時,需要將assets下的檔案拷貝到專案中 | |
23003 | ERROR_ASR_OUT_OF_MEMORY | 記憶體耗盡 | |
23007 | 引擎未初始化 | 可能是未按照Demo進行整合,沒有將資源拷貝進專案中 | |
23108 | 開啟檔案失敗 | 一般在開啟檔案時候沒有許可權導致開啟失敗或者是程式碼裡相關檔案的路徑寫錯,引數設定不正確。 |
1.檢查是否增加本地讀寫許可權: <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 2.檢查語法路徑是不是正確,設定的引數是不是正常。 |
23109 | 識別語法錯誤 | 讀取資源、詞典、場景等檔案失敗 | |
23300 | 識別語法有問題 | ||
24110 | 本地引擎錯誤 |