Модуль распознавания речи Respeaker 2-Mics Pi HAT для Raspberry Pi

Модуль распознавания речи Respeaker 2-Mics PI HAT для одноплатной платформы Raspberry Pi, совместимый с сервисами Google Assisitant, Amazon Alexa Voice Service и др.

Технические характеристики

  • Модель: V1.0
  • Питание: 5 В RPI/mUSB
  • Рабочее напряжение: 3.3 В
  • Совместимость: Raspberry Pi Zero/1B+/2B/3B/3B+
  • Встроенный микрофон: 2
  • Стереокодек: WM8960 ЦАП/АЦП, усилитель Class D
  • Выходная мощность:
    • Динамики: 1 Вт на канал, нагрузка 8 Ом
    • Наушники: 40 мВт, нагрузка 16 Ом
  • Частота дискретизации: до 48КГц
  • Внешний интерфейс Grove: I2C (I2C-1), GPIO12 (GPIO12 и GPIO13)
  • Пользовательская кнопка: GPIO17
  • Индикация: 3 программируемых светодиода RGB APA102
  • Внешние разъёмы: JST 2.0 для динамика и гнездо AUDIO 3.5 мм для наушников
  • Радиус улавливания звука: до 3 м
  • Размеры: 65 х 35 х 15 мм

До недавнего времени, уникальная возможность распознавания и выполнения искусственным интеллектом команд, произнесённых вслух человеческим голосом, оставалась прерогативой исключительно фантастических произведений. Благодаря быстрому развитию современных аналогичных технологий, в сочетании с постоянным ростом вычислительных мощностей мобильных или стационарных процессоров, подобная идея перестала казаться чем-то недостижимым. В настоящее время, многим из пользователей смартфонов и планшетов, известны виртуальные ассистенты наподобие Siri, Alexa или Алиса, предоставляющие информационно-справочные сервисы, построенные на получении данных из сети Интернет. Подобные облачные проекты от крупных разработчиков электроники и программных приложений оказались весьма востребованы в текущих реалиях, благо доступ в глобальную сеть удаётся обнаружить практически повсеместно. Не сложно догадаться, что в их алгоритмах были заложены способности, максимально облегчающие условие запроса при помощи голосовых сообщений с последующим ускоренным поиском и одновременным озвучиванием найденной информации. Однако, каждый из приведённых примеров стал лишь неразрывной частицей подавляющего большинства серийных устройств, работающих на различных операционных системах — iOS, Android, Linux или Windows. И как следствие, появление недорогого и универсального модуля распознавания речи Respeaker от компании SeeedStudio не на шутку оживило мировое сообщество разработчиков для популярной одноплатной микроконтроллерной платформы Raspberry Pi, предоставив невероятные возможности в создании, интегрировании и взаимодействии своих голосовых приложений либо с собственным ИИ, либо с уже существующими виртуальными помощниками.

Обзор модуля SeeedStudio Respeaker 2-Mics Pi HAT

Обзор модуля распознавания речи Respeaker 2-Mics Pi HAT для Raspberry Pi  

 

Инструкция по подключению и настройке

1. Соедините ReSpeaker 2-Mics Pi HAT с 40-контактным разъёмом GPIO платы Raspberry Pi. Убедитесь, что контакты правильно совмещены при установке ReSpeaker 2-Mics Pi HAT — разъём питания mUSB платы Respeaker должен располагаться на одной стороне со слотом под SD-карту Raspberry Pi.

