我创建了一个应用程序,允许用户找到最近的酒店。现在,用户能够发出声音并能够看到结果。但是如果用户说出这些名字,那么“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);
}
答案 0 :(得分:2)
这是语音引擎的限制。它在所有地方都是一样的 - 着名的地方(较大的城镇和城市)工作正常,但谷歌使用的词典似乎并不包括较小地方的名称。
我不认为你可以采取任何措施来解决这个问题。谷歌可以改善他们的语音识别。
答案 1 :(得分:0)
您无法改善Google语音识别功能,但即使谷歌没有返回正确的字词,您仍然可以匹配..
使用像Soundex这样的语音匹配算法来确定google返回的单词是否与您想要的一样。例如,如果用户试图说“cochin”并且google返回“corn”,则可能仍然可以匹配它。