Розпізнавання голосу за допомогою Raspberry Pi
Рейтинг статті: / 17
НайгіршеНайкраще 
Розпізнавання мовиВ цьому уроці розглянемо краще програмне забезпечення (ПЗ) розпізнавання голосу для Raspberry Pi, яке може працювати без доступу в Інтернет, та як його використовувати.
На жаль, ви не зможете скористатися звичайним мікрофоном з аудіороз’ємом, бо Raspberry Pi не має звукової карти. Отже, необхідно використати або USB веб-камеру з вбудованим мікрофоном, або додаткову звукову карту USB з входом для мікрофону, наприклад, таку:
USB звукова карта
USB звукова карта з входом для мікрофону
Перевірка мікрофону
Спочатку ви повинні перевірити чи правильно записує мікрофон і, чи достатньо висока гучність запису мікрофону. Підключіть свою USB звукову карту. Перевірте, чи знайдений мікрофон системою за допомогою команди:
cat /proc/asound/cards
Ви повинні побачите, що адаптер card 1. Введіть
cat /proc/asound/modules
і ви побачите, що драйвером для card 0 є snd_bcm2835, а для card 1 - snd_usb_audio. Це означає, що ALSA в даний момент налаштований на відправку аудіо на вбудований аудіо вихід апаратного пристрою RPi. Оскільки, RPi не має апаратно вбудованого аудіовходу, то ALSA не зможе конфігурувати пристрій захвату.
Необхідно конфігурувати ALSA для використання USB аудіо карти як пристрою за замовчуванням для аудіо входу і виходу. Найелегантніше було б конфігурувати ALSA для перемикання між звуковою картою і вбудованим виходом аудіо в залежності від того, куди підключені зовнішні пристрої. Якщо вам необхідно це зробити, то читайте інструкцію. Нам же буде достатньо відкрити файл
sudo nano /etc/modprobe.d/alsa-base.conf
і знайти наступні рядки в його кінці:
# Keep snd-usb-audio from being loaded as first soundcard
options snd-usb-audio index=-2
Змініть в рядку options index=-2 на index=0. Збережіть файл alsa-base.conf і перезавантажте RPi:
sudo reload
Тепер команда
cat /proc/asound/cards
повинна показати, що за замовчуванням використовується звукова карта (card 0).
Далі нам потрібно встановити мікрофон на високу гучність запису. Щоб зробити це, введіть в терміналі команду
alsamixer
З'явиться акуратний графічний інтерфейс, натисніть клавіші вгору/вниз, щоб налаштувати гучність. Натисніть F6 (all - все), а далі виберіть зі списку веб-камеру або мікрофон. Потім знову використайте клавіші зі стрілкками вверх/вниз, щоб встановити гучність запису на високому рівні.
Alsamixer
Alsamixer для Raspberry Pi
Тепер ви повинні перевірити, чи належним чином відбувається запис. Підключіть мікрофон і скористайтеся командою:
arecord -d 5 -r 48000 test.wav
щоб зробити запис тривалістю 5 с.
Відтворити запис можна за допомогою команди з терміналу:
aplay test.wav
Якщо звук добре чути, то мікрофон працює відмінно, а якщо звук слабкий, то спробуйте ще відрегулювати гучність і повторіть наведені вище кроки.
Встановлення та налаштування ПЗ
Pocketsphinx - версія Sphinx, яка може бути використана у вбудованих системах (наприклад, на базі процесора ARM).
Переваги: Знаходиться у стадії активної розробки і включає в себе такі функції, як арифметика з фіксованою точкою і ефективні алгоритми для обчислення GMM. Всі процеси відбуваються на Raspberry Pi, тому можна використовувати в автономному режимі. Підтримує розпізнавання мови в реальному часі.
Недоліки: ПЗ складне в налаштуванні і розумінні для новачків. Оскільки всі процеси виконуються на Raspberry Pi, то розпізнавання мови трохи повільніше.
Інструкція з установки:
1. Завантажте останні версії Sphinxbase і Pocketsphinx (не обов’ково стабільні):
wget http://sourceforge.net/projects/cmusphinx/files/sphinxbase/5prealpha/sphinxbase-5prealpha.tar.gz
wget http://sourceforge.net/projects/cmusphinx/files/pocketsphinx/5prealpha/pocketsphinx-5prealpha.tar.gz
2. Розархівуйте завантажені файли в різні директорії:
tar -zxvf pocketsphinx-5prealpha.tar.gz; rm -rf pocketsphinx-5prealpha.tar.gz
tar -zxvf sphinxbase-5prealpha.tar.gz; rm -rf sphinxbase-5prealpha.tar.gz
3. Для компіляції цих пакетів вам необхідно встановити bison і заголовки розробок ALSA.
ПРИМІТКА: Важливо, щоб заголовки ALSA були вже встановлені, перш ніж будувати Sphinxbase. В іншому випадку, Sphinxbase не використовуватиме ALSA. Також вважається, що ALSA не використовуватиметься, якщо встановлений PulseAudio (що не авжди добре для розробників).
sudo apt-get install bison
sudo apt-get install libasound2-dev
4. Перейдіть в каталог Sphinxbase

