Как я могу параметризовать распознавание речи Android? android.speech.action.RECOGNIZE_SPEECH ничего не делает - PullRequest
1 голос
/ 02 августа 2009

Как правильно настроить параметры распознавателя речи, чтобы он мог легче распознавать слова, которые пользователь, вероятно, скажет?

Насколько я могу судить, нет пути.

Я считаю, что этот сайт не прав: http://www.4feets.com/2009/04/speech-recognition-in-android-sdk-15/

По данным сайта, этот код: ArrayList потенциалResults = new ArrayList ();
potentialResults.add ( "желтый");
potentialResults.add ( "зеленый");
potentialResults.add ( "синий");
potentialResults.add ( "красный");

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

Даст подсказке опознавателю, что вы могли бы сказать эти слова. Однако, похоже, он абсолютно ничего не делает. Это также противоречит документации Google, которая гласит:

"ArrayList потенциальных результатов при выполнении ACTION_RECOGNIZE_SPEECH. Присутствует только при возвращении RESULT_OK." Это намекает на то, что массив является возвращаемым значением, а НЕ входом.

Чтобы проверить это, попробуйте добавить: ArrayList потенциалResults = new ArrayList ();
potentialResults.add ( "тмин"); и попытаться заставить распознаватель речи распознать его. Вам будет очень трудно.

Кто-нибудь знает, как правильно управлять распознавателем речи?

Ответы [ 2 ]

5 голосов
/ 02 августа 2009

Если под «контролем» вы подразумеваете «предоставить список возможных результатов», я подозреваю, что вы этого не сделаете.

Я полагаю, что вы правы, так как ссылка на блог не соответствует действительности. Тем не менее, AFAIK, единственный контроль над речью - указать, является ли она LANGUAGE_MODEL_FREE_FORM или LANGUAGE_MODEL_WEB_SEARCH.

EXTRA_RESULTS - это выходы, как вы указываете, с возможными совпадениями для разговорной прозы. Вы можете увидеть результаты, использованные в примере API .

1 голос
/ 27 июня 2010

Я придумал, как с этим справиться, - создать базу данных возможностей. Затем я беру результаты и подставляю их в 2 или 3 символа и запрашиваю термины в БД. Если кто-то сказал красный, то я бы искал в БД LIKE 're%', и это на самом деле довольно точно для того, что мне нужно.

...