Xamarin效果第二十三篇之离线语音识别
生活随笔
收集整理的這篇文章主要介紹了
Xamarin效果第二十三篇之离线语音识别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在前面文章中簡單玩了玩GIS的基本操作、Mark相關、AR、測距、加載三維白模、可擴展浮動操作和錄音效果;今天抽空再來分享一下最近摸索的基于訊飛的離線語音識別效果,其實就簡單用了一下離線命令詞識別,看效果:
1、先去控制臺創建應用:
https://console.xfyun.cn/app/myapp2、去組合下載SDK(根據自己需求搭配):
https://www.xfyun.cn/sdk/dispatcher3、然后就是參考文檔了:
4、最關鍵的一步綁定第三方庫(請大佬“大白”給處理的):
5、在MainActivity設置Appid:
SpeechUtility.CreateUtility(this, Com.Iflytek.Cloud.SpeechConstant.Appid + "=自己的id");6、接下來就和前一篇錄音異曲同工,共享代碼定義接口:
//開始識別 void StartRecognize(); //停止識別 void StopRecognize(); //獲取識別結果事件 event GetResultData GetResultDataEvent;7、實現開始識別:
8、創建命令詞:
private void BuildGrammar() {//簡單幾個命令詞string mContent = @"#BNF+IAT 1.0 UTF-8;!grammar call;!slot<sendCode>;!start<sendCode>;<callStart>:[<sendCode>];<sendCode>:開機|關機|開燈|關燈|呼叫十年|呼叫AY|呼叫龍哥|呼叫大白;";//清空參數mAsr.SetParameter(SpeechConstant.Params, null);// 設置文本編碼格式mAsr.SetParameter(SpeechConstant.TextEncoding, "utf-8");// 設置引擎類型mAsr.SetParameter(SpeechConstant.EngineType, mEngineType);// 設置語法構建路徑mAsr.SetParameter(ResourceUtil.GrmBuildPath, grmPath);// 設置資源路徑mAsr.SetParameter(ResourceUtil.AsrResPath, getResourcePath());構建語法監聽器MyGrammarListener myGrammarListener = new MyGrammarListener();int mRet = mAsr.BuildGrammar(GRAMMAR_TYPE_BNF, mContent, myGrammarListener);if(mRet != ErrorCode.Success){Console.WriteLine("語法構建失敗,錯誤碼:" + mRet);} }9、設置參數:
public bool SetParam() {bool result = false;// 清空參數mAsr.SetParameter(SpeechConstant.Params, null);// 設置識別引擎類型mAsr.SetParameter(SpeechConstant.EngineType, mEngineType);//設置本地識別資源mAsr.SetParameter(ResourceUtil.AsrResPath, getResourcePath());//設置語法構建路徑,以在本地識別時使用mAsr.SetParameter(ResourceUtil.GrmBuildPath, grmPath);// 設置返回結果格式mAsr.SetParameter(SpeechConstant.ResultType, mResultType);// 設置本地識別使用語法idmAsr.SetParameter(SpeechConstant.LocalGrammar, "call");// 設置識別的門限值mAsr.SetParameter(SpeechConstant.MixedThreshold, "30");mAsr.SetParameter(SpeechConstant.Domain,?"iat");mAsr.SetParameter(SpeechConstant.NlpVersion, "2.0");mAsr.SetParameter("asr_sch", "1");result = true;// 設置音頻保存路徑,保存音頻格式支持pcm、wav,設置路徑為sd卡請注意WRITE_EXTERNAL_STORAGE權限mAsr.SetParameter(SpeechConstant.AudioFormat, "wav");string asrAudioPath = Android.App.Application.Context.GetExternalFilesDir("").AbsolutePath + "/asr.wav";mAsr.SetParameter(SpeechConstant.AsrAudioPath, asrAudioPath);return?result;}10、關于停止識別:
public void StopRecognize(){mAsr.StopListening();Console.WriteLine("停止識別");}11、關于SDK&API 錯誤碼查詢:
https://www.xfyun.cn/document/error-code最終簡單的效果先這樣吧;以后有時間的話,可以再去摸索一下更復雜的效果;編程不息、Bug不止、無Bug、無生活;改bug的冷靜、編碼的激情、完成后的喜悅、挖坑的激動 、填坑的興奮;這也許就是屌絲程序員的樂趣吧;今天就到這里吧;希望自己有動力一步一步堅持下去;生命不息,代碼不止;大家抽空可以看看今天分享的效果,有好的意見和想法,可以在留言板隨意留言;我看到后會第一時間回復大家,多謝大家的一直默默的關注和支持!如果覺得不錯,那就伸出您的小手點個贊并關注一下,多謝您的支持!
總結
以上是生活随笔為你收集整理的Xamarin效果第二十三篇之离线语音识别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用php制作wap网站
- 下一篇: 谈PLM和ERP的差异比较