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

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

Модератор: immortal

Аватара пользователя
dance12r
Сообщения: 105
Зарегистрирован: Пн июл 17, 2017 12:14 pm
Откуда: Киев
Благодарил (а): 10 раз
Поблагодарили: 47 раз

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

Сообщение dance12r » Сб июн 30, 2018 10:01 pm

dance12r писал(а):
Пт июн 29, 2018 11:35 am
1. Раскомментировать секцию

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

<!-- LINKED_OBJECT (varchar) -->
        <div class="form-group">
         <label for="linked_object" class="col-lg-3 control-label"[#if ERR_LINKED_OBJECT#] style="color:red;font-weight:bold"[#endif#]>
         <#LANG_LINKED_OBJECT#>:
         </label>
         <div class="col-lg-4"><input type="text" class="form-control" name="linked_object" value="[#LINKED_OBJECT#]" id="linked_object"></div>
        </div>
        <!-- LINKED_PROPERTY (varchar) -->
        <div class="form-group">
         <label for="linked_property" class="col-lg-3 control-label"[#if ERR_LINKED_PROPERTY#] style="color:red;font-weight:bold"[#endif#]>
         <#LANG_LINKED_PROPERTY#>:
         </label>
         <div class="col-lg-4"><input type="text" class="form-control" name="linked_property" value="[#LINKED_PROPERTY#]" id="linked_property"></div>
        </div>
        [#module name="linkedobject" object_field="linked_object" property_field="linked_property" method_field="linked_method"#]
так же к желаемому резульатату не привело
Raspberry Pi 3 + Broadlink + MySensors + MDM VoiceAssistant
artemon25
Сообщения: 112
Зарегистрирован: Чт авг 25, 2016 10:33 pm
Благодарил (а): 15 раз
Поблагодарили: 6 раз

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

Сообщение artemon25 » Вс июл 01, 2018 4:27 pm

и снова здрасьте появились новые инструкции по установке класс. но было бы отлично если бы было ещё и подробное видео. так что просьба в силе. заранее спасибо
Аватара пользователя
dance12r
Сообщения: 105
Зарегистрирован: Пн июл 17, 2017 12:14 pm
Откуда: Киев
Благодарил (а): 10 раз
Поблагодарили: 47 раз

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

Сообщение dance12r » Вс июл 01, 2018 5:23 pm

выяснил почему не запускался Апельсин после заливки settings.ini через модуль. нужно сделать следующее:
в файле snowboy.py закомментировать несколько переменных

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

        config.read(path)
        #ID = config.get("Settings", "ID") #номер терминала
        #TITLE = config.get("Settings", "TITLE") #навазние терминала
        #NAME = config.get("Settings", "NAME") #Системное имя
        #LINKEDROOM = config.get("Settings", "LINKEDROOM") #Расположение
        #IP = config.get("Settings", "IP")
после этого Апельсин без проблем принимает конфиг заливаемый моделем.
ЗЫ. переменная ID уже закомментирована. Комментируем только: TITLE, NAME, LINKEDROOM, IP. Все остально оставить без изменений.

ЗЫЫ. по не понятным причинам, у авторов модуля и скриптов (lanket и devoff) получились некоторые разногласия в коде, и то, что закоментировано в коде модуля и по задумке автора не должно быть использовано, ожидает увидеть в конфиге скрипт сноубоя.
Попробую переписать инструкцию, там все действия будут проводится только с апельсином. Постараюсь на досуге снять видео, но обещать пока не могу.

TODO: по непонятной причине посе перезагрузки Апельсинки обратится сразу к Алисе не выходит. Приходится перезапускать :

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

sudo service mdmpiterminal stop
sudo service mdmpiterminalsayreply stop
sudo service mdmpiterminalsayreply start
sudo service mdmpiterminal start
За это сообщение автора dance12r поблагодарил:
eeak1 (Вт июл 03, 2018 10:38 am)
Рейтинг: 1.16%
Raspberry Pi 3 + Broadlink + MySensors + MDM VoiceAssistant
Аватара пользователя
dance12r
Сообщения: 105
Зарегистрирован: Пн июл 17, 2017 12:14 pm
Откуда: Киев
Благодарил (а): 10 раз
Поблагодарили: 47 раз

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

Сообщение dance12r » Пн июл 02, 2018 10:16 am

Дано:
* Апельсин, плата расширения, копус - как у автора
* PS3eye - в качестве USB микрофона
* Armbian

Установка:
Armbian:
Установка системы:
* Скачиваем архив
* Распаковываем в удобное для нас место на компьютере
* Вставляем microSD в cardReader
* Форматируем флешку (SDFormatter)
* Записываем образ на карту (Etcher)
Запуск:
* Подключаем Ethernet кабель
* Подключаем Камеру (или микрофон)
* Подключаем колонки
* Подключаем питание
* Узнаем у роутера какой IP адрес был выдан Апельсину
Первоначальная настройка:
(для подключения по SSH я использую PuTTY)
* Запускаем термин, вводим IP адрес Апельсина
* Login/Password: root/1234
* Меняем пароль Root пользователя
* Добавляем своего пользователя
* Перезагружаем Апельсин для завершения настройки
* Заходим под новосозданым пользователем
* Ждем завершения обновления системы (htop - не должно быть процессов dpkg, python-upgrade... или как то так)

Установка скриптов от devoff:
* Заходим на Апельсин под новосозданым пользователем
* Устанавливаем скрипты:

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

cd ~/
git clone https://github.com/devoff/mdmPiTerminal
cd mdmPiTerminal
chmod +x scripts/mdm-pi-installer.sh
./scripts/mdm-pi-installer.sh
(Процесс занимает какое то время, можно сходить на перекур))
* Включаем скрипты в автозагрузку:

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

chmod +x systemd/service-installer.sh
sudo ./systemd/service-installer.sh

sudo systemctl enable mdmpiterminal.service
sudo systemctl enable mdmpiterminalsayreply.service
* Узнаем номер hw нашей камеры (микрофона)

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

arecord -l
(с большой долей вероятности, если был использовани архив а системой из этой статьи, нашим искомым устройствой будет hw:2,0)
* Правим asound.conf

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

sudo nano /etc/asound.conf
Мой файлПоказать
pcm.!default {
type asym
playback.pcm "playback"
capture.pcm "capture"
}

pcm.playback {
type plug
slave.pcm "dmixed"
}

pcm.capture {
type plug
slave.pcm "array"
}

pcm.dmixed {
type dmix
slave.pcm "hw:0,0"
ipc_key 555555
}

pcm.array {
type dsnoop
slave {
pcm "hw:2,0" #моя камера (узнать можно через aplay -l)
channels 4 #у PS3eye массив из 4 микрофонов (еще не выяснил влияет ли это как то)
}
ipc_key 666666
}
* Правим snowboy.py (комментируем TITLE, NAME, LINKEDROOM, IP. Все остально оставить без изменений.)

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

        #TITLE = config.get("Settings", "TITLE") #навазние терминала
        #NAME = config.get("Settings", "NAME") #Системное имя
        #LINKEDROOM = config.get("Settings", "LINKEDROOM") #Расположение
        #IP = config.get("Settings", "IP")
За это сообщение автора dance12r поблагодарили (всего 8):
eeak1 (Вт июл 03, 2018 10:38 am) • skysilver (Вт июл 03, 2018 10:43 am) • kurs (Ср июл 04, 2018 3:23 pm) • yura_s80 (Пт авг 03, 2018 11:37 am) • Gelezako (Ср авг 22, 2018 8:15 pm) • TrDA (Ср сен 05, 2018 5:05 pm) • djeremy (Ср дек 05, 2018 8:38 pm) • buba911 (Пт июн 14, 2019 4:40 pm)
Рейтинг: 9.3%
Raspberry Pi 3 + Broadlink + MySensors + MDM VoiceAssistant
Аватара пользователя
dance12r
Сообщения: 105
Зарегистрирован: Пн июл 17, 2017 12:14 pm
Откуда: Киев
Благодарил (а): 10 раз
Поблагодарили: 47 раз

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

Сообщение dance12r » Пн июл 02, 2018 10:16 am

Продолжение:

Установка и настройка модуля (lanket)
* Устанавливаем модуль через маркет
Создаем новый терминал:
* Настройки - Терминалы, указываем имя и IP адресс терминала, включаем прогрывания медиаконтента
КартинкаПоказать
Изображение
Добавляем Апельсин в модуль:
* Устройства - MDM VoiceAssistant
* Указываем только-что созданый термина, выбираем Сервисы синтеза и разпозвнования речи, указываем ключь API если нужно...
КартинкаПоказать
Изображение
* Жмем сохранить

Ключевое слово:
Подготовка:
* Записываем свой вариант ключевого слова на сайте https://snowboy.kitt.ai/
* Скачиваем готовый файл в формате .pmdl
* Перекидываем на Апельсин скачаный файлик
Установка:
* переименовываем его (мой файл назывался alice.pmdl)

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

mv alice.pmdl model1.pmdl
* перезаписываем существующий файл

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

mv model1.pmdl mdmPiTerminal/src/resources
Запуск:
* Запускаем сервисы

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

sudo service mdmpiterminalsayreply start
sudo service mdmpiterminal start
* Пробуем пообщатся с Алисой

NOTE:
Запись ключевого слова и компиляцию его через модуль мне завести так и не удалось.
За это сообщение автора dance12r поблагодарили (всего 3):
eeak1 (Вт июл 03, 2018 10:38 am) • kurs (Ср июл 04, 2018 4:55 pm) • TrDA (Ср сен 05, 2018 5:06 pm)
Рейтинг: 3.49%
Raspberry Pi 3 + Broadlink + MySensors + MDM VoiceAssistant
Аватара пользователя
dance12r
Сообщения: 105
Зарегистрирован: Пн июл 17, 2017 12:14 pm
Откуда: Киев
Благодарил (а): 10 раз
Поблагодарили: 47 раз

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

Сообщение dance12r » Вт июл 03, 2018 10:09 pm

Сделал образ для Orange Pi Zero
Установка:
* Скачиваем архив
* Достаем из архива файл mdmTerminal.img
* Форматируем флешку размером 4 Гб и выше утилитой SDFormatter
* Записываем образ утилитой Etcher
* Поключаем микрофон, колонку, Ethernet кабель и питание

Особенности:
* Если колонки и интернет кабель подключены то после запуска Апельсин скажет какой IP адрес ему был выдан (можно смело подключатся к нему через PuTTY)
* В образу установлены скрипты с небольшими моими правками - можете сразу создавать Терминал (IP адрес вам уже сказали) в МЖД и добавлять устройство в Модуле MDMVoiceAssistant
* * После добавления устройствамодуль передаст настройки Апельсину, для применения их можно просто перезапустить Апельсин
* Username and Password

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

Login: pi
Password: qwertyui
sudo: qwertyui

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

Login: root
Password: qwertyui
Просьба проверить:
* Записать ключевое слово через модуль; на данном этапе можно записать только 1 ключевое слово

TODO:
* Продолжаю работу над уменьшением размера
* Про видео помню...
За это сообщение автора dance12r поблагодарили (всего 8):
skysilver (Вт июл 03, 2018 10:52 pm) • eeak1 (Вт июл 03, 2018 11:14 pm) • odinvolk (Ср июл 04, 2018 1:48 am) • rom77 (Ср июл 04, 2018 7:01 am) • ahelper (Ср июл 04, 2018 2:14 pm) • kurs (Ср июл 04, 2018 3:54 pm) • Stazo (Ср июл 04, 2018 10:51 pm) • Александр282 (Ср ноя 21, 2018 4:11 am)
Рейтинг: 9.3%
Raspberry Pi 3 + Broadlink + MySensors + MDM VoiceAssistant
kurs
Сообщения: 43
Зарегистрирован: Пн сен 05, 2016 10:42 am
Благодарил (а): 31 раз
Поблагодарили: 3 раза

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

Сообщение kurs » Ср июл 04, 2018 4:54 pm

а можно образ Win32DiskImager записать ?
Аватара пользователя
dance12r
Сообщения: 105
Зарегистрирован: Пн июл 17, 2017 12:14 pm
Откуда: Киев
Благодарил (а): 10 раз
Поблагодарили: 47 раз

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

Сообщение dance12r » Ср июл 04, 2018 4:57 pm

Думаю да, я не пробовал. Использую Etcher в виду того что он кроссплатформенный.
Raspberry Pi 3 + Broadlink + MySensors + MDM VoiceAssistant
kurs
Сообщения: 43
Зарегистрирован: Пн сен 05, 2016 10:42 am
Благодарил (а): 31 раз
Поблагодарили: 3 раза

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

Сообщение kurs » Ср июл 04, 2018 4:59 pm

ок отпишусь

большой респект за работу (давно ждал образа )

для теста можно использовать встроенный микрофон и выход на наушники ?
Аватара пользователя
dance12r
Сообщения: 105
Зарегистрирован: Пн июл 17, 2017 12:14 pm
Откуда: Киев
Благодарил (а): 10 раз
Поблагодарили: 47 раз

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

Сообщение dance12r » Ср июл 04, 2018 5:13 pm

По умолчанию asound.conf настроен на вывод звука через jack 3.5 и запись звука с USB микрофона. Не было интереса запускать распознавание на встроеном микрофоне, ИМХО он ооочень плохо распознает.

вот тут можно прочитать
viewtopic.php?f=5&t=5460&start=10#p79905
Raspberry Pi 3 + Broadlink + MySensors + MDM VoiceAssistant
Ответить