[Модуль] [Железо] Голосовое управление по ключевому слову на базе Orange Pi Zero и аналогов

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
lanket
Сообщения: 1147
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 252 раза
Поблагодарили: 158 раз

[Модуль] [Железо] Голосовое управление по ключевому слову на базе Orange Pi Zero и аналогов

Сообщение lanket » Вт май 08, 2018 12:45 am

Реагирование на ключевое слово сделано на snowboy.
Распознование речи и синтез речи на выбор Google, Yandex, Wit... На выбор.


Разработка терминала ведет Anaki
gitHub 2й версии терминала
gitHub модуля
Онлайн поддержка терминала в Телеграмм

Быстрая установка с помощью имиджа флэшки:
СпойлерПоказать
Имиджи от Floks
OPI Zero H2 256 ядро 3.14.113
Образ терминала с утановленными плагинами Веб интерфейс и Google Assistant
вывод звука 3.5
микрофон ps3 eye
после запуска можно войти через веб интерфейс для настроек ip_adress:8989
для работы Google Assistant необходимо зарегистрировать новую модель устройства по инструкции
https://github.com/Aculeasis/mdmt2-google-assistant
google-auth-oauthlib[tool] google-assistant-grpc установлены (на плате с 256Mb памяти возникают сложности )
пользователь:root
пароль:25201540
Образ с карты 4Гб

OPI Zero H2 256ядро 4.19.20
Образ терминала с утановленными плагинами Веб интерфейс, Google Assistant и STT через Google Assistant
вывод звука 3.5
микрофон ps3 eye
после запуска можно войти через веб интерфейс для настроек ip_adress:8989 логин admin без пароля
для работы Google Assistant необходимо зарегистрировать новую модель устройства по инструкции
https://github.com/Aculeasis/mdmt2-google-assistant
google-auth-oauthlib[tool] google-assistant-grpc установлены (на плате с 256Mb памяти возникают сложности )
пользователь:root
пароль:25201540
Образ с карты 8Гб

Предпочтительней использовать 4 ядро меньше нагрев (в стандартном корпусе температура 45° - 55° в 3 ядре 70° - 80° ), но есть проблема со звуком, которая решается установкой внешней звуковой картой

Имидж от меня
OPI Zero Plus H5 512 ядро 4.19.20
Образ терминала с утановленными плагинами Веб интерфейс, Google Assistant и STT через Google Assistant
вывод звука 3.5
микрофон ps3 eye
после запуска можно войти через веб интерфейс для настроек ip_adress:8989 логин lanket без пароля
для контроля состояния установлен rpimonitor доступ к нему ip_adress:8888
для работы Google Assistant необходимо зарегистрировать новую модель устройства по инструкции
https://github.com/Aculeasis/mdmt2-google-assistant
google-auth-oauthlib[tool] google-assistant-grpc установлены (на плате с 256Mb памяти возникают сложности )
пользователь:root
пароль:mdmpiterminal
пользователь:pi
пароль:qwertyui
Образ с карты 16Гб сжатый, в теории должен встать на 4G флэшку
Если не получиться, то перезалью с уменьшением размера разделов.

Этот образ записывать либо силами линукса, либо под Windows с помощью бесплатной программы balenaEtcher
Устаревшие имиджи:
СпойлерПоказать
4 ядро (рекомендуется)

Еще образ
4 ядро opi zero H2 256Mb
Chrome_mode = 4
Вывод звука на 3.5
Ввод usb микрофон
Логин пароль
root
25201540

Образ для orange pi zero h2 с микрофоном USB PS EYE

Основанное на 3м ядре: Orange pi zero H2 256/512 с микрофоном USB PS EYE

login: pi
password: qwertyui

Будет работать и с другим микрофоном, но нужно ковырять asound - готовые конфиги есть в папке asound
Настройка и первый запуск:
Настройка и первый запускПоказать
1. Вставить ethernet, микрофон, колонки (наушники)
2. После загрузки терминал скажет свой IP адрес
3. Зайти в МДМ в Настройки > Терминалы - добавить новый и ip адрес
Галочки MajorDroid API, может проигрывать медиа-контент, если хотите, что бы терминал дублировал системные сообщения, то галочку может принимать уведомления от системы (это все в ветке Альфа, на мастере проверю)
4. Установить модуль - Маркет дополнений - Оборудование - MDM VoiceAssistant
5. В настройках модуля выбрать терминал, добавить ключи API если есть, чувствительность на 0.7 (для тестов, потом уменьшить)
6. Запись ключевых слов
каждое ключевое слово нужно записать 3 раза, терминал голосом обозначит начало и конец записи, все 3 записи должны быть одинаковые.
Для работы в режиме chrome_mode (когда можно говорить ключевое слово + команда) рекомендую записать 3 слова с одним и тем же ключем, так будет больше шансов что терминал вас поймет, можно чуть разными интонациями.
после всех записей - кнопка "применить", это перезагрузит модуль.

Из известных проблем:
Из известных проблемПоказать

1. Гугл не даст терминалу распознать голос, если не правильно указана дата, я добавил в автозагрузку авто обновление даты.
2. Если микрофон не слышит - выньте и вставить его обратно.

Ссылка на гит - https://github.com/Aculeasis/mdmTerminal2
Описание всех настроек - https://github.com/Aculeasis/mdmTerminal2/wiki/


Терминал для установки через докер тут, благодарим Anaki
Благодарим за образы и большую работу за настройку и многочисленные эксперементы dance12r

Пошаговая установка на ORANGE PI LITE описана . Из плюсов доступно на территории РФ, стабильный Wi-Fi. Благодаряим yray

Важная информация по железу:
В связи с многочисленными тестами на разных одноплатниках рекомендуется для стабильной работы следующие одноплатники:
Orange pi zero ревизии не меньше 1.5 самый дешёвый вариант.
Также Banana pi
Raspberry Nano pi и zero.





Последний раз редактировалось lanket Вт май 08, 2018 12:45 am, всего редактировалось 28 раз.
За это сообщение автора lanket поблагодарили (всего 14):
fandaymon (Вт май 08, 2018 1:27 am) • directman66 (Ср май 09, 2018 6:41 am) • Samir77 (Вс май 13, 2018 9:43 pm) • savenko_egor (Вт май 15, 2018 2:48 pm) • ahelper (Ср май 16, 2018 9:19 pm) • Ron (Сб май 19, 2018 1:20 am) • Stazo (Сб май 26, 2018 6:50 pm) • chief (Вт май 29, 2018 12:19 am) • andrey040670 (Чт июл 19, 2018 10:38 pm) • yura_s80 (Пт авг 03, 2018 2:02 pm) и ещё 4
Рейтинг: 19.18%
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
skysilver
Сообщения: 2391
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 318 раз
Поблагодарили: 1327 раз
Контактная информация:

Re: Голосовое управление по ключевому слову на базе Апельсинки Зеро

Сообщение skysilver » Вт май 08, 2018 12:55 am

lanket писал(а):
Вт май 08, 2018 12:45 am
Есть одна проблемка, почемуто у апельсинки зеро засыпает вафля со временем. причем закономерность не поймана. Кто зает как побороть?
Хреновый у зеро набортный wifi. Очень хреновый. Думаю, не забороть его.
Либо эзернет, либо usb wifi адаптер воткнуть.
За это сообщение автора skysilver поблагодарил:
Samir77 (Сб июл 28, 2018 10:34 pm)
Рейтинг: 1.37%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Аватара пользователя
lanket
Сообщения: 1147
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 252 раза
Поблагодарили: 158 раз

Re: Голосовое управление по ключевому слову на базе Апельсинки Зеро

Сообщение lanket » Вт май 08, 2018 12:57 am

skysilver писал(а):
Вт май 08, 2018 12:55 am
lanket писал(а):
Вт май 08, 2018 12:45 am
Есть одна проблемка, почемуто у апельсинки зеро засыпает вафля со временем. причем закономерность не поймана. Кто зает как побороть?
Хреновый у зеро набортный wifi. Очень хреновый. Думаю, не забороть его.
Либо эзернет, либо usb wifi адаптер воткнуть.
Тогда надо найти альтернативу.
Что то дешовое с линухом на борту.
Либо что бы дешевая альтернатива оказалась не дороже апельсинки с usb wifi.

Качество приема у встроенного wifi согласен не очень.
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Аватара пользователя
Amarok
Сообщения: 1351
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 419 раз
Поблагодарили: 107 раз
Контактная информация:

Re: Голосовое управление по ключевому слову на базе Апельсинки Зеро

Сообщение Amarok » Вт май 08, 2018 10:53 am

А на обычном неттопе жить будет?
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Аватара пользователя
lanket
Сообщения: 1147
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 252 раза
Поблагодарили: 158 раз

Re: Голосовое управление по ключевому слову на базе Апельсинки Зеро

Сообщение lanket » Вт май 08, 2018 11:54 am

Amarok писал(а):А на обычном неттопе жить будет?
Должна, почему нет.
Ей надо только питон.
На линухе должно быть вообще без проблем, на винде не уверен так как не все библиотеки кросплатформные. А использованные в данном решении не проверял на совместимость с виндой.
В опмсании сноубоя написанно что на маке должно работать. Про Винду ни слова.

