Голосовой помощник с Raspberry Pi - Своими руками
Своими руками

Голосовой помощник с Raspberry Pi

>

Голосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiКто смотрел сериал “Локи”, тот запомнил мисс Минуту – персонаж искусственного интеллекта. Мисс Минута может делать многое в сериале, она разговаривает, взаимодействует с другими персонажами и, конечно же, собирает и обрабатывает данные.
Мастер-самодельщик решил сделать похожий персонаж и наделить его функциями голосового помощника.
Инструменты и материалы:-3D-принтер;-Оранжевая,черная и белая нить PLA;-Петличный микрофон;-Компьютерные колонки;-Raspberry Pi Zero W;-Внешняя звуковая карта;-Адаптер OTG;-Разъем постоянного тока;-Адаптер постоянного тока 5 В;-Аудиоразъем;-Клеевой пистолет;
-Нож;
-Маркер белый и черный.
Шаг первый: проектирование корпуса
С помощью программы fusion 360 мастер спроектировал корпус устройства. Файлы STL можно скачать ниже.
Mr minutes body.stlMr minutes lid.stl
Голосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiШаг второй: 3D-печать
Теперь нужно обработать файл в программе Cura и отправить на печать. Можно напечатать корпус одним цветом, а затем раскрасить, или напечатать корпус разными цветами.
Слои распределяются следующим образом:
Начальный – Оранжевая нить
Второй слой – Черная нить
Третий слой – Белая нить
Четвертый слой – Черная нить
Для печати мастер использовал PLA и сопло с диаметром 0,6 мм и высотой слоя 0,4 мм. На полную печать у этой модели ушло примерно 9 часов.
Голосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiПосле печати необходимо обработать детали, удалить слои поддержки и наплывы. Раскрасить “лицо” в нужную цветовую гамму.
Голосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiШаг третий: Raspberry Pi Zero W + Google Assistant и аудио
Поскольку 3d модель готова, можно приступить к монтажу голосового помощника.
В устройстве будет использован raspberry pi zero w + SDK Google Assistant.
2 года назад это было бы невозможно, потому что SDK Google Assistant не поддерживал raspberry pi zero. Но недавно они выпустили новую службу помощника Google, которая поддерживает все виды оборудования, включая raspberry pi zero w.
Голосовой помощник с Raspberry PiК сожалению, у raspberry pi zero w нет аудиовхода или аудиовыхода.
Чтобы исправить ситуацию мастер использовал звуковую карту USB с переходником микро-USB -USB. Звуковая карта будет принимать аудио через USB и отправлять его на соответствующие периферийные аудиоустройства.

Для аудиовхода мастер использует петличный микрофон, потому что он отлично впишется в нос Мисс Минуты. Но при этом необходимо заменить стереоразъем 3,5 мм, который идет в комплекте с микрофоном, на другой.

А для вывода звука можно использовать любой обычный динамик + усилитель, или готовое решение в виде небольших компьютерных колонок с питанием через USB.
Голосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiШаг четвертый: настройка динамика и микрофона для Raspberry Pi Zero W
На странице документации службы помощника Google есть руководство по оборудованию о том, как настроить динамики и микрофон.
Сначала нужно установить на SD-карту ОС raspberry pi. После этого подключаемся по SSH к raspberry pi с помощью putty.
Далее.

Проверяем, обнаруживает ли Raspberry Pi звуковую карту, с помощью команды.
lsusb
Проверяем подключение микрофона и динамика командой.
arecord -l
и командой
aplay -l
Записываем идентификатор карты и идентификатор устройства.
Получив идентификатор, нужно создать новый файл с именем .arecordrc в / home / pi, используя следующую команду
sudo nano /home/pi/.arecordrc
вставляем код в редактор nano

