Простое голосовое управление системой
Модератор: immortal
Re: Простое голосовое управление системой
Насчёт голосового поиска гугла - где-то мелькала информация о том, что их голосовой engine доступен (или будет в ближайшее время) в stand-alone виде внутри какого-то устройства, что по многим причинам гораздо интереснее, чем работа с удалённым сервером.sergejey писал(а):Обсуждение страницы Простое голосовое управление системой
В моей прошлой квартире за распознавание голосовых команд отвечал движок STC VoiceCom Demo - в нём можно было нарисовать дерево команд и обучить нескольких дикторов. После чего распознанные команды выводились в заголовке окна, откуда я и тянул их в свой софт. Так у нас появилась Свити
А ещё для голосового управления хорошо уметь фильтровать "базар", т.е. буквально
В доме у меня для этого предусмотрено по 4 потолочных микрофона в каждой комнате - с них можно обрабатывать сигнал как с фазированной антенной решетки, т.е. достаточно эффективно фильтровать и отслеживать отдельные источники. Но за ворохом более важных задач эта "математика" пока ещё ждёт своей реализации.
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Простое голосовое управление системой
Очень интересная идея. Как я сам до такого не додумался? Видать есть ещё над чем поработать...В доме у меня для этого предусмотрено по 4 потолочных микрофона в каждой комнате
Вот это да... Впечатлило. С такими людьми Умный Дом против нас долго не продержится .- с них можно обрабатывать сигнал как с фазированной антенной решетки, т.е. достаточно эффективно фильтровать и отслеживать отдельные источники.
-
- Сообщения: 86
- Зарегистрирован: Вт авг 28, 2012 5:36 pm
- Откуда: Kiev, Ukraine
- Благодарил (а): 4 раза
- Поблагодарили: 14 раз
Re: Простое голосовое управление системой
А можно ли реализовать распознавание речи на уровне ПК, без привлечения мобильных устройств.
По примеру http://habrahabr.ru/post/117234/#comment_3812334
Как думаете, возможно?
По примеру http://habrahabr.ru/post/117234/#comment_3812334
Как думаете, возможно?
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Простое голосовое управление системой
Без мобильных устройств можно сделать просто запустив хром с включенным голосовым вводом и зайдя на страницу http://ваш_сервер/command.php -- там в строке ввода нажать на микрофон и говорить команду. Но это, конечно, не очень удобно -- лучше было бы если б программа сама распознавала речь и отправляла её на гугл. На ab-log.ru в форуме есть большая дискуссия на эту тему -- там они подключают всякие фильтры и скрипты, но по-моему надёжного способа так и нет -- то распознаёт плохо, то качество записи хромает.Vip писал(а):А можно ли реализовать распознавание речи на уровне ПК, без привлечения мобильных устройств.
По примеру http://habrahabr.ru/post/117234/#comment_3812334
Как думаете, возможно?
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Простое голосовое управление системой
К сожалению, не встречал. Под iOs я слышал, что делают в домашней сети специальный proxy-сервер для Siri, чтобы можно было перехватывать для неё команды и обрабатывать собственными средствами. Вот страница проекта https://github.com/plamoni/SiriProxyVadymkyr писал(а):а есть аналог этой программы для IOS?
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 2
- Зарегистрирован: Вт окт 27, 2015 8:54 am
- Благодарил (а): 0
- Поблагодарили: 0
Re: Простое голосовое управление системой
Кто нибудь пробывал laitis.ru возможно использовать этот софт?
Re: Простое голосовое управление системой
Нет там никакой кнопки "нажать на микрофон" и нажимать не на что. Там только одна строка ввода sayVip писал(а):Без мобильных устройств можно сделать просто запустив хром с включенным голосовым вводом и зайдя на страницу http://ваш_сервер/command.php -- там в строке ввода нажать на микрофон и говорить команду. Но это, конечно, не очень удобно -- лучше было бы если б программа сама распознавала речь и отправляла её на гугл. На ab-log.ru в форуме есть большая дискуссия на эту тему -- там они подключают всякие фильтры и скрипты, но по-моему надёжного способа так и нет -- то распознаёт плохо, то качество записи хромает.
Та к все-таки эта тема как-то продвинулась?
- Divan
- Сообщения: 859
- Зарегистрирован: Пн июл 08, 2019 5:04 pm
- Благодарил (а): 117 раз
- Поблагодарили: 280 раз
Re: Простое голосовое управление системой
Автор Smoke выложил еще один вариант управления голосом. Вариант интересный, но нет нормальной инструкции, что и как делать. Работает в браузере Хром и через https (нужен SSL сертификат). Плюсы: бесплатно, без ключей, быстро, не ограниченно в запросах, неограниченное время распознавания.
Так выглядит кнопка на сцене
Выкладываю пошаговую инструкцию
Внимание!!! Если у вас уже установлен SSL сертификат и есть доступ по https, то пропускаем этот пункт
Создаем SSL сертификат (без этого не будет работать), пример создания SSL сертификата на Ubuntu
1) Ставим certbot
Привязываем Font Awesome
1) Скачиваем Font Awesome
2) Распаковываем и переименовываем в font-awesome
3) Закидываем всю папку font-awesome например сюда www/var/templates_alt/font-awesome/css/font-awesome.min.css";
Действия в сцене
В раздел Дополнительный код CSS вставляем код для импорта font-awesome
В раздел Код вставляем весь код.
Пояснение по коду
Здесь можно изменить ключевое слово (выделил где), но я убрал ключевое слово, нажали на кнопку и можно говорить.
Здесь меняем цвет фона, тут устанавливается цвет фона при активации микрофона
Здесь указываем имя скрипта (сценария). Сценарии создаете с любым именем и указываете в коде имя. У меня например так, где VoiceTest это имя сценария.
Если в коде заменить адрес куда отправлять распознанный текст на:
то сообщения будут прилетать в системную консоль (на главной странице).
Про ошибку AJAX
Когда вы все сделали и нажали на кнопку, а после всплыла такая ошибка, то не пугайтесь, это нормально, такая ошибка всплывает, если сценарий пустой, нужно добавить в код echo 'ok'; чтобы сценарии возвращал ответ.
Пример сценария который будет записывать голос в свойство и в консоле можно увидеть текст
Чтобы увидеть текст, нужно нажать на консоль
Создали к примеру сценарии VoiceTest
Вставляем код на примере блокли, где я создал переменную voice
или код в PHP, кому как удобно
Так выглядит кнопка на сцене
СпойлерПоказать
Выкладываю пошаговую инструкцию
Внимание!!! Если у вас уже установлен SSL сертификат и есть доступ по https, то пропускаем этот пункт
Создаем SSL сертификат (без этого не будет работать), пример создания SSL сертификата на Ubuntu
1) Ставим certbot
СпойлерПоказать
1) sudo apt-get update
2) sudo apt-get install software-properties-common
3) sudo add-apt-repository universe - если запустить эту команду, то получим ошибку add-apt-repository universe error: universe invalid, в таком
случае запускаем эту команду sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"
4) sudo add-apt-repository ppa:certbot/certbot
5) sudo apt-get update
2) sudo apt-get install software-properties-common
3) sudo add-apt-repository universe - если запустить эту команду, то получим ошибку add-apt-repository universe error: universe invalid, в таком
случае запускаем эту команду sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"
4) sudo add-apt-repository ppa:certbot/certbot
5) sudo apt-get update
Привязываем Font Awesome
1) Скачиваем Font Awesome
2) Распаковываем и переименовываем в font-awesome
3) Закидываем всю папку font-awesome например сюда www/var/templates_alt/font-awesome/css/font-awesome.min.css";
СпойлерПоказать
Действия в сцене
В раздел Дополнительный код CSS вставляем код для импорта font-awesome
Код: Выделить всё
@import "/templates_alt/font-awesome/css/font-awesome.min.css";
СпойлерПоказать
СпойлерПоказать
Код: Выделить всё
<script>
// Создаем распознаватель
var recognizer = new webkitSpeechRecognition();
// Ставим опцию, чтобы распознавание началось ещё до того, как пользователь закончит говорить
recognizer.interimResults = false;
// Какой язык будем распознавать?
recognizer.lang = 'ru-Ru';
recognizer.onstart = function () {
//После старта
$('#voiceBtn').attr('style', 'position: fixed;z-index: 99;padding: 15px;border-radius: 50px;bottom: 0px;right: 0px;margin-right: 10px;background:lime;margin-bottom: 10px;animation: pulse;animation-iteration-count: infinite;animation-duration: 1s;');
$('#voiceBtn').attr('class', 'bg-gradient-06-anim-fast');
};
recognizer.onerror = function (event) {
//Если ошибка
};
// Используем колбек для обработки результатов
recognizer.onresult = function (event) {
var result = event.results[event.resultIndex];
if (result.isFinal) {
voiceStr = result[0].transcript.toLowerCase();
//Вот тут ключевое слово маленькими буквами, если ключего слова нет - будет слать все подряд на сервер
keyWords = voiceStr.indexOf('');
if(keyWords != '-1') {
//Часть запросов будем отрабатывать прямо из JS
if(voiceStr.substring(keyWords).toLowerCase() == 'алиса включи музыку') {
startPlayMusic();
} else {
//AJAX на сервер
$.getJSON({
url: '/objects/?script=VoiceTest&voice='+encodeURI(voiceStr.substring(keyWords)),
success: function(responce) {
//Возврат от скрипта MJDM
},
error: function(responce) {
console.log('Ошибка отправки AJAX');
}
});
}
}
}
};
recognizer.onend = function () {
//По окончании
$('#voiceBtn').attr('style', 'position: fixed;z-index: 99;padding: 15px;border-radius: 50px;bottom: 0px;right: 0px;margin-right: 10px;background: purple; margin-bottom: 10px;');
$('#voiceBtn').removeAttr('class');
//Если сюда вписать recognizer.start(); будет слушать эфир вечно
};
</script>
<div id="voiceBtn" style="position: fixed;z-index: 99;padding: 15px;border-radius: 50px;bottom: 0px;right: 0px;margin-right: 10px;background: purple;margin-bottom: 10px;" onclick="recognizer.start();">
<i class="fa fa-microphone" style="font-size: 3rem;color: white;"></i>
</div>
Здесь можно изменить ключевое слово (выделил где), но я убрал ключевое слово, нажали на кнопку и можно говорить.
СпойлерПоказать
СпойлерПоказать
Код: Выделить всё
url: '/objects/?script=VoiceTest&voice='+encodeURI(voiceStr.substring(keyWords)),
СпойлерПоказать
Код: Выделить всё
url: '/command.php?qry='+encodeURI(voiceStr.substring(keyWords)),
СпойлерПоказать
Про ошибку AJAX
Когда вы все сделали и нажали на кнопку, а после всплыла такая ошибка, то не пугайтесь, это нормально, такая ошибка всплывает, если сценарий пустой, нужно добавить в код echo 'ok'; чтобы сценарии возвращал ответ.
СпойлерПоказать
СпойлерПоказать
СпойлерПоказать
СпойлерПоказать
СпойлерПоказать
Код: Выделить всё
$voice = urldecode($_GET['voice']);
debMes($voice);
sg('VoiceMD.text',urldecode($_GET['voice']));
echo 'ok';
- Рейтинг: 5.81%
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB