Страница 1 из 2

Варианты создания полноценного мультирума

Добавлено: Пт мар 27, 2020 3:19 pm
ilyasor
Приветствую всех!

Хотелось бы написать некоторое обобщение по всем темам, связанным с мультирумом, а конкретно с голосовым управлением из разных комнат. Изложу свои мысли и вопросы по этому поводу, прошу высказать свою критику.

Во-первых, что касается оборудования. Насколько я правильно понимаю (правильно ли?) на данный момент единственным полноценным, без багов и зависаний, является распознавание голоса и управление через расширение хрома ChromeGateMJD. Лично я перепробовал несколько представленных на форуме других способов, лучшего не нашел.

Во-вторых, в качестве микрофона лучше всего работает камера PS3 Eye (опять же, верно ли?). Пробовал различные микрофоны, высокого качества распознавания в рамках всей комнаты получено не было. На расстоянии 1-2 метра работают многие, чуть дальше- все. С PS3 Eye можно даже из соседней комнаты сказать погромче, все сработает. Массивы микрофонов не пробовал, напишите, пожалуйста, дают ли они сопоставимый результат.

Если брать первые два суждения за истину, можно прийти к третьему - для распознавания голоса требуется компьютер, работающий с полноценной Windows. Я пробовал использовать расширение ChromeGateMJD на Chromium, установленном на Raspberry Pi 3 B+, в целом распознавание работало, но стабильной работы я так и не смог получить, примерно через 1-2 суток происходило зависание, приходилось перезагружать устройство, что, на мой взгляд, недопустимо, если умный дом используется не как игрушка, а как полноценный помощник. Если у кого-то есть иной опыт использования ChromeGateMJD на одноплатниках, расскажите.

Исходя из этого, представляется возможным 3 модели функционирования мультирума:
1. В каждой комнате стоит свой мини-компьютер, являющийся отдельным терминалом, на каждом отдельно происходит распознавание голоса, команды отсылаются на сервер. Вариант наиболее надежный, но наиболее дорогостоящий. Каждый такой компьютер будет стоить в районе 150$.
2. Один компьютер стоит в центре квартиры, на нем стоит ПО и железо, позволяющие подключать несколько PS3 Eye и колонок, провода протянуты в разные комнаты. Вариант вроде бы замечательный, но если в случае со звуком, передавать его можно на любые расстояния в рамках квартиры, сигнал по usb до дальних комнат никак не достанет. К тому же, придется думать либо над совмещением звуковых потоков с разных микрофонов (тут проблем несколько: если в одной комнате кто-то разговаривает, из другой команда может не распознаться, а также становится невозможным для сервера понимать, из какой комнаты отправлена команда), либо каждый поток нужно слушать и распознавать отдельно (компьютер справится, но как это решить программно не очень понимаю). Для воспроизведения звука вариантов куча, для распознавания хороших я не нашел.
3. Вариант который кажется оптимальным - микрофоны (PS3 Eye) и колонки стоят в своих комнатах, подключены к одноплатнику. Одноплатник в свою очередь занимается только тем, что передает и принимает данные с сервера (или с отдельного сервера для распознавания голоса), а уже на сервере происходит анализ и распознавание со всех потоков. Плюсы - дешевле, чем ставить полноценный windows-терминал в каждую отдельную комнату при сохранении качества распознавания речи.

В целом, наверняка несложно научить одноплатник передавать и принимать звук на/с другого устройства, но вот каким образом научить сервер обрабатывать каждый из речевых потоков отдельно - не понимаю. Следующая задача - научить сервер понимать, что эта команда пришла с такого-то терминала, а вот эта - с другого.

Прошу высказать свое мнение на счет всего этого и поделиться опытом в реализации.

Re: Варианты создания полноценного мультирума

Добавлено: Пт мар 27, 2020 3:32 pm
tarasfrompir
Все это есть и почти решено -
В идеале бы на сервере распознавать голос - поскольку обучать каждый терминал запаришся...
Распознавание нужно лепить на нейронках - Тензорфолов в помощь - если разберешся - отпиши...
Я так и не докопался до решения - хотя наметки на вер. 1.1 есть и неплохие...

Re: Варианты создания полноценного мультирума

Добавлено: Пт мар 27, 2020 4:07 pm
Chainik
Не знаю насколько в тему, но вот вариант чувствительного микрофона на основе связки "малинка + активный микрофон" (после подзаголовка "Про микрофон").
https://www.ab-log.ru/smart-house/aster ... orphone-v2

Re: Варианты создания полноценного мультирума

Добавлено: Пт мар 27, 2020 4:35 pm
skysilver
А готовые умные колонки от Яндекса и Гугла не вариант?

Re: Варианты создания полноценного мультирума

Добавлено: Пт мар 27, 2020 4:45 pm
skysilver
ilyasor писал(а):
Пт мар 27, 2020 3:19 pm
Следующая задача - научить сервер понимать, что эта команда пришла с такого-то терминала, а вот эта - с другого.
Можно глянуть voxcommando https://voxcommando.com/mediawiki/index ... icrophones М.б. он умеет с несколькими микрофонами работать.

Re: Варианты создания полноценного мультирума

Добавлено: Пт мар 27, 2020 4:49 pm
fandaymon
Малинка + что-то с массивом микрофонов (PS EYE или Respeaker) + mdmTerminal2 прекрасно работают уже почти год. Без багов и глюков.
Стоимость одного терминала примерно 25 (малинка) + 10 (sd карточка) + 12 (respeaker) + 5 (блок питания) + 7 (usb-колонки)
Помимо своей основной обязанности малинка в комнате собирает данные с датчиков, малинка на кухне выполняет функцию видеорамки + медиа-комбайна
Полноценное офф-лайн распознавание можно пытаться делать на deepspeech используя 4 малинку дождавшись нормально натренированную сетку для русского или натренировать самому, но это дело на любителя - меня пока устраивать то, как распознаёт гугл. Спускаться на уровень tensorflow и пытаться самому придумывать архитектуру сети это дело такое... Всё равно всё упрётся в необходимость большого количества данных и вычислительных мощностей для обучения

