Управление Умным Домом с помощью голоса
-
- Сообщения: 20
- Зарегистрирован: 16 окт 2013, 18:13
- Откуда: Иркутск
Re: Управление Умным Домом с помощью голоса
А почему бы не использовать модуль http://dvrobot.ru/shop/i275.Arduino_-_m ... _rechi.htm и USB-UART переходник для стартового слова?
Re: Управление Умным Домом с помощью голоса
На хабре появилась статья, в которой проводят анализ доступных средств распознавания речи.
-
- Сообщения: 104
- Зарегистрирован: 27 мар 2011, 02:15
Re: Управление Умным Домом с помощью голоса
Вот вам микрофон для умного дома
http://www.voicepod.com/home.asp
Демонстрация здесь
https://www.youtube.com/watch?v=uyLtcPIqcUo
http://www.voicepod.com/home.asp
Демонстрация здесь
https://www.youtube.com/watch?v=uyLtcPIqcUo
Re: Управление Умным Домом с помощью голоса
Не забудь приготовить 650 долларов.flighttothemoon писал(а):Вот вам микрофон для умного дома
http://www.voicepod.com/home.asp
Демонстрация здесь
https://www.youtube.com/watch?v=uyLtcPIqcUo
Re: Управление Умным Домом с помощью голоса
Рекомендую обратить внимание на autovoice и tasker под android.
-
- Сообщения: 177
- Зарегистрирован: 07 ноя 2011, 23:04
- Откуда: Россия, Самара
- Контактная информация:
Re: Управление Умным Домом с помощью голоса
Tasker-ом пользуюсь давно , управлять голосом удобно, отклик 2-4 секунды от google(в зависимости от соединения интернет) но нужно заготовить некоторое количество фраз на одно действие, например "Выключить свет на кухне", "Выключить на кухне свет", "Выключи свет на кухне", "Выключи на кухне свет" и т.д. Столько фраз нужно потому что трудно контроллировать себя в произношении, получается самопроизвольно, поэтому постоянно добавляются новые/похожие фразы. А так очень удобно опрашивать голосом например температуру, и для этого можно напрямую обратиться к Megad, распарсить страничку ответа tasker-ом и тут же проинести в ответ и влажность и температуру, и состояние вх/вых и для этого нам не нужна ни база ни web-интерфейс, все самое простое можно делать через tasker.kellas писал(а):Рекомендую обратить внимание на autovoice и tasker под android.
-
- Сообщения: 254
- Зарегистрирован: 15 июл 2013, 23:43
- Откуда: Астрахань
Re: Управление Умным Домом с помощью голоса
Можно использовать тег c атрибутом autoplay HTML5 для воспроизведения ответов созданных RHVoice (mp3) в браузерах Chrome на Android (по умолчанию запустить воспроизведение можно только с участием пользователя)если в chrome://flags включить функцию управления жестами при воспроизведении мультимедийных файлов
И ещё можно заставить Smartphone точно а Планшет не знаю вибрировать так Vibration API Все проверялось на SonyXperiaS
Код: Выделить всё
audio
И ещё можно заставить Smartphone точно а Планшет не знаю вибрировать так
Код: Выделить всё
<script type="text/javascript">
navigator.vibrate([3000, 2000, 1000]);
</script>
-
- Сообщения: 254
- Зарегистрирован: 15 июл 2013, 23:43
- Откуда: Астрахань
Re: Управление Умным Домом с помощью голоса
Интересная штука! Но вот вопрос зачем - ведь например в Androide есть Настройки голосового ввода google где можно скачать словарь и так же распознавать слова в chrome в offline У меня прекрасно распознаёт короткие фразы тип (свет ,светильник, даже - температура в комнате , погода в городе"я так даже подозреваю что и обучается новым фразам так как при сбросе системы тупеет") Я не скажу за iPhone т.к. он мне не нравится(поэтому у меня его нет!!!), вполне возможно и там будет работать если на него chrome поставить! Если кто нибудь сможет проверить код на 16 странице на iPhone то буду благодарен!!Aquarius писал(а):На хабре появилась статья распознавания голоса оффлайн на опенсорсе.
Re: Управление Умным Домом с помощью голоса
Да, про это тоже говорится в статье, но я заметил интересную штуку у этого проекта - "волшебное слово". На сколько я знаю распознавание в гугле работает, но с непрерывным распознаванием какие-то проблемы, а с этим проектом можно запускать распознавание после того, как система услышит "волшебное слово".arbuzmaster писал(а): Интересная штука! Но вот вопрос зачем - ведь например в Androide есть Настройки голосового ввода google где можно скачать словарь и так же распознавать слова в chrome в offline
-
- Сообщения: 254
- Зарегистрирован: 15 июл 2013, 23:43
- Откуда: Астрахань
Re: Управление Умным Домом с помощью голоса
Я тестировал по http распознает непрерывно до образования тишины и через 5-10 сек сбрасывается доступ к микрофону, по https доступ к микрофону не спрашивает, просто начинает заново распознавать (если распознавание поставить в цикл) на Androide также работает и при выключенном экране т.е в фоне. У меня на Sony распознавал приблизительно с 2-3 метров(видимо микрофон хороший)Aquarius писал(а): На сколько я знаю распознавание в гугле работает, но с непрерывным распознаванием какие-то проблемы, а с этим проектом можно запускать распознавание после того, как система услышит "волшебное слово".
-
- Сообщения: 184
- Зарегистрирован: 07 ноя 2011, 08:45
- Откуда: Ступино МО
Re: Управление Умным Домом с помощью голоса
Чуть не соглашусь по поводу гугла, он беглую речь вполне понимает. И "Ok Google" теперь доступен и в браузере на PC, как раз по "волшебному слову".Aquarius писал(а): Да, про это тоже говорится в статье, но я заметил интересную штуку у этого проекта - "волшебное слово". На сколько я знаю распознавание в гугле работает, но с непрерывным распознаванием какие-то проблемы, а с этим проектом можно запускать распознавание после того, как система услышит "волшебное слово".
Что касается сфинкса, то могу сказать, что он всё равно ещё не настолько хорош. Очень часто "путает" кодовые слова с похожими по звучанию.
Лично тестил у себя дома с тремя "Шорохами".
Но и в пользу сфинкса скажу, что как локальная система распознавания - она достойна внимания. Чтобы она работала надо в связке со сфинксом использовать локальную базу и простенькую нейронную сеть, которая избавит от срабатывания в беглой речи и похожих фраз, слов, предложений. (Своего рода создать контекст для объекта)
Лень — двигатель прогресса...
Re: Управление Умным Домом с помощью голоса
Микрофоны были параллельны как-то подключены или были независимыми друг от друга?ArtSamovar писал(а):Лично тестил у себя дома с тремя "Шорохами".
-
- Сообщения: 184
- Зарегистрирован: 07 ноя 2011, 08:45
- Откуда: Ступино МО
Re: Управление Умным Домом с помощью голоса
Они независимы друг от друга.Aquarius писал(а):Микрофоны были параллельны как-то подключены или были независимыми друг от друга?ArtSamovar писал(а):Лично тестил у себя дома с тремя "Шорохами".
Когда параллельны, то это ужасный аналог Кинекта... И довольно тяжело разбирать каналы.
Лень — двигатель прогресса...
Re: Управление Умным Домом с помощью голоса
Сегодня мне удалось собрать материал для отправки звукового файла в гугл и получения текста. Надо сказать, что результатами я доволен. Дальнейшая битва за качество пойдет уже на уровне железа.
Подобного добра полно в Интернете, но весной этого года гугл закрыл доступ к своему API V1, и включил V2. Код немного изменился.
1. Теперь для этого потребуется ключ. Его можно свободно получить, прочитав эту полезную статью http://tuarisa.ru/2014/08/google-speech ... chajnikov/. Я получил себе такой ключик на свой адрес в Gmail.com В примере есть парочка пока что работающих ключиков для пробы. Как получить свой, подробно расписано в статье.
2. Изменился формат для записываемого файла.
Расширение : flac
Channels : 2
Sample Rate : 44100
Precision : 32-bit
Sample Encoding: 32-bit Float
3. На винде столкнулся с проблемой сертификата для curl. Пришлось отключить проверку. В коде эта строчка есть. Так же я нашел и сам сертификат. Работает и с ним тоже. Для чего он нужен curl я пока что не вникал.
Код можно просто скопировать в пустой php файл, и запустить его из браузера например вот так http://localhost/voice_recognition.php Или просто скачать php файл с этим кодом из вложения и положить его в папку с файлами сайта. Также во вложении я добавил свой звуковой файлик с записью голоса для примера.
Обязательно надо поправить пути на свои!!! в строке
$file_to_upload = array('myfile'=>'@'.'D:\Server\www\majordomo\current.flac');
собачку не трогайте, а то покусает )) Я точно не знаю для чего она. Где то вычитал, что отключает проверки и curl будет выполняться дальше. Бред какой то, но без @ действительно не работает.
Строка
// curl_setopt($ch, CURLOPT_CAINFO, 'd:\server\apps\curl-ca-bundle.crt');
закоментирована. Можно указать путь к сертификату, который есть во вложении, и убрать эту строку отключения проверки
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // Отключить ошибку "SSL certificate problem, verify that the CA cert is OK"
Вообщем можно поэкспериментировать. Но пока что работает и так и сяк.
Подобного добра полно в Интернете, но весной этого года гугл закрыл доступ к своему API V1, и включил V2. Код немного изменился.
1. Теперь для этого потребуется ключ. Его можно свободно получить, прочитав эту полезную статью http://tuarisa.ru/2014/08/google-speech ... chajnikov/. Я получил себе такой ключик на свой адрес в Gmail.com В примере есть парочка пока что работающих ключиков для пробы. Как получить свой, подробно расписано в статье.
2. Изменился формат для записываемого файла.
Расширение : flac
Channels : 2
Sample Rate : 44100
Precision : 32-bit
Sample Encoding: 32-bit Float
3. На винде столкнулся с проблемой сертификата для curl. Пришлось отключить проверку. В коде эта строчка есть. Так же я нашел и сам сертификат. Работает и с ним тоже. Для чего он нужен curl я пока что не вникал.
Код: Выделить всё
<?
// Используем cURL для формирования HTTP POST-запроса к Google API
// AIzaSyAqk7vE0vQDR3JItUPgFp6bcPqgJz8h8tI
// AIzaSyBOti4mM-6x9WDnZIjIeyEU21OpBXqWBgw
/* Если возникает ошибка
URL error number:60
URL error:SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Можно либо подсунуть найденный в просторах Интернета давно устаревший сертификат curl-ca-bundle.crt, либо просто отключить проверку
*/
/* Format *.flac
Channels : 2
Sample Rate : 44100
Precision : 32-bit
Sample Encoding: 32-bit Float
*/
$file_to_upload = array('myfile'=>'@'.'D:\Server\www\majordomo\current.flac');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.google.com/speech-api/v2/recognize?output=json&lang=ru-RU&key=AIzaSyAqk7vE0vQDR3JItUPgFp6bcPqgJz8h8tI');
// curl_setopt($ch, CURLOPT_CAINFO, 'd:\server\apps\curl-ca-bundle.crt');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // Отключить ошибку "SSL certificate problem, verify that the CA cert is OK"
//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // Отключить ошибку "SSL: certificate subject name 'hostname.ru' does not match target host name '123.123.123.123'"
curl_setopt($ch, CURLOPT_POST,1);
//curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: audio/l16; rate=16000;')); // для wav файлов, но по слухам ни у кого не работает
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: audio/x-flac; rate=44100;'));
curl_setopt($ch, CURLOPT_POSTFIELDS, $file_to_upload);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result=curl_exec ($ch);
// показать инфу и ошибки
print_r(curl_getinfo($ch));
echo '<br>URL error number:' . curl_errno($ch);
echo '<br>URL error:' . curl_error($ch);
echo '<br>';
curl_close ($ch);
// Покачать весь ответ гугла
echo '<br>result='.$result;
echo "<br>";
// По не выясненным пока причинам, в версии V2 первый ответ всегда пустой. Берем второй.
$result_arr = split("\n", $result); $result = $result_arr[1];
// Google возвращает JSON, поэтому парсим стандартной функцией. Доступна в PHP 5.2
$json_array = json_decode($result, true);
$voice_cmd = $json_array['result'][0]['alternative'][0]['transcript'];
$confidence = $json_array['result'][0]['alternative'][0]['confidence'];
echo('<br>voice_cmd='.$voice_cmd);
echo('<br>confidence='.$confidence);
?>
Обязательно надо поправить пути на свои!!! в строке
$file_to_upload = array('myfile'=>'@'.'D:\Server\www\majordomo\current.flac');
собачку не трогайте, а то покусает )) Я точно не знаю для чего она. Где то вычитал, что отключает проверки и curl будет выполняться дальше. Бред какой то, но без @ действительно не работает.
Строка
// curl_setopt($ch, CURLOPT_CAINFO, 'd:\server\apps\curl-ca-bundle.crt');
закоментирована. Можно указать путь к сертификату, который есть во вложении, и убрать эту строку отключения проверки
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // Отключить ошибку "SSL certificate problem, verify that the CA cert is OK"
Вообщем можно поэкспериментировать. Но пока что работает и так и сяк.
- Вложения
-
- voice_recognition.zip
- php файл с этим кодом
- (2.48 КБ) 472 скачивания
-
- current.zip
- образец файла для распознавания
- (134.88 КБ) 470 скачиваний
-
- curl-ca-bundle.zip
- сертификат для экспериментов
- (222.13 КБ) 447 скачиваний
-
- Сообщения: 184
- Зарегистрирован: 07 ноя 2011, 08:45
- Откуда: Ступино МО
Re: Управление Умным Домом с помощью голоса
Знак собаки "говорит" cURL'у, что это данные для загрузки. Они будут отправлены POST запросом.Bagir писал(а): Где то вычитал, что отключает проверки и curl будет выполняться дальше. Бред какой то, но без @ действительно не работает.
waw'ку надо в один канал и float перегонять в signed-integer, а также 16 бит... тогда будет работать
(соксом: rec --encoding signed-integer --channels 1 --bits 16 --rate 16000 example.wav)
...и на данный момент, доступно всего 50 запросов в день примерно по 10 секунд.
Лень — двигатель прогресса...
-
- Сообщения: 254
- Зарегистрирован: 15 июл 2013, 23:43
- Откуда: Астрахань
Re: Управление Умным Домом с помощью голоса
У меня собственно созрели вопросы - А как вы записываете файл с голосом и отправляете на сервер? В связи с чем есть еще один вопрос - если файл записывается посредством Flash то это не работает на Смартфонах по крайней мере с Android или есть какие то другие варианты записать и передать файл на сервер? У меня это реализовано без передачи аудио файлов на сервер - т.е напрямую c google работает (код Javascript в одном из пед идущих сообщений) Работает везде и на компах и на смартфонах только при наличии Google Chromre браузера (без ключей и сертификатов).
-
- Сообщения: 184
- Зарегистрирован: 07 ноя 2011, 08:45
- Откуда: Ступино МО
Re: Управление Умным Домом с помощью голоса
Что касается Андроида то конструктор приложений.arbuzmaster писал(а):У меня собственно созрели вопросы - А как вы записываете файл с голосом и отправляете на сервер? В связи с чем есть еще один вопрос - если файл записывается посредством Flash то это не работает на Смартфонах по крайней мере с Android или есть какие то другие варианты записать и передать файл на сервер? У меня это реализовано без передачи аудио файлов на сервер - т.е напрямую c google работает (код Javascript в одном из пед идущих сообщений) Работает везде и на компах и на смартфонах только при наличии Google Chromre браузера (без ключей и сертификатов).
Или Tasker.
Что касается браузера, то UserMedia и через сокет на домашний сервер, а дальше что угодно... Хоть в Google, хоть в Sphinx4.
На микрофонах (через adc порт Меги) были попытки, но качество не очень, хоть и работает.
Лень — двигатель прогресса...
-
- Сообщения: 254
- Зарегистрирован: 15 июл 2013, 23:43
- Откуда: Астрахань
Re: Управление Умным Домом с помощью голоса
Если не сложно то можно рабочий пример (node.js установлен)Что касается браузера, то UserMedia и через сокет на домашний сервер, а дальше что угодно... Хоть в Google, хоть в Sphinx4.
На микрофонах (через adc порт Меги) были попытки, но качество не очень, хоть и работает.
-
- Сообщения: 184
- Зарегистрирован: 07 ноя 2011, 08:45
- Откуда: Ступино МО
Re: Управление Умным Домом с помощью голоса
Вот статья на Хабре, почитайте. Думаю многое прояснитсяarbuzmaster писал(а):Если не сложно то можно рабочий пример (node.js установлен)
Лень — двигатель прогресса...