Управление Умным Домом с помощью голоса

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
arbuzmaster
Сообщения: 230
Зарегистрирован: 15 июл 2013, 23:43
Откуда: Астрахань

Re: Управление Умным Домом с помощью голоса

Сообщение arbuzmaster » 18 окт 2014, 16:06

Может кому пригодится отправка wav файла на сервер ( для Recorderjs-master) то нужно код в recorder.js немного поменять на такой

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

worker.onmessage = function(e){
                var wavBlob =e.data;
		uploadAudio(wavBlob);
      var blob = e.data;
      currCallback(blob);
    }
function uploadAudio(wavData){
		var reader = new FileReader();
		reader.onload = function(event){
			var fd = new FormData();
			var mp3Name = encodeURIComponent('audio_recording_.wav');
			console.log("mp3name = " + mp3Name);
			fd.append('fname', mp3Name);
			fd.append('data', event.target.result);
			$.ajax({
				type: 'POST',
				url: 'upload.php',
				data: fd,
				processData: false,
				contentType: false
			}).done(function(data) {
				//console.log(data);
				log.innerHTML += "\n" + data;
			});
		};      
		reader.readAsDataURL(wavData);
	} 
и подключить jquery-1.11.0.min.js(взятый из Recordmp3js) в index.html и скопировать upload.php из Recordmp3js все взято с github!

Андрей
Сообщения: 77
Зарегистрирован: 04 июн 2013, 16:37

Re: Управление Умным Домом с помощью голоса

Сообщение Андрей » 18 окт 2014, 23:53

Случайно наткнулся в Нете вот на такой прикол - наш советский парень сделал управление шохой (ваз 2106) на манер фильма Такси, т.е. заводит и глушит мотор голосом. А также управляет магнитолой (включение и выключение звука) и открытием багажника. Прикол то приколом, но голос то реально распознается!!! Вот ссылка на Ютубе - http://www.youtube.com/watch?v=x8XzUHNXHPM

arbuzmaster
Сообщения: 230
Зарегистрирован: 15 июл 2013, 23:43
Откуда: Астрахань

Re: Управление Умным Домом с помощью голоса

Сообщение arbuzmaster » 22 окт 2014, 20:00

Может кто подсказать как автоматизировать скрипт отправки wav файлов (т.е. как в google) сказал - отправилось. На данный момент есть скрипт который определяет уровень звука на входе в микрофон - как его автоматизировать чтобы при высоком уровне - запись включалась а при низком - останавливалась ? (например как в sox)(скрипт записи и отправки wav тоже имеется)

ArtSamovar
Сообщения: 184
Зарегистрирован: 07 ноя 2011, 08:45
Откуда: Ступино МО

Re: Управление Умным Домом с помощью голоса

Сообщение ArtSamovar » 22 окт 2014, 20:03

arbuzmaster писал(а):Может кто подсказать как автоматизировать скрипт отправки wav файлов (т.е. как в google) сказал - отправилось. На данный момент есть скрипт который определяет уровень звука на входе в микрофон - как его автоматизировать чтобы при высоком уровне - запись включалась а при низком - останавливалась ? (например как в sox)
Из браузера или с компьютера?
Как у вас вообще звук на сервер попадает?
Лень — двигатель прогресса...

arbuzmaster
Сообщения: 230
Зарегистрирован: 15 июл 2013, 23:43
Откуда: Астрахань

Re: Управление Умным Домом с помощью голоса

Сообщение arbuzmaster » 22 окт 2014, 20:43

Из Браузера сейчас дела обстоят так - нажимаю кнопку запись звук записывается по нажатию на кнопку стоп файл отправляется на сервер!

ArtSamovar
Сообщения: 184
Зарегистрирован: 07 ноя 2011, 08:45
Откуда: Ступино МО

Re: Управление Умным Домом с помощью голоса

Сообщение ArtSamovar » 22 окт 2014, 21:03

arbuzmaster писал(а):Из Браузера сейчас дела обстоят так - нажимаю кнопку запись звук записывается по нажатию на кнопку стоп файл отправляется на сервер!
По обрезке тишины в браузере и обработки звука всё через Web Audio API.
Там и примеры есть использования.
Пример кода не приведу, так как у меня не через браузер запись.

