ROS-нода ~cmds_recognizer

Получает весь входной поток аудио-сигнала и ищет в нём команды, заданные файлом грамматик.

Распознавание идет пока включен режим распознавания. Режим распознавания управляется сервисом voice_recognizer_pocketsphinx/cmds_recognizer/IsWork:

rosservice call /voice_recognizer_pocketsphinx/cmds_recognizer/IsWork "SetStatus: 0" 
  • SetStatus - режим распознавания: 0 - остановить распознавание, 1 - возобновить распознавание. При передаче любого отличного от 0 и 1 значения вызов просто игнорируется

  • Возвращаемое значение: предыдущий статус распознавания (для получения текущего статуса распознавания без его изменения просто вызовите сервис с любым отличным от 0 и 1 значением)


Для просмотра вывода пакета подпишитесь на соотвествующий топик:

rostopic echo /voice_recognizer_pocketsphinx/cmds_recognizer/commands

Символы кириллицы обычно приходят в формате unicode escape sequence. Для отладки и прочтения используйте любой онлайн-конвертер:

https://r12a.github.io/app-conversion/

https://dencode.com/ru/string/unicode-escape

Пример перевода unicode escape-последовательностей в читаемый формат


Конфигурационный файл voice_recognizer_pocketsphinx/config/voice_recognizer_pocketsphinx_cmds.yaml:

  • topic_audio_name - название топика, аудио-поток из которого распознаётся

  • topic_cmds_name - название топика, куда публикуются распознанные команды

  • srv_IsWork_name - название сервиса, который управляет устанавливает статус распознавания

  • default_IsWork - статус распознавания по умолчанию

  • buffer_size - количество аудио-фреймов, которые склеиваются в единый массив и подаются на вход модели распознавания

  • logs_output - путь до файла, куда выводится логирование движка pocketspinx

  • hmm - путь до акустической модели

  • dict - путь до словаря с прозиношением распознаваемых слов

  • gram_file - путь до файла с грамматикой (где описаны необходимые команды)

  • grammar_name - название грамматики в файле грамматик

  • rule_name - название правила в грамматике grammar_name

  • timeout - таймаут, по истечении которого распознавание команды прекращается принудительно

  • lw: - параметр функции конвертации грамматики jsgf.build_fsg()

Last updated