1. 程式人生 > >Android 科大訊飛語音識別 金額數字

Android 科大訊飛語音識別 金額數字

最近要在應用裡面使用語音識別功能,老闆選擇了科大訊飛的技術,小可也就開始看文件啦;

這裡只嵌入了語音識別,其他的語法什麼的沒有研究,有需要的各位看文件唄;

需要的資料 :只識別數字,若不過濾則把LSpeechManager中的onResult方法中的LDataFormat過濾去掉即可

1,首先要在科大訊飛開放平臺註冊開發者,並註冊應用,然後下載SDK;

2,語音識別需要的檔案:

      (1)Msc.jar

      (2)libmsc.so

3,需要的許可權 :

  1. <!-- 網路許可權 -->
  2. <uses-permission
    android:name="android.permission.INTERNET"/>
  3. <!-- 獲取手機錄音機使用許可權,聽寫、識別、語義理解需要用到此許可權 -->
  4. <uses-permissionandroid:name="android.permission.RECORD_AUDIO"/>
  5. <!-- 網路狀態的監控許可權 -->
  6. <uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
  7. <uses-permissionandroid:name
    ="android.permission.ACCESS_WIFI_STATE"/>
  8. <uses-permissionandroid:name="android.permission.CHANGE_NETWORK_STATE"/>
  9. <!-- 手機狀態的監聽許可權 -->
  10. <uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>
4,需要自己的Application,並在其中初始化語音識別
  1. public class Lapp extends Application {  
  2.     @Override  
  3.     public void onCreate() {  
  4.         // 應用程式入口處呼叫,避免手機記憶體過小,殺死後臺程序,造成SpeechUtility物件為null  
  5.         // 設定你申請的應用appid  
  6.         SpeechUtility.createUtility(Lapp.this, "appid=5486584a");  
  7.         super.onCreate();  
  8.     }  
  9. }  

