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

Модератор: immortal

directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: Реализация голосового управления по типу ОК Гугл (OK Goo

Сообщение directman66 » Чт окт 19, 2017 1:26 pm

lanket писал(а): Соответственно Majordomo должен уметь принимать вызовы извне, явно не ожидаемые им в данный момент. Получается либо через connect либо хз как там организованно надо изучать. Модуль нужен будет для majordomo.
Вот и я о том, что api.ia в связке с имеющимся плагином может отвечать на поступивший из вне запрос и отвечать на него.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: Реализация голосового управления по типу ОК Гугл (OK Goo

Сообщение directman66 » Чт окт 19, 2017 1:27 pm

а мысли как отобрать звукозапись? впринципе actions теоретически должен иметь к ней доступ.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Реализация голосового управления по типу ОК Гугл (OK Goo

Сообщение lanket » Чт окт 19, 2017 1:32 pm

directman66 писал(а):а мысли как отобрать звукозапись? впринципе actions теоретически должен иметь к ней доступ.
Ответ приходит в массиве. Мы пользуемся 1ой ячейкой массива text. Походу там есть ячейка audio_out в которой, судя по описанию, бинарник.

Отправлено с моего Redmi Note 4 через Tapatalk
Последний раз редактировалось lanket Чт окт 19, 2017 1:35 pm, всего редактировалось 1 раз.
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Реализация голосового управления по типу ОК Гугл (OK Goo

Сообщение lanket » Чт окт 19, 2017 1:34 pm

Блин надо открыть ssh наружу до zero с Google assistant чтобы можно было экспериментировать с работы. А так только вечером дома когда все спать ложатся.

Отправлено с моего Redmi Note 4 через Tapatalk
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: Реализация голосового управления по типу ОК Гугл (OK Goo

Сообщение directman66 » Чт окт 19, 2017 1:53 pm

у меня малина на работе, подключена в wifi с телефона, отличный вариант для экспериментов. Выход в сеть есть, что еещ нужно?
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Реализация голосового управления по типу ОК Гугл (OK Goo

Сообщение lanket » Чт окт 19, 2017 9:34 pm

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

В массиве ответа есть только текст распознанный, думаю потому что гдето надо явно указать возвращать аудио.
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Реализация голосового управления по типу ОК Гугл (OK Goo

Сообщение lanket » Чт окт 19, 2017 10:48 pm

Не отдает он аудио сырье, нет у него такой функции.

А audio_out это аудио ответа помошника

:idea: Гы.
попросить прекратить слушать пользователя:

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

assistant.stop_conversation() 
Осталось записать самому вав и отправить на распознование
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Реализация голосового управления по типу ОК Гугл (OK Goo

Сообщение Gelezako » Чт окт 19, 2017 11:04 pm

lanket писал(а):
directman66 писал(а):Кстати у domoticz вроде как есть нативный плагин гугл асистента. Имхо самый нормальный вариант. Гугл все api предоставляет. Надо чтобы наши умы-программисты к этому делу подключились.
Как я понял механизм такой.

В Google actions создаётся приложение, которое в случае 2го уровня ключевого слова отправляет в api.ai.

Api.ai инициализирует дальнейший диалог в случае его необходимости, уточнении например обязательных параметров.

И результат отправляет, походу дела, в приложение зарегистрированного в экшене. Как например в viber, который уже давно зарегистрирован и есть в списке приложений api.ai

Соответственно Majordomo должен уметь принимать вызовы извне, явно не ожидаемые им в данный момент. Получается либо через connect либо хз как там организованно надо изучать. Модуль нужен будет для majordomo.

Отправлено с моего Redmi Note 4 через Tapatalk
Сам сервис api.ai (который на самом деле уже называется dialogflow.com) поддерживает русский и я его использую каждый день используя модуль МЖД api.ai. Я все команды из шаблонов поведения перевёл в api.ai, он более интеллектуальный и не требует строго заданной команды. Но я не успел протестировать эту схему вместе с Google actions, не совсем понимаю зачем это нужно.

*** Сообщение запрещено. Сообщение похоже на спам. ***
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Реализация голосового управления по типу ОК Гугл (OK Goo

Сообщение lanket » Чт окт 19, 2017 11:40 pm

Собственно event ON_CONVERSATION_TURN_STARTED срабатывает после ключевого слова.
Просим асистента не слушать эфир командой assistant.stop_conversation()

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

    if event.type == EventType.ON_CONVERSATION_TURN_STARTED:
        assistant.stop_conversation()
Но что бы сработала эта команда надо передать объект асситента в подпрограмму которая обрабатывает эвенты:

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

# передавал только event
process_event(event)

# Надо передать и объект ассистента
process_event(event,assistant)


# Принимали только event
def process_event(event):

# Соответственно надо принять и объект ассистента тоже
def process_event(event,assistant):
Далее надо самим записывать эфир и распознать.
Самый простой вариант нашел в инете тут

Но чтобы установить pyaudio надо сначала через apt-get установить portaudio
А чтобы заработало надо еще и через apt-get установить flac

И вуаля все работает!!!!!
СпойлерПоказать

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

Скажите что-нибудь
Ну что по-русски поймёшь

<html>
<head>
   <title></title>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1">
</head>

<body>
   <script type="text/javascript">
      function startSearch(event) {
         event.target.form.submit();
      }
      </script>

   <form action="?" method="get" name="frmSearch">
      <input type="text" name="qry" value="Ну что по-русски поймёшь" speech required x-webkit-speech
         onspeechchange="startSearch" /><input type="submit" name="Submit" value="Say" />
   </form>

<p>Command: <b>Ну что по-русски поймёшь</b></p><h2>2017-10-19</h2>

23:33 <b>Alice</b>: Всё хорошо. Как у тебя дела?<br />23:33 <b>Admin</b>: Ну что по-русски поймёшь<br />23:00 <b>Alice</b>: Руслан зарегистрирован<br />22:00
СпойлерПоказать
2017-10-19_23-34-06.png
2017-10-19_23-34-06.png (4.14 КБ) 4339 просмотров
За это сообщение автора lanket поблагодарили (всего 2):
skysilver (Чт окт 19, 2017 11:51 pm) • Samir77 (Вс окт 21, 2018 8:43 pm)
Рейтинг: 2.33%
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Реализация голосового управления по типу ОК Гугл (OK Goo

Сообщение lanket » Чт окт 19, 2017 11:41 pm

Я сделал это!!!!

заказываю зеро на все комнаты и ящик пива :D
За это сообщение автора lanket поблагодарил:
Samir77 (Вс окт 21, 2018 11:23 pm)
Рейтинг: 1.16%
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Ответить