2015-05-16 2 views
10

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

speech.startListening(recognizerIntent); 

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

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

Что это?

Благодаря

+0

У вас есть успех в этом? – Herry

ответ

2

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

speech demo: есть источник here и обсуждается here и оперировал CLI here

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

Или, если вам нравится эта общая идея, проверьте ibm's wa tson here

IMO - его более сложный, но не ограниченный.

+0

http streaming для сторонних сервисов кажется единственным решением на данный момент. –

2

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

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

или

intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS, 2000); 

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

+0

Спасибо, я имел в виду, когда они не работают ... –

3

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

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

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

+1

Спасибо, хотя Pocketsphinx не работает хорошо для естественной диктовки речи (он отлично работает для ограниченной грамматики - отлично подходит для команд), и не является решением в ссылка на api google в той же проблеме, что и я опубликовал? –

+0

@RonenRabinovici Извините, я обновил ссылку –

+0

Как загрузить pocketsphinx –

Смежные вопросы