Re: Варианты создания полноценного мультирума

Добавлено: Пт мар 27, 2020 7:14 pm
tarasfrompir
fandaymon писал(а):
Пт мар 27, 2020 4:49 pm
Малинка + что-то с массивом микрофонов (PS EYE или Respeaker) + mdmTerminal2 прекрасно работают уже почти год. Без багов и глюков.
Стоимость одного терминала примерно 25 (малинка) + 10 (sd карточка) + 12 (respeaker) + 5 (блок питания) + 7 (usb-колонки)
Помимо своей основной обязанности малинка в комнате собирает данные с датчиков, малинка на кухне выполняет функцию видеорамки + медиа-комбайна
Полноценное офф-лайн распознавание можно пытаться делать на deepspeech используя 4 малинку дождавшись нормально натренированную сетку для русского или натренировать самому, но это дело на любителя - меня пока устраивать то, как распознаёт гугл. Спускаться на уровень tensorflow и пытаться самому придумывать архитектуру сети это дело такое... Всё равно всё упрётся в необходимость большого количества данных и вычислительных мощностей для обучения
Простите за нескромный вопрос - вот ДИПСПИИЧ - в нем написано - A TensorFlow implementation of Baidu's DeepSpeech architecture. Куда ж мы будем опускатся ?
Основной источник познаний - https://github.com/mozilla/DeepSpeech

Re: Варианты создания полноценного мультирума

Добавлено: Пт мар 27, 2020 7:18 pm
tarasfrompir
fandaymon писал(а):
Пт мар 27, 2020 4:49 pm
Малинка + что-то с массивом микрофонов (PS EYE или Respeaker) + mdmTerminal2 прекрасно работают уже почти год. Без багов и глюков.
Стоимость одного терминала примерно 25 (малинка) + 10 (sd карточка) + 12 (respeaker) + 5 (блок питания) + 7 (usb-колонки)
Помимо своей основной обязанности малинка в комнате собирает данные с датчиков, малинка на кухне выполняет функцию видеорамки + медиа-комбайна
Полноценное офф-лайн распознавание можно пытаться делать на deepspeech используя 4 малинку дождавшись нормально натренированную сетку для русского или натренировать самому, но это дело на любителя - меня пока устраивать то, как распознаёт гугл. Спускаться на уровень tensorflow и пытаться самому придумывать архитектуру сети это дело такое... Всё равно всё упрётся в необходимость большого количества данных и вычислительных мощностей для обучения
Простите за нескромный вопрос - вот ДИПСПИИЧ - в нем написано - A TensorFlow implementation of Baidu's DeepSpeech architecture. Куда ж мы будем опускатся ?
Основной источник познаний - https://github.com/mozilla/DeepSpeech

ПС
Проблема в том что дипспич можно собрать только на линуксе... А я ВИндоузятниК - потому и не выжу смысла использовать - разрекламированный продукт - поскольку сам Тензорфолоу можно использовать пофиг где - а вот и простые примеры
https://missinglink.ai/guides/tensorflo ... tutorials/

Re: Варианты создания полноценного мультирума

Добавлено: Пт мар 27, 2020 8:35 pm
fandaymon
tarasfrompir писал(а):
Пт мар 27, 2020 7:14 pm
fandaymon писал(а):
Пт мар 27, 2020 4:49 pm
Малинка + что-то с массивом микрофонов (PS EYE или Respeaker) + mdmTerminal2 прекрасно работают уже почти год. Без багов и глюков.
Стоимость одного терминала примерно 25 (малинка) + 10 (sd карточка) + 12 (respeaker) + 5 (блок питания) + 7 (usb-колонки)
Помимо своей основной обязанности малинка в комнате собирает данные с датчиков, малинка на кухне выполняет функцию видеорамки + медиа-комбайна
Полноценное офф-лайн распознавание можно пытаться делать на deepspeech используя 4 малинку дождавшись нормально натренированную сетку для русского или натренировать самому, но это дело на любителя - меня пока устраивать то, как распознаёт гугл. Спускаться на уровень tensorflow и пытаться самому придумывать архитектуру сети это дело такое... Всё равно всё упрётся в необходимость большого количества данных и вычислительных мощностей для обучения
Простите за нескромный вопрос - вот ДИПСПИИЧ - в нем написано - A TensorFlow implementation of Baidu's DeepSpeech architecture. Куда ж мы будем опускатся ?
Основной источник познаний - https://github.com/mozilla/DeepSpeech
В дипспиче архитектура сетки уже задана - это очень нетривиально придумать самому что-то лучше, чем исследователи больших контор. Если упрощенно, tensorflow это кубики, из которых можно что-то построить, а deepspeech это выстроенная из этих кубиков конструкция

Re: Варианты создания полноценного мультирума

Добавлено: Пт мар 27, 2020 8:37 pm
fandaymon
tarasfrompir писал(а):
Пт мар 27, 2020 7:18 pm

Проблема в том что дипспич можно собрать только на линуксе... А я ВИндоузятниК - потому и не выжу смысла использовать - разрекламированный продукт - поскольку сам Тензорфолоу можно использовать пофиг где - а вот и простые примеры
https://missinglink.ai/guides/tensorflo ... tutorials/
Чего это?!
pip3 install deepspeech-tflite работает и на 10ке