Пишу тут впервые, хотя давно уже интересуюсь проектом.
Сейчас строю дом, пока на зиму дело встало можно попридумывать и помечтать
![Smile :-)](./images/smilies/icon_e_smile.gif)
Всю проводку буду делать само собой под систему MajorDoMo.
Но вот я озадачился мыслью что надо бы чтоб управление голосовое было и ответы звучали именно там где был задан вопрос.
Гугловское распознавание попробовал то что на ab-log.ru, спасибо Андрею.
Но тут 2 нюанса-
- что много всего лишнего будет идти на гугл
- опять же не делиться по комнатам
И вот что придумал.
Сильно не ругайте я не "настоящий" электронщик
![Smile :-)](./images/smilies/icon_e_smile.gif)
Сперва схему приведу
![Изображение](http://simplesolution.su/img/other/mic_schem.jpg)
А логика такая -
микрофоны слушают комнаты, шумы отфильтровывают
ну что то по типу вот этого -
Код: Выделить всё
int sig = 0;
int mic = 0;
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
}
void led() {
sig = analogRead(mic)*50;
if (sig>50) {digitalWrite(2, HIGH);} else {digitalWrite(2, LOW);}//зажигаем светодиот 1
if (sig>250) {digitalWrite(3, HIGH);} else {digitalWrite(3, LOW);}//зажигаем светодиот 2
if (sig>500) {digitalWrite(4, HIGH);} else {digitalWrite(4, LOW);}//зажигаем светодиот 3
if (sig>750) {digitalWrite(5, HIGH);} else {digitalWrite(5, LOW);}//зажигаем светодиот 4
}
void loop() {
led();
}
Если уровень выше какой то отметки то ардуина по сети передает серверу УмногоДома ну скажем свойство ComandRoom обьекта ThisComp. Короче какую то глобальную переменную с номером комнаты где уровень сигнала выше. Оно там пока храниться.
В это время на звуковом сервере -
прога julius фильтрует всю болтовню пока не услышит слово Система(Ну или Алиса, как у Cергея, но я так не могу у меня дочь Алиса)
![Very Happy :-D](./images/smilies/icon_e_biggrin.gif)
Когда оно это услышало она отправляет этот код на скрипт который шлет на гугл, в принципе такое там возможно сделать.
Гугл расшифровывает остальное и возвращает ответ скрипту, который GET-ом передает команду серверу Умного Дома, он команду анализирует и перед выполнением проверяет gg.ComandRoom и если она не 0 то выполняет команду только применительно к той комнате где она звучала. А после обнуляет ее...
Вот как то так
![Very Happy :-D](./images/smilies/icon_e_biggrin.gif)
Ну он так же может на основе этой переменной выдавать речевые сообщения в нужную комнату. Но тут надо или как то придумать как рулить каналами звуковухи, или опять же микроконтроллер какой то приделать.
А также песни включать туда где требуется а не по всему дому.
![Very Happy :D](./images/smilies/icon_e_biggrin.gif)
Ну что скажете - может такое заработать или слишком долго и муторно будет?