簡體   English   中英

連續語音識別Android

[英]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庫

  1. 它將在離線模式下工作
  2. 你可以命名
  3. 呼叫他的名字時它將開始監聽

幾個月前,我有同樣的要求,因此決定編寫自己的

我相信它也應該符合您的要求;)

在2019年,您可以在Android上運行Kaldi語音識別庫,以進行設置檢查Kaldi演示

Kaldi是比CMUSphinx更高級的庫,並提供了更好的解碼精度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM