Робо-голова
  • Общая информация
  • Технические характеристики
  • Комплект поставки
  • Полезные ссылки
  • Быстрый старт
  • Настройка и обслуживание
    • Подключение к Робоголове по сети
      • Настройка подключения к Сети
      • Подключение по SSH к Робоголове
      • Подключение по SFTP
      • Подключение через VSCode
    • Смена данных устройства
    • Выключение головы
    • Возврат к заводским настройкам
    • Ubuntu-сервис
    • Подключение аккумулятора
    • Зарядка батареи
    • Подключение сервоприводов к плате расширения
  • Интеграция с роботом TurtleBro
  • Устройство головы
    • Аппаратная конфигурация
    • Программное обеспечение
    • ROS-пакеты
      • robohead_controller
      • display_driver
      • neck_driver
      • ears_driver
      • speakers_driver
      • respeaker_driver
      • voice_recognizer_pocketsphinx
        • ROS-нода ~kws_recognizer
        • ROS-нода ~cmds_recognizer
        • Настройка собственных команд и ключевых слов для распознавания
      • sensor_driver
      • usb_cam
  • Кейсы взаимодействия
    • 1. Смена ресурс-пака стандартных действий
    • 2. Внесение изменений в стандартные действия
    • 3. Написание своего действия для robohead_controller
    • 4. Создание своих сценариев взаимодействия без использования robohead_controller
    • 5. Создание ROS-пакета со своим сценарием взаимодействия и его автозагрузка
Powered by GitBook
On this page
  1. Устройство головы
  2. ROS-пакеты
  3. voice_recognizer_pocketsphinx

ROS-нода ~cmds_recognizer

PreviousROS-нода ~kws_recognizerNextНастройка собственных команд и ключевых слов для распознавания

Last updated 1 month ago

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

Распознавание идет пока включен режим распознавания. Режим распознавания управляется сервисом 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. Для отладки и прочтения используйте любой онлайн-конвертер:



Конфигурационный файл 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()

https://r12a.github.io/app-conversion/
https://dencode.com/ru/string/unicode-escape
Пример перевода unicode escape-последовательностей в читаемый формат