Непрерывное распознавание речи Android — без пропусков

У меня есть активность, которая реализует RecognitionListener. Чтобы сделать его непрерывным, каждый раз onEndOfSpeech() я снова запускаю прослушиватель:

speech.startListening(recognizerIntent);

Но это занимает некоторое время (около половины секунды), прежде чем он начнется, поэтому есть этот промежуток в полсекунды, когда никто не слушает. Поэтому я скучаю по словам, сказанным в ту разницу во времени.

С другой стороны, когда я использую голосовой ввод Google, чтобы диктовать сообщения вместо клавиатуры - этого временного разрыва не существует. Смысл - есть решение.

Что это такое?

Спасибо


person Ronen Rabinovici    schedule 16.05.2015    source источник
comment
У вас есть успехи в этом?   -  person Herry    schedule 24.08.2016


Ответы (3)


попробуйте посмотреть пару других API....

демонстрация речи: источник здесь и обсуждается здесь и работает в CLI здесь

вы можете использовать полнодуплексный API Google (его скорость ограничена 50 в день)

Или, если вам нравится эта общая идея, проверьте обсуждение IBM Watson здесь

ИМО - это более сложно, но не ограничено.

person Robert Rowntree    schedule 17.05.2015
comment
Потоковая передача http на сторонние сервисы кажется единственным решением на данный момент. - person Ronen Rabinovici; 06.06.2015

Я рекомендую использовать CMUSphinx для непрерывного распознавания речи. Чтобы добиться непрерывного распознавания речи с помощью API распознавания речи Google, вам, возможно, придется прибегнуть к циклу в фоновой службе, которая будет потреблять слишком много ресурсов и разряжать батарею устройства.

С другой стороны, Pocketsphinx отлично работает. Это достаточно быстро, чтобы определить ключевую фразу и распознать голосовые команды за экраном блокировки, даже если пользователь не прикасается к своему устройству. И все это в офлайне. Вы можете попробовать демонстрацию< /а>.

Если вы действительно хотите использовать API Google, посмотреть это

person Nana Ghartey    schedule 17.05.2015
comment
Спасибо, хотя Pocketsphinx не очень хорошо работает для естественной речевой диктовки (он отлично работает для ограниченной грамматики - отлично подходит для команд), и разве решение в ссылке на API Google не приводит к той же проблеме, которую я опубликовал? - person Ronen Rabinovici; 18.05.2015
comment
Как мне скачать pocketsphinx - person Ruchir Baronia; 22.01.2016
comment
@RuchirBaronia Скачать с официального сайта cmusphinx.sourceforge.net - person Nana Ghartey; 22.01.2016
comment
Как я могу реализовать это в сервисе? Спасибо! - person Ruchir Baronia; 14.02.2016
comment
у вас есть пример кода для Android, потому что я использую это, и я добавляю горячие слова, такие как хорошо, свет, но он все еще трется о других словах - person Hamza; 31.08.2017

Есть такие варианты:

intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS, 2000); // value to wait

or

intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS, 2000);

Они перестали работать на Jelly Bean и выше, но работают на ICS и ниже - не уверен, задумано ли это или ошибка!

person Mark Keen    schedule 17.05.2015