type asym
capture.pcm "mic"
playback.pcm "speaker"
}
pcm.mic {
type plug
slave {
pcm "plughw:[card ID]<card number="">,[device ID]<device number="">"
}
}
pcm.speaker {
type plug
slave {
pcm "hw:[card ID],[device ID]"<br><card number=""><device number=""> }
}</device></card></device></card>
Заменяем номер карты и номер устройства на идентификатор. Затем нажмите ctrl + X, чтобы выйти, и Y, чтобы сохранить файл.
Наконец, регулируем громкость с помощью команды
alsamixer
Голосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiШаг пятый: тестирование звука
Для тестирования динамика используем следующую команду:
speaker-test -t wav
Следующая команда для записи аудио:
arecord –format=S16_LE –duration=5 –rate=16000 –file-type=raw out.raw
И команда для воспроизведения аудио
aplay –format=S16_LE –rate=16000 out.raw
Голосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiШаг шестой: Настройка Google Assistant
Чтобы использовать SDK Google Assistant, нужно перейти по этой ссылке.
Затем нужно создать новый проект и и присвоить ему имя.

На следующей странице прокручиваем вниз, выбираем регистрацию устройства и настраиваем. Как только это будет сделано, загружаем учетные данные.

Переходим по этой ссылке и включаем API поддержки Google.
Наконец, принимаем условия и все готово.
Голосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiШаг седьмой: установка SDK Google Assistant
В документации пакеты python устанавливаются в виртуальной среде, но в дальнейшем это может стать проблемой при запуске скрипта при включении.
Мастер использовал следующие команды:
обновить ОС Raspberry Pi
sudo apt-get update
Установить python 3
sudo apt-get install python3-dev
Установить системные зависимости пакета:
sudo apt-get install portaudio19-dev libffi-dev libssl-dev
Установите SDK Google Assistant
python3 -m pip install –upgrade google-assistant-sdk[samples]
Получение кода авторизации
<pre>google-oauthlib-tool –scope https://www.googleapis.com/auth/assistant-sdk-prototype
–save –headless –client-secrets /path/to/<a rel="nofollow"></a>client_secret_client-id<a rel="nofollow"></a>.json
Если все прошло успешно, будете ответ, подобный следующему:
credentials saved: /path/to/.config/google-oauthlib-tool/credentials.json
Голосовой помощник с Raspberry PiДалее клонируем репрозитарий
Открываем файл (путь: assistant-sdk-python / google-assistant-sdk / googlesamples / assistant / grpc /) pushtotalk.py
Удаляем строку с 456 по 465 и замените ее на
assistant-assist()
pushtotalk.py
Голосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiЗапускаем команду
sudo nano /etc/rc.local
Введите следующую команду, указав место назначения файла и поставив ‘&’ перед выходом 0.
sudo -H -u pi python3 /[path to pushtotalk]/pushtotalk.py &

Чтобы убедиться, что есть подключение к Интернету перед запуском помощника вводим эту команду
sudo raspi-config
Выбираем вариант загрузки, а затем включаем ожидание сети при загрузке
Эти действия запустят помощник Google во время загрузки со стабильным подключением к Интернету.
Голосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiПосле перезапуска raspberry pi он не загрузится, пока не будет подключен к сети Wi-Fi. После подключения к сети raspberry pi загружается и запускает скрипт pushtotalk.py.
Поскольку скрипт pushtotalk.py был изменен, помощник Google будет слушать всегда, и не нужно триггерное слово для его запуска.
Голосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiШаг восьмой: сборка
Теперь можно собрать устройство. Сначала устанавливает разъемы. Затем raspberry pi zero w и звуковую карту. Устанавливает микрофон. Демонтирует динамик из аудиоколонки и устанавливает его внутрь корпуса голосового помощника.
Все детали крепятся с помощью термоклея. Затем собираются две половинки корпуса.
Голосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiВсе готово. В будущем можно добавить батарею в устройство, чтобы сделать его портативным.
Голосовой помощник с Raspberry PiГолосовой помощник с Raspberry PiВесь процесс изготовления и тестирования такого голосового помощника можно посмотреть на видео.

SitesReady

Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного. - Альберт Эйнштейн

Follow us

Don't be shy, get in touch. We love meeting interesting people and making new friends.