З.Ы. Но тогда зачем вы звук себе на сервер отправляете, не проще сразу с googl'ом работать и забирать ответ?
репозиторий с примером
Нажимать на кнопочку можно с помощью jQuery...
Лень — двигатель прогресса...

arbuzmaster
Сообщения: 230
Зарегистрирован: 15 июл 2013, 23:43
Откуда: Астрахань

Re: Управление Умным Домом с помощью голоса

Сообщение arbuzmaster » 22 окт 2014, 21:07

ArtSamovar писал(а):
Что касается браузера, то UserMedia и через сокет на домашний сервер, а дальше что угодно... Хоть в Google, хоть в Sphinx4.
На микрофонах (через adc порт Меги) были попытки, но качество не очень, хоть и работает.
Если кому интересно про сокеты звук и node.js можно почитать тут на английском http://blog.groupbuddies.com/posts/39-t ... extensions в конце есть ссылка на проект

ArtSamovar
Сообщения: 184
Зарегистрирован: 07 ноя 2011, 08:45
Откуда: Ступино МО

Re: Управление Умным Домом с помощью голоса

Сообщение ArtSamovar » 22 окт 2014, 21:11

arbuzmaster писал(а): http://blog.groupbuddies.com/posts/39-t ... extensions в конце есть ссылка на проект
В создании recorder'а
context.createJavaScriptNode(bufferSize, 1, 1);
в Chrome надо заменить createJavaScriptNode на createScriptProcessor.

Кстати, про обрезку по тишине, посмотрите тут
Лень — двигатель прогресса...

arbuzmaster
Сообщения: 230
Зарегистрирован: 15 июл 2013, 23:43
Откуда: Астрахань

Re: Управление Умным Домом с помощью голоса

Сообщение arbuzmaster » 22 окт 2014, 21:12

ArtSamovar писал(а):
arbuzmaster писал(а):Из Браузера сейчас дела обстоят так - нажимаю кнопку запись звук записывается по нажатию на кнопку стоп файл отправляется на сервер!
По обрезке тишины в браузере и обработки звука всё через Web Audio API.
Там и примеры есть использования.
Пример кода не приведу, так как у меня не через браузер запись.

З.Ы. Но тогда зачем вы звук себе на сервер отправляете, не проще сразу с googl'ом работать и забирать ответ?
репозиторий с примером
Нажимать на кнопочку можно с помощью jQuery...
C googlo - м у мня нет проблем - работает на прямую без записи файлов через webkitSpeechRecognition. Хочу попробовать со Сфинксом на будующее!

ArtSamovar
Сообщения: 184
Зарегистрирован: 07 ноя 2011, 08:45
Откуда: Ступино МО

Re: Управление Умным Домом с помощью голоса

Сообщение ArtSamovar » 22 окт 2014, 21:19

arbuzmaster писал(а):Хочу попробовать со Сфинксом на будующее!
Тогда вам сюда.