2. Выполняйте установку программного обеспечения на последнюю версию Raspbian OS для Raspberry Pi (рекомендуется образ ОС на старше обновления 2018.11.13)

  • Шаг 1. Загрузите исходный код Seeed-voicecard, установите его и перезапустите Raspberry Pi.
    sudo apt-get update
    sudo apt-get upgrade
    git clone https://github.com/respeaker/seeed-voicecard.git
    cd seeed-voicecard
    sudo ./install.sh
    reboot​
  • Шаг 2. Убедитесь, что имя звуковой карты соответствует исходному коду seeed-voicecard с помощью команд aplay -l и arecord -l.
    pi@raspberrypi:~/seeed-voicecard $ aplay -l
    **** List of PLAYBACK Hardware Devices ****
    card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
      Subdevices: 8/8
      Subdevice #0: subdevice #0
      Subdevice #1: subdevice #1
      Subdevice #2: subdevice #2
      Subdevice #3: subdevice #3
      Subdevice #4: subdevice #4
      Subdevice #5: subdevice #5
      Subdevice #6: subdevice #6
      Subdevice #7: subdevice #7
    card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 1: seeed2micvoicec [seeed-2mic-voicecard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 []
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    
    pi@raspberrypi:~/seeed-voicecard $ arecord -l
    **** List of CAPTURE Hardware Devices ****
    card 1: seeed2micvoicec [seeed-2mic-voicecard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 []
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    pi@raspberrypi:~/seeed-voicecard $​
  • Шаг 3. Подключите к модулю Respeaker 2-Mics PI HAT наушники или динамик и протестируйте работоспособность. Должно быть слышно всё, что вы говорите в микрофон.
    arecord -f cd -Dhw:1 | aplay -Dhw:1​

3. Настройте параметры звука и отрегулируйте громкость с помощью alsamixer, графической программы-микшера, созданной для изменения параметров звукового компонента ядра Линукс — Advanced Linux Sound Architecture (ALSA).

pi@raspberrypi:~ $ alsamixer
Графическая программа-микшер alsamixer  

Перед началом, воспользуйтесь клавишей F6 для выбора устройства seeed-2mic-voicecard. Клавиши со стрелками влево и вправо позволяют выбрать канал или устройство, стрелки вверх и вниз регулируют громкость текущего выбранного устройства. Выход из программы осуществляется нажатием клавиш ALT+Q или ESC. Дополнительная информация.

Встроенные светодиоды APA102

Каждый встроенный светодиод APA102 обладает собственной дополнительной микросхемой-драйвером, которая получает данные о желаемом цвете через линию входа и удерживает цвет до получения новой команды.

sudo pip install spidev
cd ~/
git clone https://github.com/respeaker/mic_hat.git
cd mic_hat
python pixels.py
 

 

Пользовательская кнопка

Встроенная пользовательская кнопка соединена с контактом GPIO17. Следующий пример демонстрирует, как определять её при помощи python и RPi.GPIO.

sudo pip install rpi.gpio    // установите библиотеку RPi.GPIO
nano button.py               // скопируйте следующий код в button.py
import RPi.GPIO as GPIO
import time

BUTTON = 17

GPIO.setmode(GPIO.BCM)
GPIO.setup(BUTTON, GPIO.IN)

while True:
    state = GPIO.input(BUTTON)
    if state:
        print("off")
    else:
        print("on")
    time.sleep(1)

Сохраните код в файл button.py и запустите его выполнение. Теперь, при нажатии на кнопку, программа будет выводить сообщение "on".

pi@raspberrypi:~ $ python button.py
off
off
on
on
off

Google Assistant SDK

Чтобы использовать Google Assistant (что такое Google Assistant), для начала необходимо интегрировать библиотеку Google Assistant в систему Raspberrt Pi. Ссылка на официальное руководство Google. Следующее руководство также покажет, как начать работу с Google Assistant.

1. Настройка Проекта разработчика и получения файла JSON

Следуйте шагам 1-4 в руководстве, чтобы настроить проект в облачной платформе Google, и создайте файл OAuth Client ID JSON. Скопируйте файл JSON в Raspberry Pi.

2. Применение виртуальной среды Python для изоляции SDK и его зависимостей от системных пакетов Python.

sudo apt-get update
sudo apt-get install python3-dev python3-venv # Установите python3.4-venv, если соответствующий пакет не найден.
python3 -m venv env
env/bin/python -m pip install --upgrade pip setuptools
source env/bin/activate

3. Установка библиотеки google-assistant-library

Пакет помощника Google Assistant SDK содержит всё необходимое для своего запуска на устройстве, включая библиотеки и примеры. Воспользуйтесь командой pip для установки последней версии пакета Python в виртуальную среду:

(env) $ python -m pip install --upgrade google-assistant-library

4. Авторизация Google Assistant SDK

Авторизуйте экземпляр Google Assistant SDK, чтобы помощник Google получил возможность выполнения запросов для учетной записи Google. Ссылка на файл JSON, который был скопирован в устройство на шаге 1.

pi@raspberrypi:~ $ google-oauthlib-tool --client-secrets /home/pi/client_secret_client-id.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless

Указанный в команде путь /home/pi/client_secret_client-id.json должен соответствовать расположению ранее полученному файлу JSON. Команду нужно отредактировать, если пути не совпадают.

После запуска команды, она должна отобразиться так, как показано ниже. Скопируйте URL-адрес и вставьте его в браузер (это можно сделать на компьютере разработчика или на любом другом компьютере). После подтверждения, в браузере появится код, например, «4 / XXXX». Скопируйте и вставьте этот код в терминал.

Please go to this URL: https://...
Enter the authorization code:

Должно отобразиться сообщение о инициализации полномочий OAuth. Полученное сообщение InvalidGrantError указывает на ввод ошибочного кода.

5. Запуск демонстрации помощника Google

pi@raspberrypi:~ $ alsamixer    // Для регулировки громкости
pi@raspberrypi:~ $ source env/bin/activate
(env) pi@raspberrypi:~ $ env/bin/google-assistant-demo

Произнесите вслух "Окей, Google" или "Хей, Google", затем задайте запрос, на который помощник должен ответить. Если помощник не отвечает, следуйте инструкциям по устранению проблем.

Демонстрация примера помощника Google для Raspberry Pi  

 

Документация и ресурсы

Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !
© Все права защищены 2019г https://compacttool.ru