Распознавание речи в ROS при помощи Pocketsphinx и Kinect

в 11:06, , рубрики: Kinect, pocketsphinx, ROS, sphinx, голосовое управление, интерфейсы, распознавание речи

Распознавание речи является одной из самых важных способностей для робота поскольку позволяет управлять роботом посредством голоса. Можно дать роботу простую команду “Принеси пиво из холодильника” и при достаточных навыках робот может выполнить все необходимые операции, связанные с извлечением пива из холодильника и доставки его в нужное место.

В этой статье я хочу рассказать об установке и настройке всех необходимых драйверов и библиотек для распознавания голоса с использованием Pocketsphinx и сенсора Kinect Xbox 360 в качестве микрофона. Я выбрал пакет Pocketsphinx поскольку он является одним из самых популярных, имеет официальный пакет для ROS и имеет хорошие рекомендации.

Все описанные шаги я выполнял на системе Ubuntu 12.04.

Установка OpenKinect

Во-первых, для использования сенсора Kinect в качестве микрофона необходимо установить библиотеку OpenKinect (Libfreenect): http://openkinect.org/wiki/Main_Page. К счастью он доступен в виде бинарных пакетов в Ubuntu, поэтому здесь проблем никаких не должно возникнуть:

sudo apt-get install freenect

Вместе с драйвером будут установлены и демо приложения.

При установке libfreenect в Ubuntu 12.04 также советуют удалить модули gspca, поскольку они не позволяют libfreenect работать в режиме пользователя (user-mode). Последуем рекомендации:

$ sudo modprobe -r gspca_kinect 
$ sudo modprobe -r gspca_main

Для проверки работоспособности драйвера можно запустить демо командой:

freenect-glview

Появится изображение с камеры и карта глубины.

Проверка подключения Kinect

Во-вторых, для корректной работы Kinect в качестве приемника звука сенсор Kinect должен быть подключен к компьютеру через USB только версии 2.0 или 1.0, через USB 3.0 работать не будет. Проверить, что аудио устройство Kinect доступно, можно командой:

cat /proc/asound/cards

Вы должны увидеть подобный вывод команды:

0 [AudioPCI ]: ENS1371 - Ensoniq AudioPCI
Ensoniq AudioPCI ENS1371 at 0x2080, irq 16
1 [Audio ]: USB-Audio - Kinect USB Audio
Microsoft Kinect USB Audio at usb-0000:02:03.0-1, high speed
…

Если вы не увидели запись об устройстве Kinect, то возможно Kinect подключен через порт USB 3.0. Также проверьте, что микрофон Kinect доступен как входное аудио устройство в настройках звука Ubuntu.

Теперь Kinect готов к работе и можно приступить к настройке Pocketsphinx.

Установка Pocketsphinx

Установка Pocketsphinx очень проста. Нужно установить пакет для ROS:

sudo apt-get install ros-"groovy или hydro"-pocketsphinx

Для пользователей других систем (не Ubuntu) установка будет такой:

git clone https://github.com/mikeferguson/pocketsphinx
sudo apt-get install gstreamer0.10-pocketsphinx

Существует несколько мануалов по использованию этой библиотеки. Их можно найти здесь и здесь. Я попробовал первый. Руководства очень простые и с ними у вас никаких сложностей не возникнет.

Желаю удачи в распознавании речи с помощью Pocketsphinx!

Автор: vovaekb90

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js