2009-08-02 66 views
1

如何正確地參數化語音識別器,以便它可以更容易地識別用戶可能會說的單詞?如何參數化android語音識別? android.speech.action.RECOGNIZE_SPEECH不會做任何事

據我所知,沒有辦法。

我相信這個網站是錯誤的:http://www.4feets.com/2009/04/speech-recognition-in-android-sdk-15/

根據該網站,此代碼: 的ArrayList <字符串> potentialResults =新的ArrayList <字符串>();
potentialResults.add(「yellow」);
potentialResults.add(「green」);
potentialResults.add(「blue」);
potentialResults.add(「red」);

// Create Intent 
Intent intent = new Intent("android.speech.action.RECOGNIZE_SPEECH"); 

會給識別器一個提示,你可能會說這些單詞。然而,它似乎絕對沒有。它也與谷歌文檔衝突:

「執行ACTION_RECOGNIZE_SPEECH時潛在結果的ArrayList,僅在返回RESULT_OK時出現。」這暗示該數組是一個返回值而非輸入。

要測試這個,嘗試添加: ArrayList < String> potentialResults = new ArrayList < String>();
potentialResults.add(「cumin」); 並嘗試讓語音識別器識別它。你會發現它非常困難。

有沒有人瞭解如何正確控制語音識別器?

+0

您能否與我們分享您的代碼;你提出的代碼?我可以從你的發現中受益,其他許多人也將受益。 – user1046106 2011-11-17 00:42:30

回答

4

如果通過「控制」你的意思是「提供可能的結果列表」,我懷疑你沒有。

我相信你是對正確的鏈接到博客文章是錯的。但是,AFAIK是您對演講的唯一控制,是指示它是LANGUAGE_MODEL_FREE_FORM還是LANGUAGE_MODEL_WEB_SEARCH

EXTRA_RESULTS是輸出,如您所示,可能與口語散文相匹配。您可以看到API sample中使用的結果。

+0

我很害怕你會這麼說。希望他們能夠在下一個Android版本中改進API。他們在版本3中使用的API很難使用。 – gregm 2009-08-02 17:32:04

1

我想出的辦法是創建一個可能性數據庫。然後,我將結果和子字符串轉換爲2或3個字符,然後查詢數據庫中的術語。如果有人說紅色,那麼我會搜索數據庫LIKE'重新%',這實際上是相當準確的,我需要什麼。