[英]Continuous Speech Recognition Android
我正在尋找在Android中進行語音識別。 該程序需要具有連續的語音識別功能。 該庫僅需約10個字。 我已經考慮過使用Google的api,但是我認為它不會起作用。 (我什么也沒遮住屏幕)。 我一直在尋找其他方法,但似乎沒有任何效果。 可以使用Java的語音識別庫,還是有其他解決方法?
綜上所述
1.需要連續語音輸入
2.最多10個字
3.必要時可以訓練
4.程序概述-顯示屏幕,等待語音輸入或觸摸輸入,更新屏幕重復
5.無法覆蓋屏幕上正在顯示的內容
任何幫助,將不勝感激。
提前致謝
我認為您必須直接從手機的麥克風捕獲音頻,並將其流式傳輸到自己的識別服務。 Google識別API是作為一種Intent構建的,可啟動它們自己的Recognition對話框並向您返回結果。 如果要在沒有UI的情況下進行連續識別,則必須自己構建該功能。
CMUSphinx最近在Android平台上實現了持續監聽。 您可以在Wiki頁面上找到該演示
您可以配置一個或多個關鍵字來收聽,默認關鍵字是“哦,強大的計算機”。 您還可以配置檢測閾值。 當前支持的語言是美國英語和其他少數語言(法語,西班牙語,俄語等)。 您可以為自己的語言訓練自己的模型。
聽力很簡單,您可以創建一個識別器,然后添加關鍵字搜索:
recognizer = defaultSetup()
.setAcousticModel(new File(modelsDir, "hmm/en-us-semi"))
.setDictionary(new File(modelsDir, "lm/cmu07a.dic"))
.setKeywordThreshold(1e-5f)
.getRecognizer();
recognizer.addListener(this);
recognizer.addKeywordSearch(KWS_SEARCH_NAME, KEYPHRASE);
switchSearch(KWS_SEARCH_NAME);
並定義一個偵聽器:
@Override
public void onPartialResult(Hypothesis hypothesis) {
String text = hypothesis.getHypstr();
if (text.equals(KEYPHRASE))
// do something
}
您可以在文件系統上指定命令文件路徑來代替單個關鍵字:
recognizer.addKeywordSearch(KWS_SEARCH, new File(assetsDir,
"commands.lst").toString());
哪些命令文件commands.lst
每行包含一個命令:
oh might computer
ok google
hello dude
將此文件放在文件系統中,可以將其放入資產中,並在應用程序啟動時運行syncAssets。
這是Oracle對Java Speech API常見問題的解釋。
這是另一種方式(如果您打算使用Phonegap / Cordova)。
https://stackoverflow.com/a/39695412/3603128
1)連續聆聽。
2)在屏幕上不顯示(占用)。
使用CMUSphinx庫 :
幾個月前,我有同樣的要求,因此決定編寫自己的庫 。
我相信它也應該符合您的要求;)
在2019年,您可以在Android上運行Kaldi語音識別庫,以進行設置檢查Kaldi演示 。
Kaldi是比CMUSphinx更高級的庫,並提供了更好的解碼精度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.