Отправлено с моего Redmi Note 4 через Tapatalk

За это сообщение автора lanket поблагодарил:
Amarok (Вт май 08, 2018 2:11 pm)
Рейтинг: 1.37%
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Аватара пользователя
lanket
Сообщения: 1147
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 252 раза
Поблагодарили: 158 раз

Re: Голосовое управление по ключевому слову на базе Апельсинки Зеро

Сообщение lanket » Вт май 08, 2018 11:57 am

Описание библиотеки

По идее где должно точно работать :
Currently, Snowboy supports:

all versions of Raspberry Pi (with Raspbian based on Debian Jessie 8.0)
64bit Mac OS X
64bit Ubuntu (12.04 and 14.04)
iOS
Android with ARMv7 CPUs
Pine 64 with Debian Jessie 8.5 (3.10.102)
Intel Edison with Ubilinux (Debian Wheezy 7.8)

Отправлено с моего Redmi Note 4 через Tapatalk

За это сообщение автора lanket поблагодарил:
Samir77 (Вс май 13, 2018 9:47 pm)
Рейтинг: 1.37%
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Аватара пользователя
lanket
Сообщения: 1147
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 252 раза
Поблагодарили: 158 раз

Re: Голосовое управление по ключевому слову на базе Апельсинки Зеро

Сообщение lanket » Вт май 08, 2018 11:58 am

Проверенно на orange pi zero 2h 256mb на базе armbian которой нет в списке.

Отправлено с моего Redmi Note 4 через Tapatalk

Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
eeak1
Сообщения: 44
Зарегистрирован: Чт май 12, 2016 9:13 am
Благодарил (а): 10 раз
Поблагодарили: 10 раз
Контактная информация:

Re: Голосовое управление по ключевому слову на базе Апельсинки Зеро

Сообщение eeak1 » Вт май 08, 2018 12:54 pm

Не пойму, почему ему не нравиться sample rate:
СпойлерПоказать

Код: Выделить всё

ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.allwinner_hdmi.pcm.front.0:CARD=0'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM front
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.allwinner_hdmi.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM surround21
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.allwinner_hdmi.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM surround21
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.allwinner_hdmi.pcm.surround40.0:CARD=0'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM surround40
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.allwinner_hdmi.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM surround41
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.allwinner_hdmi.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM surround50
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.allwinner_hdmi.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM surround51
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.allwinner_hdmi.pcm.surround71.0:CARD=0'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM surround71
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.allwinner_hdmi.pcm.iec958.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM iec958
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.allwinner_hdmi.pcm.iec958.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM spdif
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.allwinner_hdmi.pcm.iec958.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM spdif
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
Expression 'paInvalidSampleRate' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2048
Expression 'PaAlsaStreamComponent_InitialConfigure( &self->capture, inParams, self->primeBuffers, hwParamsCapture, &realSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2719
Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2843
Traceback (most recent call last):
  File "src/snowboy.py", line 82, in <module>
    detector = snowboydecoder.HotwordDetector(models, sensitivity=sensitivity)
  File "/home/eeak/mdmPiTerminal/src/snowboydecoder.py", line 115, in __init__
    stream_callback=audio_callback)
  File "/home/eeak/mdmPiTerminal/env/lib/python3.5/site-packages/pyaudio.py", line 750, in open
    stream = Stream(self, *args, **kwargs)
  File "/home/eeak/mdmPiTerminal/env/lib/python3.5/site-packages/pyaudio.py", line 441, in __init__
    self._stream = pa.open(**arguments)
OSError: [Errno -9997] Invalid sample rate

Orange Pi one -> Armbian 5.38
Алиса живёт на Raspberry Pi 3
https://www.eeak.biz
skysilver
Сообщения: 2391
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 318 раз
Поблагодарили: 1327 раз
Контактная информация:

Re: Голосовое управление по ключевому слову на базе Апельсинки Зеро

Сообщение skysilver » Вт май 08, 2018 1:05 pm

Amarok писал(а):
Вт май 08, 2018 10:53 am
А на обычном неттопе жить будет?
Если ручками самому, то можно. Автоматическим криптом с гита вряд ли получится, он под апельсину заточен.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
devoff
Сообщения: 180
Зарегистрирован: Пт апр 04, 2014 10:17 pm
Благодарил (а): 34 раза
Поблагодарили: 51 раз

Re: Голосовое управление по ключевому слову на базе Апельсинки Зеро

Сообщение devoff » Вт май 08, 2018 1:05 pm

eeak1 писал(а):
Вт май 08, 2018 12:54 pm
Не пойму, почему ему не нравиться sample rate:

Orange Pi one -> Armbian 5.38

А какой микрофон используешь ?
Ответить