Основа проекта - динамическая библиотека SpeechRecognizer (SpeechRecognizer->lib->dynamic).
Библиотека SpeechRecognizer создавалась в расчете на последующую интеграцию в проекты на Unity 5 за счет использования обертки(коннектора) UnitySpeechRecognizer ( https://github.com/MimusTriurus/UnitySpeechRecognizer ).
Приложение для демонстрации распознаванию речи - VoiceRecognition (SpeechRecognizer->app).
Системные требования:
- ОС: Windows(x86, x64), Ubuntu 16.04(x86, x64), Raspbian;
- Qt 5.5.1 или более новая версия;
- Компилятор с поддержкой c++ 11(MSVC2013);
- Наличие микрофона.
Установка на Windows:
- Склонировать репозиторий;
- При необходимости установить флаг компиляции -j* где * - колличество ядер задействованных в ходе компиляции;
- Собрать головной проект SpeechRecognizer;
- Скачать файлы акустической модели https://cloud.mail.ru/public/74Jz/ifWwr2p2r и извлечь в папку с исполняемым файлом VoiceRecognition.exe.
Установка на Ubuntu:
- Склонировать репозиторий;
- Установить библиотеку libasound2-dev введя в консоли sudo apt-get install libasound2-dev (для того, чтобы pocketsphinx по умолчанию использовал Alsa а не pulseaudio);
- При необходимости установить флаг компиляции -j* где * - колличество ядер задействованных в ходе компиляции;
- Собрать головной проект SpeechRecognizer;
- Скачать файлы акустической модели https://cloud.mail.ru/public/74Jz/ifWwr2p2r и извлечь в папку с исполняемым файлом VoiceRecognition.
Установка на Raspbian
- Cоздать файл подкачки(swap file) на 1 Гб. Для этого необходимо: a) открыть файл введя в консоли команды sudo nano /etc/dphys-swapfile; b) изменить значение CONF_SWAPSIZE на 1024; c) сохраняем файл нажатием [Ctrl+O], затем [Enter] для подтверждения и [Ctrl+X].
- Склонировать репозиторий;
- Установить библиотеку libasound2-dev введя в консоли sudo apt-get install libasound2-dev (для того, чтобы pocketsphinx по умолчанию использовал Alsa а не pulseaudio);
- При необходимости установить флаг компиляции -j* где * - колличество ядер задействованных в ходе компиляции;
- Собрать головной проект SpeechRecognizer;
- Скачать файлы акустической модели https://cloud.mail.ru/public/74Jz/ifWwr2p2r и извлечь в папку с исполняемым файлом VoiceRecognition.
Примечание: 0. Для статической сборки на Windows необходимо добавить "#undef SPHINX_DLL" в pocketsphinx_export.h и sphinxbase_export.h
- Для статической сборки библиотек pocketsphinx команду make следует выполнять с флагом CFLAGS="-static";
- Для установки скомпиленных библиотек следует выполнить make install DESTDIR=<каталог>;
- Тестовое приложение VoiceRecognition и библиотека SpeechRecognizer находятся в папке bin;
- Для работы приложения VoiceRecognition с конкретным микрофоном необходимо запускать программу с параметром "-adcdev hw:0,0" ( где hw:0,0 - идентификатор микрофона. Например hw:1,0 для микрофона usb web-камеры на raspberry ) иначе используется устройство по умолчанию;
- Для улучшения качества распознавания необходимо отрегулировать микрофон таким образом, чтобы он захватывал как можно меньше фонового шума;
- При возникновении ошибки "Available samping rate 44100 is too far from requested 16000" на raspberry необходимо инициализировать аудиоустройство параметром запуска "-adcdev plughw:1"