语音识别应用程序没有在android中返回确切的单词

时间:2012-03-04 08:40:36

标签: android speech-recognition voice-recognition

我创建了一个应用程序,允许用户找到最近的酒店。现在,用户能够发出声音并能够看到结果。但是如果用户说出这些名字,那么“cochin”或“Chennai”等本地名称就不会出现在结果中。但是像“伦敦”,“纽约”或“孟买”这样的名字能够看到。我在下面给出的代码。

private void startVoiceRecognitionActivity() {
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
            RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
    intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speak Now");
    startActivityForResult(intent, REQUEST_CODE);
}

2 个答案:

答案 0 :(得分:2)

这是语音引擎的限制。它在所有地方都是一样的 - 着名的地方(较大的城镇和城市)工作正常,但谷歌使用的词典似乎并不包括较小地方的名称。

我不认为你可以采取任何措施来解决这个问题。谷歌可以改善他们的语音识别。

答案 1 :(得分:0)

您无法改善Google语音识别功能,但即使谷歌没有返回正确的字词,您仍然可以匹配..

使用像Soundex这样的语音匹配算法来确定google返回的单词是否与您想要的一样。例如,如果用户试图说“cochin”并且google返回“corn”,则可能仍然可以匹配它。