Голосовое управление на основе SDK ОК Гугл (OK Google)

Модераторы: Bagir, Ivan, Vit, immortal

Аватара пользователя
djprizrak
Сообщения: 60
Зарегистрирован: Пн фев 12, 2018 10:58 am
Благодарил (а): 3 раза
Поблагодарили: 15 раз

Re: Голосовое управление на основе SDK ОК Гугл (OK Google)

Сообщение djprizrak » Вс мар 18, 2018 11:36 pm

А как такое сделать на ПК ubuntu?
Что бы сервер слушал и отвечал, без дополнительных терминалов.
Аватара пользователя
lanket
Сообщения: 1110
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 242 раза
Поблагодарили: 151 раз
Контактная информация:

Re: Голосовое управление на основе SDK ОК Гугл (OK Google)

Сообщение lanket » Чт май 03, 2018 12:29 pm

Благодаря devoff дело сдвинулось с мёртвой точки.
Сейчас стоит вопрос об обратной связи, то есть построение диалогов и корректная обработка таких команд как say, sayto, sayreply...

Вопрос к знатокам. Как добавить в систему новый тип терминала. Чтобы система воспринимала сетевое устройство как полноценный терминал.
То есть чтобы при команде say sayto sayreply на зарегестрированный терминал прилётал текст для tts на терминале.

Отправлено с моего Redmi Note 4 через Tapatalk

Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.


Важно
Аватара пользователя
lanket
Сообщения: 1110
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 242 раза
Поблагодарили: 151 раз
Контактная информация:

Re: Голосовое управление на основе SDK ОК Гугл (OK Google)

Сообщение lanket » Чт май 03, 2018 6:32 pm

Кто нибудь знает отличается ли механизм диалога терминала, имеется ввиду запрос мажора терминалу с уточнение, от команды sayreply?
Или это одно и тоже?

Отправлено с моего Redmi Note 4 через Tapatalk

Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.


Важно
devoff
Сообщения: 168
Зарегистрирован: Пт апр 04, 2014 10:17 pm
Благодарил (а): 31 раз
Поблагодарили: 41 раз

Re: Голосовое управление на основе SDK ОК Гугл (OK Google)

Сообщение devoff » Чт май 03, 2018 7:59 pm

Да, потихоньку потихоньку мы все сделаем.

lanket - тут именно нужно инициализировать режим диалога, даже сейчас на majordroid при ответе нужно опять нажимать кнопку или говорить проснись.

То есть -
Подхожу к терминала и жму кнопку активации запроса голосом -
Алиса - Слушаю (или диалоговое окно)
Я - Включи свет
Алиса (sayReply) - Где включить ?
Я - опять жму кнопку, так как диалог закончен
Алиса - Слушаю
Я - В коридоре
Алиса - Выключаю свет в коридоре
Диалог окончен.

Если мы будем так искать фильмы, включать музыку, палец отвалится.

А должно быть как у Ассистент Дуся, после ответа микрофон опять запускается и ждет команды, нет команды - отбой.

В принципе задумки есть, все это делается в работе терминала, потихоньку пробую.
fandaymon
Сообщения: 569
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 24 раза
Поблагодарили: 246 раз

Re: Голосовое управление на основе SDK ОК Гугл (OK Google)

Сообщение fandaymon » Чт май 03, 2018 8:11 pm

devoff писал(а):
Чт май 03, 2018 7:59 pm
Да, потихоньку потихоньку мы все сделаем.

lanket - тут именно нужно инициализировать режим диалога, даже сейчас на majordroid при ответе нужно опять нажимать кнопку или говорить проснись.

То есть -
Подхожу к терминала и жму кнопку активации запроса голосом -
Алиса - Слушаю (или диалоговое окно)
Я - Включи свет
Алиса (sayReply) - Где включить ?
Я - опять жму кнопку, так как диалог закончен
Алиса - Слушаю
Я - В коридоре
Алиса - Выключаю свет в коридоре
Диалог окончен.

Если мы будем так искать фильмы, включать музыку, палец отвалится.

А должно быть как у Ассистент Дуся, после ответа микрофон опять запускается и ждет команды, нет команды - отбой.