5,語音識別  (使用該類可以直接呼叫start()方法進行語音聽寫識別)
  1. /** 
  2.  * 語音識別管理類 
  3.  *  
  4.  * @author li'mingqi 
  5.  *  
  6.  */
  7. publicclass LSpeechManager {  
  8.     private Context mContext;  
  9.     // 語音聽寫
  10.     private SpeechRecognizer mIat;  
  11.     // handler
  12.     private Handler mHandler;  
  13.     // 識別結果
  14.     private LSpeechResultListener resultListener;  
  15.     // 識別成功
  16.     publicstaticfinalint SPEECH_SUCCESS = 0;  
  17.     // 識別失敗
  18.     publicstaticfinalint SPEECH_FAIL = -1;  
  19.     // 開始識別
  20.     publicstaticfinalint SPEECH_START = 1;  
  21.     // 識別出錯
  22.     publicstaticfinalint SPEECH_ERROR = 2;  
  23.     /** 
  24.      *  
  25.      */
  26.     @SuppressLint("HandlerLeak")  
  27.     public LSpeechManager(Context context) {  
  28.         this.mContext = context;  
  29.         // 語音聽寫部分
  30.         // 建立SpeechRecognizer物件
  31.         mIat = SpeechRecognizer.createRecognizer(this.mContext, null);  
  32.         // 設定聽寫引數
  33.         // 應用領域 --語音識別
  34.         mIat.setParameter(SpeechConstant.DOMAIN, "iat");  
  35.         // 語言--中文
  36.         mIat.setParameter(SpeechConstant.LANGUAGE, "zh_cn");  
  37.         // mandarin 普通話 cantonese廣東話
  38.         mIat.setParameter(SpeechConstant.ACCENT, "mandarin");  
  39.         // 客戶端引擎選擇模式 --雲端msc
  40.         mIat.setParameter(SpeechConstant.ENGINE_MODE, "msc");  
  41.         // 客戶端引擎型別 --雲端msc
  42.         mIat.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD);  
  43.         // 資料解碼方式 --utf-8
  44.         mIat.setParameter(SpeechConstant.TEXT_ENCODING, "utf-8");  
  45.         // 初始化聽寫Dialog,如果只使用有UI聽寫功能,無需建立SpeechRecognizer
  46.         mHandler = new Handler() {  
  47.             @Override
  48.             publicvoid handleMessage(Message msg) {  
  49.                 super.handleMessage(msg);  
  50.                 int what = msg.what;  
  51.                 switch (what) {  
  52.                 case SPEECH_SUCCESS:// 識別成功
  53.                     String result = (String) msg.obj;  
  54.                     if (null != resultListener) {  
  55.                         resultListener.onSuccess(result);  
  56.                     }  
  57.                     break;  
  58.                 case SPEECH_FAIL:// 識別失敗
  59.                     Toast.makeText(mContext, "請將金額數字按普通話講出", Toast.LENGTH_SHORT)  
  60.                             .show();  
  61.                     break;  
  62.                 case SPEECH_START://開始識別
  63.                     if (null != resultListener) {  
  64.                         resultListener.onStart();  
  65.                     }  
  66.                     break;  
  67.                 case SPEECH_ERROR://識別出錯
  68.                     if (null != resultListener) {  
  69.                         String error = (String) msg.obj;  
  70.                         resultListener.onError(error);  
  71.                     }  
  72.                     break;  
  73.                 }  
  74.             }  
  75.         };  
  76.     }  
  77.     publicvoid start() {  
  78.         final StringBuilder sb = new StringBuilder();  
  79.         // 開始聽寫
  80.         mIat.startListening(new RecognizerListener() {  
  81.             @Override
  82. 相關推薦

    Android 科大語音識別 金額數字

    最近要在應用裡面使用語音識別功能,老闆選擇了科大訊飛的技術,小可也就開始看文件啦; 這裡只嵌入了語音識別,其他的語法什麼的沒有研究,有需要的各位看文件唄; 需要的資料 :只識別數字,若不過濾則把LSpeechManager中的onResult方法中的LDataFormat過

    Android 科大語音識別 金額數字

    最近要在應用裡面使用語音識別功能,老闆選擇了科大訊飛的技術,小可也就開始看文件啦; 這裡只嵌入了語音識別,其他的語法什麼的沒有研究,有需要的各位看文件唄; 需要的資料 :只識別數字,若不過濾則把LSpeechManager中的onResult方法中的LDataFormat過濾去掉即可 1,首先要在科

    unity接科大語音識別Windows平臺(補充前面的文章,添加了錄音功能)

    其他操作就不在一一贅述了,直說一下新增的負責錄音的那段程式碼 1、首先利用Microphone類開始錄製和結束錄製音訊 2、利用AudioSource類播放錄製的音訊 3、然後用自己寫的方法Float2Byte將錄製的音訊轉成byte資料,供訊飛語音識別方法呼叫 詳細

    Android科大語音按佇列播報

    在Android開發中,語音播報經常使用,但是,在使用過程中會發現,如果語音來源過於塊,頻率過高,在前一條沒有播放完的情況下會執行第二條播放,本篇文章用來解決這個問題。 一、科大訊飛語音整合: 1、在科大訊飛的開發者平臺(科大訊飛開放平臺)註冊。我這裡使用的

    科大語音識別時字串中特殊字元的處理

    比如口算遊戲: 訊飛會返回:請回答[n2]78+11=? 此時我們要去掉[n2] 可做如下操作 String results = "[n2]78+11=?"; results = results.replaceAll("\\[" + "n2" + "\\]", "");

    科大語音識別使用過程中踩過的坑

    眨眼之間又是好久沒有寫部落格了,佩服那些寫了很多部落格的大神,堅持和耐心值得我學習 這次寫的是一個知名的語音識別sdk,就是科大訊飛的語音識別,其實也沒有多複雜,但是由於我是用swift語言,期間出了很多差錯 ,搞了好久,在這裡就慢慢記錄下來吧。 使用步驟: (有很多步驟

    Android 科大語音整合,文字轉語音

    前言: 記錄一下科大訊飛的文字轉語音功能的sdk的整合過程,希望能夠幫助到大家。 1. 登入官網,應用註冊。 訊飛開放平臺,進行簡單的開發者註冊。進入個人中心,註冊應用。 註冊完成後,我們可以看到自己的appid。選擇自己要開通的功能,然

    科大語音無限制錄音、識別功能的實現:Android studio(一)

                最近想要做一款語音聽寫APP,在網上搜索關於如何使用科大訊飛語音的Demo少之又少,又或者是隻是單純的按照文件來實現簡單的語音聽寫,遠遠不能滿足需求,看了幾天的文件和自己搜尋的一些資料,還有這幾天中遇到的一些問題,覺得有必要做一個筆記,能給初學者一些

    Android 科大 線上和離線語音聽寫

    效果圖: 參考資料 專案裡要用語音聽寫,想到了科大訊飛,參考上面的資料完成了最簡單的線上有UI的語音識別,後面想要改成離線也可以使用。參考下面的文章 下載好語記和離線資源之後,想要改成有UI的RecognizerDialog離線語音聽寫,但是沒

    Android開發之通過藍芽耳機實現語音識別的功能

    近階段在開發一款app,實現通過藍芽耳機進行訊飛語音識別,獲取識別結果之後再通過語音合成從藍芽耳機播報出識別結果。上網也查了很多資料,大多是說通過一下兩行程式碼:      mAudioManager.setBluetoothScoOn(true);           

    2018 Android 文字轉語音(中文) TextToSpeech+科大語音引擎3.0

    最近專案中需要用到文字轉語音。 本來是想使用朗讀女生成的聲音檔案放到專案資源中進行播放。 但是產品要求改成動態的。於是就用了Google為我們封裝好的類TTS,即[TextToSpeech]:大家可以看下詳細文件。 程式碼其實不多,但是寫完之後測試就有問題

    android專案接入科大語音評測功能過程

    前言 最近專案需要接入語音評測功能,公司有做過這方面的同事推薦了科大訊飛語音評測,於是根據官網的開發指南接入了sdk,可以成功評測使用者的口語能力,並給出合適的分數,但是期間遇到了很多小問題,於是寫在這篇文章記錄一下開發及填坑的過程。 正文 1.接入sdk: 如何接入

    【記錄】科大語音控制元件的使用——Android Studio

    一、將libs資料夾移至Android Studio的Project的根目錄下 將科大訊飛提供的SDK中的libs資料夾直接拖拽至Android Studio的Project的根目錄下 二、匯入xxx.jar檔案 其實.jar檔案已經存在於

    Android開發之聲網即時通訊與語音識別相結合

    聲網是一家提供語音、視訊即時通訊服務的公司,他的服務大多基於WebRTC開源專案並進行一些優化和修改。而訊飛語音識別應該不用多說了,老羅在釋出會上介紹得已經夠詳細了。 那麼下面進入今天的主題,就是讓聲網和訊飛識別同時使用,之前可能有朋友沒遇到過這樣的需求,那先說一下讓兩者同

    Android整合語音、百度語音、阿里語音識別

    一、引言 demo下載地址:https://fir.im/jy28 demo原始碼檢視:https://github.com/

    Unity接入語音識別___Android版

    Unity版本4.6+Eclipse 1,首先我們先去訊飛開放平臺註冊一個開發者賬號(註冊地址:http://www.xfyun.cn),註冊完成後進入控制檯建立一個新的應用。​ 2,提交成功後我們需要選擇我們需要開通我們需要的服務,​​​點選開

    unity接入Android語音

    使用工具;Unity+Eclipse(Android) 1.在訊飛語音註冊開發者賬號  ip: http://www.xfyun.cn  然後進入控制檯建立一個新的應用。​   2.點入進去建立新應用,提交成功後我們需要選擇我們需要開通我們需

    科大語音雲使用經歷

    科大訊飛的語音識別是屬於一流的行列,那不多想當然選擇科大訊飛了。 在百度上輸:訊飛語音 就能找到,輸科大訊飛會直接出現官網,那裡面沒有。(ps我第一次就是這樣) 下載後會有三個檔案選擇。 一個是語音+  帶有語音+APP的。一個是含語音互動介面,一個是不含語音互

    ionic載入cordova科大語音輸入法外掛相關問題

    1:申請相關appid,見官網,新增語音聽寫服務,下載sdk 2:下載cordova外掛,見https://github.com/Edc-zhang/cordova-plugin-IFlyspeech 3:將sdk的libs資料夾,替換cordova外掛的src/android/libs  將cordo

    ubuntu下,在QT中利用科大語音庫實現語音合成TTS

    首先要去科大訊飛語音庫註冊,下載linux下的線上合成TTS的SDK,然後在QT下建立一個基於控制檯的工程,其實建立關於UI的也可以,問題不大,這裡以控制檯工程進行說明。將sample中TTS部分的t