cd ~/sphinxbase-5prealpha/

і введіть наступні команди:
./configure --enable-fixed
sudo make
sudo make install
5. Перейдіть в каталог Pocketsphinx

cd ~/pocketsphinx-5prealpha/

і введіть наступні команди:
./configure
sudo make
sudo make install
6. Перевірте Pocketsphinx командою в терміналі:
src/programs/pocketsphinx_continuous -samprate 48000
7. Додатково налаштуйте словники для pocket-sphinx, що може значно поліпшити точність при використанні додатків управління і контролю. Словники можна визначити параметрами -dict і -lm:
./src/programs/pocketsphinx_continuous -samprate 8000 -nfft 2048 -adcdev HW: 1,0 -lm 2530.lm -dict 2530.dic
Якщо хочете дещо змінити в ПЗ, то рекомендуємо вам прочитати деяку інформацію в CMUSphinx Wiki.
Julius - високопродуктивний, з двохпрохідним програмним декодером та з великим словниковим запасом розпізнавання злитного мовлення (LVCSR) для дослідників і розробників систем оброблення мови.
Переваги: Може виконувати розпізнавання мови практично в режимі реального часу на самому Raspberry Pi. Прийняті стандартні формати моделі мови, щоб адаптувати до використання з іншими безкоштовними інструментальними засобами моделювання.
Недоліки: Не постійний розвиток: останнє оновленням десь рік тому. Розпізнавання дещо неточне і повільне. Великий час установки
Інструкція з установки:
1. Спочатку встановіть кілька пакетів, щоб отримати систему в робочому стані:
sudo apt-get install alsa-tools alsa-oss flex zlib1g-dev libc-bin libc-dev-bin python-pexpect libasound2 libasound2-dev cvs
2. Завантажте Julius з джерела CVS:
cvs -z3 -d:pserver: Ця електронна адреса захищена від спам-ботів, Вам потрібно включити JavaScript для перегляду :/cvsroot/julius co julius4
3. Встановіть прапори компілятора від змінних оточення:
export CFLAGS="-O2 -mcpu=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -pipe -fomit-frame-pointer"
4. Перейдіть в папку julius4
cd ~/julius4/
і введіть наступні команди:
./configure --with-mictype=alsa
sudo make
sudo make install
5. Julius необхідна змінна оточення з назвою ALSADEV, щоб задати, який пристрій використовувати для мікрофона:
export ALSADEV="plughw:1,0"
6. Завантажте безкоштовну акустичну модель для використання в Julius. Після того, як ви завантажили її, зайдіть в директорію і запустіть:
julius -input mic -C julius.jconf
Після цього ви повинні бути в змозі почати введення мови.
За матеріалами: raspberrypi.stackexchange.com, diyhacking.com
 
>
КнигаНовиниПрактика пошукуПартнериПро нас
Підтримка та дизайн: Могильний С.С. Шаблон: Joomla Templates by BuyHTTP Joomla Hosting