В принципе задумки есть, все это делается в работе терминала, потихоньку пробую.
Делается вход в ssh по ключу и соответственно когда что-то нужно от терминала, на нём запускается программа на питоне для распознавания

ssh pi@ip терминала python3 sr.py

В sr.py

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

import speech_recognition as sr
import urllib.request

r = sr.Recognizer()
with sr.Microphone() as source:
  audio = r.listen(source)
  command=r.recognize_google(audio, language="ru-RU")
  link='http://ip majordomo/command.php?qry=' + urllib.parse.quote_plus(command)
  f=urllib.urlopen(link)
костыль конечно, зато ничего в мажордомо переделывать не надо
Аватара пользователя
lanket
Сообщения: 1110
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 242 раза
Поблагодарили: 151 раз
Контактная информация:

Re: Голосовое управление на основе SDK ОК Гугл (OK Google)

Сообщение lanket » Пт май 04, 2018 9:48 am


devoff писал(а):... даже сейчас на majordroid при ответе нужно опять нажимать кнопку или говорить проснись.

То есть -
Подхожу к терминала и жму кнопку активации запроса голосом -
Алиса - Слушаю (или диалоговое окно)
Я - Включи свет
Алиса (sayReply) - Где включить ?
Я - опять жму кнопку, так как диалог закончен
Алиса - Слушаю
Я - В коридоре
Алиса - Выключаю свет в коридоре
Диалог окончен.

...
Странно, у меня не так.
Специально проверил только что.
Нажимаешь кнопку запускается stt,
Говорю : включи радио
Мажордроид : какое радио хотите послушать?
Запускается stt без нажатий кнопок или ключевых слов:
Говорю: радио energy
Мажордроид : где включить?
Запускается stt без нажатий кнопок или ключевых слов:
Говорю: На телевизоре.
Мажордроид : Приятного прослушивания. И включает радио на телевизоре.

На всякий случай уточняю что диалоги у меня построены на api.ai

Такая же история с Дусей :
Зову Дусю по ключевому слову, она отзывается и слушает команду, распознав делает get мажорику, тот получая от api.ai уточняющий запрос уже даёт запрос, видимо, ask мажордроиду на том терминале где начался диалог с Дуси. И диалог продолжается уже с мажордроидом без участия Дуси, кнопок и ключевых слов.

Что то у тебя не так.

Отправлено с моего Redmi Note 4 через Tapatalk

Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.


Важно
Аватара пользователя
lanket
Сообщения: 1110
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 242 раза
Поблагодарили: 151 раз
Контактная информация:

Re: Голосовое управление на основе SDK ОК Гугл (OK Google)

Сообщение lanket » Пт май 04, 2018 10:00 am


devoff писал(а):... .

А должно быть как у Ассистент Дуся, после ответа микрофон опять запускается и ждет команды, нет команды - отбой.

... .
Не пропусти предыдущий мой пост.

Сейчас без дороботок дроид и Дуся работают именно так как ты и описываешь хотелку.

Теперь понятно почему мы говорили на разных языках до этого. Мы по разному наблюдали процесс работы диалогов.

Думаю что у тебя какие либо фаерволы или настройки сети антивирусы и хз кто ещё может мешать запросу ask: к дроиду. А может и сам мажорик у тебя сломан из за эксперементов.

На форуме топик 'Андроид приложение' Сергей описал команды к мажордроиду и порт сервиса. Думаю сначала надо добиться корректной работы диалогов с родным приложением, чтобы костыли не вставлять туда где они не нужны.

Отправлено с моего Redmi Note 4 через Tapatalk

Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.


Важно
Аватара пользователя
lanket
Сообщения: 1110
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 242 раза
Поблагодарили: 151 раз
Контактная информация:

Re: Голосовое управление на основе SDK ОК Гугл (OK Google)

Сообщение lanket » Пт май 04, 2018 10:02 am

На всякий случай тут описание порта и команды сервиса majordroid

Отправлено с моего Redmi Note 4 через Tapatalk

Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.


Важно
devoff
Сообщения: 168
Зарегистрирован: Пт апр 04, 2014 10:17 pm
Благодарил (а): 31 раз
Поблагодарили: 41 раз

Re: Голосовое управление на основе SDK ОК Гугл (OK Google)

