Приложение распознавания речи не возвращает точное слово в Android - PullRequest
2 голосов
/ 04 марта 2012

Я создал приложение, которое позволяет пользователю находить ближайшие отели. Теперь пользователь может отдать голос и увидеть результат. Но местные имена, такие как «кочин» или «ченнай», не отображаются, если пользователь произносит эти имена. Но такие имена, как «Лондон», «Нью-Йорк» или «Мумбаи», можно просматривать. Код, который я использую, приведен ниже.

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 ]

2 голосов
/ 04 марта 2012

Это ограничение речевого движка. Это одинаково во всех местах - хорошо известные места (большие города) работают, но словари, которые использует Google, просто не включают названия небольших мест.

Я не думаю, что вы можете что-то сделать, чтобы решить эту проблему. Google должен улучшить их распознавание речи.

0 голосов
/ 05 марта 2012

Вы не можете улучшить распознавание речи Google, но вы можете сопоставить в любом случае, даже если Google не вернет правильное слово.

Используйте алгоритм фонетического сопоставления, например Soundex , чтобы определить, звучат ли слова, которые возвращает Google, так, как вы хотите. Например, если пользователь пытается сказать «cochin», а Google возвращает «кукуруза», возможно, все еще возможно сопоставить его.

...