Распознавание речи является одной из самых важных способностей для робота поскольку позволяет управлять роботом посредством голоса. Можно дать роботу простую команду “Принеси пиво из холодильника” и при достаточных навыках робот может выполнить все необходимые операции, связанные с извлечением пива из холодильника и доставки его в нужное место.
В этой статье я хочу рассказать об установке и настройке всех необходимых драйверов и библиотек для распознавания голоса с использованием 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