Сообщение devoff » Пт май 04, 2018 10:05 am

fandaymon костылище ))
Учитывая что в питоне есть сокеты и запуск можно сделать через них, а еще нужно стопорить скрипт сноубоя, так как он слушает микрофон и не даст записать в него.
На самом деле уже большая часть реализована, совсем скоро сделаем обновления поста.

Для решения в прошлом посте есть 2-3 варианта, как мне видится -

1. Включать микрофон на терминале после ответа Алисы на 5-10 секунд
2. Ловить на терминале знак вопроса и понимать, что это вопрос, но наверняка будут не так гладко.
3. Пытаться найти решение на основе "Понимание естественного языка" и уже строить диалог на терминале.

fandaymon На данный момент у нас реализовано -

1. Запуск по ключевому слову на SnowBoy
2. Рандомное приветствие голосом и звуковое уведомление о начале и конце распознавания
2. Распознавание голоса через Python Speech Recognition использую гугл либо wit.ai либо api.ai (гугл самый быстрый)
3. Отправка команды в МДМ
4. Ответ на терминал от мдм через sayReply (без доработки в мдм)
5. Озвучка ошибок распознавания

Опционально
1. Запись звуковых моделей для SnowBoy (работает лучше если записать на микрофоне терминала)
2. использование как wi-fi колонки через mpd
3. Установка всех приложений и зависимостей через скрипт

По планам и что хотелось бы -
1. Подключить и проверить светодиоды
2. Разобраться с диалогами

fandaymon,lanket - Спасибо вам за сообщения на форуме, они с подвигли меня на поиски, но я хочу не только для себя, костылить то я умею, а для всех, что бы все могли легко себе поставить и настроить, можно через образ, можно через скрипт и всех стабильно работало.
fandaymon
Сообщения: 569
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 24 раза
Поблагодарили: 246 раз

Re: Голосовое управление на основе SDK ОК Гугл (OK Google)

Сообщение fandaymon » Пт май 04, 2018 2:09 pm

devoff писал(а):
Пт май 04, 2018 10:05 am
fandaymon костылище ))
Учитывая что в питоне есть сокеты и запуск можно сделать через них, а еще нужно стопорить скрипт сноубоя, так как он слушает микрофон и не даст записать в него.
Ну понятно что можно просто мини-сервер написать, который будет делать тоже самое, что делает Majordroid, но костыль написать гораздо быстрее 8-) К тому же через ssh реализуется и вывод rhvoice.. Snowboy не мешает распознаванию, так как микрофон подключен как dsnoop...
devoff писал(а): Для решения в прошлом посте есть 2-3 варианта, как мне видится -

1. Включать микрофон на терминале после ответа Алисы на 5-10 секунд
2. Ловить на терминале знак вопроса и понимать, что это вопрос, но наверняка будут не так гладко.
3. Пытаться найти решение на основе "Понимание естественного языка" и уже строить диалог на терминале.
А можно отлавливать ask, идущий на терминал
devoff писал(а): fandaymon На данный момент у нас реализовано -

1. Запуск по ключевому слову на SnowBoy
2. Рандомное приветствие голосом и звуковое уведомление о начале и конце распознавания
2. Распознавание голоса через Python Speech Recognition использую гугл либо wit.ai либо api.ai (гугл самый быстрый)
3. Отправка команды в МДМ
4. Ответ на терминал от мдм через sayReply (без доработки в мдм)
5. Озвучка ошибок распознавания

Опционально
1. Запись звуковых моделей для SnowBoy (работает лучше если записать на микрофоне терминала)
2. использование как wi-fi колонки через mpd
3. Установка всех приложений и зависимостей через скрипт

По планам и что хотелось бы -
1. Подключить и проверить светодиоды
2. Разобраться с диалогами

fandaymon,lanket - Спасибо вам за сообщения на форуме, они с подвигли меня на поиски, но я хочу не только для себя, костылить то я умею, а для всех, что бы все могли легко себе поставить и настроить, можно через образ, можно через скрипт и всех стабильно работало.
Будут следить за вашим прогрессом. Так как пытаюсь идти примерно тем же путём, только используя готовый шилд respeaker 4 mic и малинку
Ответить