У меня в демке постоянно путал Shanghai c San Francisco (http://syl22-00.github.io/pocketsphinx. ... -demo.html)
Лень — двигатель прогресса...

arbuzmaster
Сообщения: 230
Зарегистрирован: 15 июл 2013, 23:43
Откуда: Астрахань

Re: Управление Умным Домом с помощью голоса

Сообщение arbuzmaster » 22 окт 2014, 21:49

ArtSamovar писал(а):
arbuzmaster писал(а):Хочу попробовать со Сфинксом на будующее!
Тогда вам сюда.

У меня в демке постоянно путал Shanghai c San Francisco (http://syl22-00.github.io/pocketsphinx. ... -demo.html)
Was ist Das ?

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

Loading page
Initializing Web Audio and speech recognizer, waiting for approval to access your microphone
Recognizer ready
Audio recorder ready
Error from recorder: silent
Все разобрался! Микрофон на минимуме!1

arbuzmaster
Сообщения: 230
Зарегистрирован: 15 июл 2013, 23:43
Откуда: Астрахань

Re: Управление Умным Домом с помощью голоса

Сообщение arbuzmaster » 01 ноя 2014, 23:18

Есть еще вот такая штука http://we.easyelectronics.ru/part/vse-o ... vrbot.html
Пример здесь http://www.youtube.com/watch?v=v0WZ-nAu4mI

Андрей
Сообщения: 77
Зарегистрирован: 04 июн 2013, 16:37

Re: Управление Умным Домом с помощью голоса

Сообщение Андрей » 16 ноя 2014, 23:03

Как в Debiane можно программно (желательно из PHP) реализовать управление звуком по каналам:
1. Вывести только в левый канал
2. Вывести только в правый канал
3. Вывести в оба канала

Нужно для вывода речи из rhvoice.

Что то не удалось мне найти в Интернете решение. Заранее, спасибо за ответ.

ArtSamovar
Сообщения: 184
Зарегистрирован: 07 ноя 2011, 08:45
Откуда: Ступино МО

Re: Управление Умным Домом с помощью голоса

Сообщение ArtSamovar » 16 ноя 2014, 23:32

Андрей писал(а):Как в Debiane можно программно (желательно из PHP) реализовать управление звуком по каналам:
1. Вывести только в левый канал
2. Вывести только в правый канал
3. Вывести в оба канала

Нужно для вывода речи из rhvoice.

Что то не удалось мне найти в Интернете решение. Заранее, спасибо за ответ.
RHVoice пишет в моно. Для "разруливания" надо копать вышестоящую систему. PulseAudio, Alsa, OSS... И так далее. Или, после "RHVoice -W Elena -o sound.wav" конвертировать sox'ом в "многоканальный" файл и после "play ..... -c {1|2}" (про ключик -c в $ play -h можно почитать).


В php exec, shell_exec, etc...
Лень — двигатель прогресса...

Андрей
Сообщения: 77
Зарегистрирован: 04 июн 2013, 16:37

Re: Управление Умным Домом с помощью голоса

Сообщение Андрей » 17 ноя 2014, 01:28

ArtSamovar, подскажите пожалуйста, можно ли запустить RHVoice в режиме сервера, так же как запускается фестиваль:

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

festival --server &
. Из PHP к фестивалю обращаюсь так, как написано у Андрея http://www.ab-log.ru/page.php?ID=46&cs=1 :

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

<?    
    $host="localhost";
    $my_text="Температура воздуха на улице 5 градусов";
    $h=fsockopen($host,1314);
    fwrite($h,"(SayText \"$my_text\")\n");
    sleep(3);
    fwrite($h,"(quit)");
    fclose($h);
?>
RHVoice из терминала работает, из PHP по команде exec, аналогично вашему коду в http://umkv.ru/tekst-v-rech-ili-golosov ... ry_120.htm

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

exec(‘echo ‘.$text.’ | RHVoice -p 0.8 -d /usr/share/rhvoice/Aleksandr > ‘.$domofon_path );
exec(‘play -v ‘.$vol.’ ‘.$domofon_path);
ничего не происходит.
Как у Вас это работает? Спасибо за ответ.

ArtSamovar
Сообщения: 184
Зарегистрирован: 07 ноя 2011, 08:45
Откуда: Ступино МО

Re: Управление Умным Домом с помощью голоса

Сообщение ArtSamovar » 17 ноя 2014, 11:48

Андрей писал(а):ArtSamovar, подскажите пожалуйста, можно ли запустить RHVoice в режиме сервера, так же как запускается фестиваль:

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

festival --server &
. Из PHP к фестивалю обращаюсь так, как написано у Андрея http://www.ab-log.ru/page.php?ID=46&cs=1 :

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

<?    
    $host="localhost";
    $my_text="Температура воздуха на улице 5 градусов";
    $h=fsockopen($host,1314);
    fwrite($h,"(SayText \"$my_text\")\n");
    sleep(3);
    fwrite($h,"(quit)");
    fclose($h);
?>
RHVoice из терминала работает, из PHP по команде exec, аналогично вашему коду в http://umkv.ru/tekst-v-rech-ili-golosov ... ry_120.htm

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

exec(‘echo ‘.$text.’ | RHVoice -p 0.8 -d /usr/share/rhvoice/Aleksandr > ‘.$domofon_path );
exec(‘play -v ‘.$vol.’ ‘.$domofon_path);
ничего не происходит.
Как у Вас это работает? Спасибо за ответ.
https://github.com/Olga-Yakovleva/RHVoi ... Russian%29 репозиторий Ольги.
RHVoice -h. Справка самой программы.

RHVoice умеет работать в режиме демона. RHVoice --daemon-dir={path/to/directory} --daemon
создаёт сокет в указанной директории. (Я этого не делал - подсказать увы, не смогу)
Но по сути, тоже самое что и с фестивалем...


P.S. http://umkv.ru/tekst-v-rech-ili-golosov ... ry_120.htm не мой блог :)
Лень — двигатель прогресса...

arbuzmaster
Сообщения: 230
Зарегистрирован: 15 июл 2013, 23:43
Откуда: Астрахань

Re: Управление Умным Домом с помощью голоса

Сообщение arbuzmaster » 19 ноя 2014, 18:03

RHVoice из терминала работает, из PHP по команде exec, аналогично вашему коду в http://umkv.ru/tekst-v-rech-ili-golosov ... ry_120.htm
КОД: ВЫДЕЛИТЬ ВСЁ
exec(‘echo ‘.$text.’ | RHVoice -p 0.8 -d /usr/share/rhvoice/Aleksandr > ‘.$domofon_path );
exec(‘play -v ‘.$vol.’ ‘.$domofon_path);
ничего не происходит.
Походу надо к audio добавить пользователя www-data иначе в логах apacha при запуске exec play - alsa или pulseaudio пишет что Директория не наша или доступ запрещен.

flighttothemoon
Сообщения: 101
Зарегистрирован: 27 мар 2011, 02:15

Re: Управление Умным Домом с помощью голоса

Сообщение flighttothemoon » 28 сен 2015, 12:28

А как насчет использования Amazon Echo в умном доме?

abc
Сообщения: 42
Зарегистрирован: 19 апр 2018, 14:39

Re: Управление Умным Домом с помощью голоса

Сообщение abc » 14 май 2018, 13:28

Подниму тему. Прошло более трех лет, интересно, у кого какие наработки? Кто-нибудь доделал что планировал?

У меня вопрос по железной части. Завтра буду в большом городе, хотел прикупить кабель и микрофон Шорох. На сайте написано до 300 метров линия, дальность слышимости до 18 м в зависимости от модели. Нормально ли будет если протяну на 16 метров экранированный? Или при такой длине наводок не избежать? Кабель пойдет под штукатуркой.

Andrey_B
Администратор
Сообщения: 3849
Зарегистрирован: 18 мар 2011, 12:06

Re: Управление Умным Домом с помощью голоса

Сообщение Andrey_B » 14 май 2018, 14:48

abc писал(а):
14 май 2018, 13:28
Прошло более трех лет, интересно, у кого какие наработки? Кто-нибудь доделал что планировал?
Лично уже довольно длительное время использую Siri и HAP-NodeJS.
Телефон и планшет практически всегда под рукой. Не нужны никакие микрофоны. Настройка на сервере HAP-NodeJS очень простая. Ставится на любой мини-ПК. Эту программу можно согласовать с любым другим серверным ПО.
Возможно давать команды не по четкому шаблону. Например, Siri прекрасно понимает если сказать так: "включи свет в зале", "зажги освещение в зале", "включить в зале лампочки" и т.д. Правда, пока не понимает "вруби" или "выруби". Но это пока. Также можно сказать "Выключи весь свет" и Siri выключит все подключенные к HAP выходы. Качество распознавания очень хорошее. Преимущество в том, что без сомнения возможности этой функции по части интерпретации команд пользователя будут развиваться и дальше, но для этого ничего не нужно будет менять в серверном ПО.
Не уверен, что такое решение подойдет всем. Но как одна из альтернатив, не требующих глубоких познаний в области распознавания речи и программирования, вполне.

Ответить