Варианты создания полноценного мультирума
Добавлено: Пт мар 27, 2020 3:19 pm
Приветствую всех!
Хотелось бы написать некоторое обобщение по всем темам, связанным с мультирумом, а конкретно с голосовым управлением из разных комнат. Изложу свои мысли и вопросы по этому поводу, прошу высказать свою критику.
Во-первых, что касается оборудования. Насколько я правильно понимаю (правильно ли?) на данный момент единственным полноценным, без багов и зависаний, является распознавание голоса и управление через расширение хрома 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-терминал в каждую отдельную комнату при сохранении качества распознавания речи.
В целом, наверняка несложно научить одноплатник передавать и принимать звук на/с другого устройства, но вот каким образом научить сервер обрабатывать каждый из речевых потоков отдельно - не понимаю. Следующая задача - научить сервер понимать, что эта команда пришла с такого-то терминала, а вот эта - с другого.
Прошу высказать свое мнение на счет всего этого и поделиться опытом в реализации.
Хотелось бы написать некоторое обобщение по всем темам, связанным с мультирумом, а конкретно с голосовым управлением из разных комнат. Изложу свои мысли и вопросы по этому поводу, прошу высказать свою критику.
Во-первых, что касается оборудования. Насколько я правильно понимаю (правильно ли?) на данный момент единственным полноценным, без багов и зависаний, является распознавание голоса и управление через расширение хрома 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-терминал в каждую отдельную комнату при сохранении качества распознавания речи.
В целом, наверняка несложно научить одноплатник передавать и принимать звук на/с другого устройства, но вот каким образом научить сервер обрабатывать каждый из речевых потоков отдельно - не понимаю. Следующая задача - научить сервер понимать, что эта команда пришла с такого-то терминала, а вот эта - с другого.
Прошу высказать свое мнение на счет всего этого и поделиться опытом в реализации.