Вот, скажите мне лучше такую вещь, если кто-то из читающих разбирался с распознавалкой речи под андроид, т.к. мне кажется, что я столкнулся с неразрешимой проблемой…
После долгого гугленья и экспериментов, я сделал для себя следующие вывод:
Гугловский движок не рассчитан на возможность непрерывного распознавания. Обычный сеанс проходит так: вызвали распознавалку, появилось окошко с микрофоном одновременно со звуковым оповещением и через пару секунд пошла запись. Если в течении 5 секунд ничего не услышано, либо не удалось ничего распознать, то появится соответствующая объява с предложением повторить сеанс распознования.
Нам такой вариант не подходит, т.к. робот должен слушать эфир непрерывно, когда сам не говорит. И тыкать ему пальцами в экран не предполагается. Т.е. сервис надо все время автоматически перезапускать.
От гугловских окошек с микрофонов удалось избавиться с помощью
RecognitionListener. От писка, оповещающего о начале процесса распознавания избавиться не удается, можно только его приглушить, отключив звук на время писка. Факт в том, что движок распознавалки делает секундную паузу после запуска, перед тем, как начать слушать. Получается цикл 5 секунд слушает, 1 секунду глухой. Время в 5 секунд теоретически
можно увеличить. Однако на практике ничего не меняется, по крайней мере в моем телефоне.
Отношение 5:1 конечно не маленькое, но на практике куски фраз часто пропадают, если начал говорить в ту злосчастную секунду.
Как решение этой проблемы записывать речь во FLAC и отправлять на онлайн распознавалку. Но, это значит сделать робота полностью интернетозависимым, чего не хотелось бы.
У кого-нибудь есть мысли по этому поводу?