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

Модератор: immortal

Аватара пользователя
lanket
Сообщения: 1160
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 256 раз
Поблагодарили: 160 раз

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

Сообщение lanket » Вт дек 01, 2015 1:02 pm

Недорогая реализация голосового управления системой умного дома на базе Majordomo по принципу Ok Google (ОК Гуугл).
Иными словами в помещении стоит коробочка или спрятана которая постоянно слушает комнату и реагируе на ключевое слово Ok Google или Hey Google.
Реагирование на ключевое слово сделано на Google Assistant SDK.
В случае если прозвучало ключевое слово, асситент слушает и распознает дальнейшую команду на Русском языке.
А также оффлайн можно сделать языки Казахский, Хинди, Греческий, Немецкий, Индийский, Французский, Итальянский, Испанский, Мексиканский, Америкосовский на библиотеке Sphinx.

Распознанный текст команды следующий за ключевым словом отправляется в Majordomo для обработки Шаблонами поведения или модулем API.AI

Требуемое железо, на день написания 20.10.2017 стоимость комплекта на Aliexpress 1520 руб.
СпойлерПоказать
Orange Pi Zero 256Мб + Sheild IR, 2 USB, Auidio Out + Корпус 938 руб
2017-09-10_02-35-21.png
2017-09-10_02-35-21.png (264.74 КБ) 10799 просмотров
Блок питания Xiaomi (для надежности) 5В 2А 491 руб Можно и подешевле поставить, непринципиально.

Микрофон 91 руб
Leory-3-USB-Plug-Desktop-Studio-USB-2.jpeg_640x640.jpeg
Leory-3-USB-Plug-Desktop-Studio-USB-2.jpeg_640x640.jpeg (53.48 КБ) 10799 просмотров
Инструкция по настройке ассистента для начала работаты с вашим Majordomo:
СпойлерПоказать
Скачать, ссылки в конце этого поста, и распаковать имидж.

Записать имидж на флэшкарту размером не менее 8Gb с помощью Win32DiskImager в Windows или в линуксе:

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

dd if=/dev/sda bs=8M conv=sync,noerror | gzip -c > /path/to/image.img
Воткнуть флэшкарту, подсоединить к домашней сети по ethernet, подключить USB микрофон или вебкамеру с микрофоном, подать питание.

Подключиться по ssh с помощью putty или любым другим терминалом. IP адрес можно узнать у своего роутера, порт стандартный. Логин: pi Пароль:
D8iSmNw6Z8

Чтобы настроить часовой пояс и если Вы хотите чтобы всё работало по WiFi то настраиваем в этой программе:

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

armbian-config
Изображение


Указываем IP адрес Majordomo:

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

nano /home/pi/env/lib/python3.5/site-packages/googlesamples/assistant/library/hotword.py
меняем 192.168.1.255 на ip адрес majordomo, нажинаем Ctrl+O, соглашаемся, нажинаем Ctrl+X

Перегружаем демона

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

sudo systemctl restart majordomo-assistant.service
пароль D8iSmNw6Z8

И у Вас все работатет.
Дополительная информация если хочется внести изменения:
СпойлерПоказать
Питоновский скрипт ассистента для Majordomo в имидже:

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

/home/pi/env/lib/python3.5/site-packages/googlesamples/assistant/library/hotword.py
Для удобного запуска из консоли сделал 2 bash:
Поболтать с Google assistant

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

bash /home/pi/assistant.sh
Запустить Ассистента Majordomo

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

bash /home/pi/hw.sh
Но сначала надо остановить демона ассистента Majordomo:

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

sudo systemctl stop majordomo-assistant.service
пароль D8iSmNw6Z8
Ну и конечно потом чтобы запустить в качестве сервиса:

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

sudo systemctl start majordomo-assistant.service
пароль D8iSmNw6Z8

Пароли пользователей в системе:
root
JLbYnJwH3L
ruslan
pAWUr48hdK
pi
D8iSmNw6Z8
Полезные ссылки в использовании:
СпойлерПоказать
Тут видно что происходит со стороны гугла но если поменяете на свой ключ api, в противном случае если оставите имидж как есть без замены ключа буду видеть я и смогу услышать аудио записи
Тут можно получить свой ключ и управлять всем этим
А тут, так называемые Actions можно настроить взаимождействие Google Assistan, API.AI, IFFT....
Статьи использованные в реализации: ВАЖНО, обязательно к прочтению перед использование​м. Рекомендации и требования для нормальной работы ассистента:
СпойлерПоказать
Если будете использовать с ключом от api из имиджа у меня будет доступ в Google console к аудиозаписям команд и их текстам. Если вы не хотите чтобы у меня был доступ получите и установите свой ключ.

Инструкция по получению своего ключа и регистрации в асситенте Исполнить инструкцию начиная с "Setting Up Google Assistant on Orange Pi Zero" заканчивая поручением "I then copied that file to Orange Pi Zero board using scp (change [your_client_id] with your actual client ID)" и выполнить:

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

google-oauthlib-tool --client-secrets ~/client_secret_xxxx.apps.googleusercontent.com.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless           
Штатный микрофон в Orange Pi Zero никак не подходит для общения с ассистентом, надо подключать внешний USB микрофон или usb web камеру со встроенным микрофоном.
Рекомендую очень хороший микрофон. С пяти метров можно разговаривать с ассистентом не напрягаясь.
Binmer-USB-futural.jpg_640x640.jpg
Binmer-USB-futural.jpg_640x640.jpg (23.66 КБ) 10799 просмотров
Микрофон из статьи которая воодушивила
Leory-3-USB-Plug-Desktop-Studio-USB-2.jpeg_640x640.jpeg
Leory-3-USB-Plug-Desktop-Studio-USB-2.jpeg_640x640.jpeg (53.48 КБ) 10799 просмотров
Планы и задачи:
СпойлерПоказать
  • Воиспроизведение потокового аудио, IP радио, музыки
  • Воспроизведение звука после реагирования на ключевое слово
  • При первом запуске, проговаривание полученного ip, и спрашивать голосом ip majordomo, перевод WiFi модуля в режим wps если такое возможно
  • Воспроизведение голосовых уведомлений Majordomo
  • Сырая мысль. Так как есть USB разъемы надо их использовать, например воспроизведение/показ музыки, фото или видео с воткнутой флэшки на выбранном терминале/телевизоре...
  • Фантазируем вместе, линукс же, что захотим то и будет работать
Текущая рабочая версия питоновского скрипта, комментарии преветствуются.
СпойлерПоказать

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

#!/usr/bin/env python

# Copyright (C) 2017 Google Inc. И Мажордомо.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


from __future__ import print_function

import argparse
import os.path
import json
# import urllib
import requests

import google.oauth2.credentials
# 1
import speech_recognition as sr

from google.assistant.library import Assistant
from google.assistant.library.event import EventType
from google.assistant.library.file_helpers import existing_file


def process_event(event,assistant):
    """Pretty prints events.

    Prints all events that occur with two spaces between each new
    conversation and a single space between turns of a conversation.

    Args:
        event(event.Event): The current event to process.
    """
    
    if event.type == EventType.ON_CONVERSATION_TURN_STARTED:
        assistant.stop_conversation()
        print()
        r = sr.Recognizer()
        with sr.Microphone() as source:
            print("Скажите что-нибудь")
            audio = r.listen(source)
        try:
            text = r.recognize_google(audio, language="ru-RU") 
            print(text)
            isay = {"qry":text}
            res = requests.get("http://192.168.1.255/command.php", params=isay)
            print(res.text)
        except sr.UnknownValueError:
            print("Робот не расслышал фразу")
        except sr.RequestError as e:
            print("Ошибка сервиса; {0}".format(e))

        print()

    print(event)

    if (event.type == EventType.ON_CONVERSATION_TURN_FINISHED and
            event.args and not event.args['with_follow_on_turn']):
        print()

def main():
    parser = argparse.ArgumentParser(
        formatter_class=argparse.RawTextHelpFormatter)
    parser.add_argument('--credentials', type=existing_file,
                        metavar='OAUTH2_CREDENTIALS_FILE',
                        default=os.path.join(
                            os.path.expanduser('~/.config'),
                            'google-oauthlib-tool',
                            'credentials.json'
                        ),
                        help='Path to store and read OAuth2 credentials')
    args = parser.parse_args()
    with open(args.credentials, 'r') as f:
        credentials = google.oauth2.credentials.Credentials(token=None,
                                                            **json.load(f))

    with Assistant(credentials) as assistant:
        for event in assistant.start():
            process_event(event,assistant)


if __name__ == '__main__':
    main()
 
Скачать образ под Orange Pi Zero 256Mb:
Mail.ru cloud
Google drive
Яндекс диск

UPD: 20.10.2017 Оформление рабочего решения
Последний раз редактировалось lanket Сб окт 21, 2017 12:30 pm, всего редактировалось 33 раза.
За это сообщение автора lanket поблагодарили (всего 4):
directman66 (Пт окт 20, 2017 9:54 am) • devoff (Чт дек 14, 2017 12:28 pm) • alx69 (Чт фев 22, 2018 4:48 pm) • maksimka (Вт апр 17, 2018 3:05 pm)
Рейтинг: 5.26%
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Аватара пользователя
Bagir
Сообщения: 1331
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 163 раза
Поблагодарили: 295 раз

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

Сообщение Bagir » Сб дек 12, 2015 12:32 am

До сих пор это недостающее звено в практически законченной системе. После многих и разных экспериментов, я уверен, что распознавание ключевого слова должно быть локальным. Продолжаем искать и пробовать варианты.
За это сообщение автора Bagir поблагодарил:
lanket (Пт окт 20, 2017 8:18 am)
Рейтинг: 1.32%
Windows XP, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
lanket
Сообщения: 1160
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 256 раз
Поблагодарили: 160 раз

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

Сообщение lanket » Чт ноя 03, 2016 8:32 am

Цитата первого поста идея которого не прижилась.


lanket писал(а):Github :


https://github.com/lanket/VoiceControlSmartHome


Пока только идея, спешу поделиться:
Нашёл на али такую платку.
СпойлерПоказать
Изображение
http://ru.aliexpress.com/item/Voice-Rec ... 04865.html
С ее помощью хочу реализовать "тригер" который реагирует на голосовую команду по аналогии "OK Google" дает сигнал МДМ который слушает далее голосовую команду и .....

UPD: Спрятал под спойлер картинку

Bagir писал(а):До сих пор это недостающее звено в практически законченной системе. После многих и разных экспериментов, я уверен, что распознавание ключевого слова должно быть локальным. Продолжаем искать и пробовать варианты.
Первый заказ этой платки потерялся в кулуарах почты.
Заказал новую, на всякий случай в другом месте
http://s.aliexpress.com/ARzaiqiy

Вчера побаловался.
На расстоянии 2.5 метров приходится повышать голос. Ближе говоришь как обычно распознавание 9 раз из 10. Считаю приемлемым.
Добавил еще одно ключевое слово тоже "Алиса" но с расстоянии 3 метра.
И сделал что на это слово подмигивает 2 раза. В результате до 5 метров распознает с той же погрешностью 9 из 10 без повышения тона. Причем подмигивает то 1 то 2 раза с разных расстояний и громкости голоса сигнализируя что срабатывает то первая команда то вторая.
Но это все если в комнате тихо. Поставил макет около работающего телевизора на расстоянии около 70 см, телевизор работал не очень громко. Пытался даже крича с расстоянии 2х метров , ни одного срабатывания, что и следовало ожидать.
Специально оставил возле телевизора. За 2 часа ни одного ложного срабатывания. Что радует.
Сегодня вечером попробую положить в противоположном углу около 5 метров от телевизора. Посмотрю как будет схватывать ключевые слова при работающем телевизоре. Если в комнате кто-то разговаривает и при этом пытаешься позвать Алису эффект нулевой, что говорит о том что работает при тишине в комнате.
Утром после пробуждения качество срабатывания упала до 50%. Думаю вылечиться записью дополнительной версии ключевого слова утренним голосом. Попробую вечером попробовать качество срабатывания при единственном варианте с расстояния 2,5 метра. Если будет также 90% то можно будет оставить дневную версию и утреннию на каждого члена семьи.
Как я понял эта платка одновременно может реагировать на 7 ключевых слов.
Заключение:
1 ложные срабатывания сведены к минимуму если не к нулю.
2 при записи одного и того же ключевого слова с разных расстояний позволяет повысить качество распознавания с разных расстояний без повышения голоса.
3 в моем случае проживают в доме 3 человека каждому по 2 варианта ключевого слова и думаю будет срабатывать на всех. И еще 1 утренний вариант для себя.
4 вечерний голос явно чужой для этой платки по сравнению с утренним
5 как я вижу реализацию в МД: Эта платка среагировав на ключевое слово, по аналогии 'ок гугл', дает сигнал на одно из прерываний ардуино/ESP/AMS/ещеЧегоТамУВас. Ваш сенсор проснувшись/прервавшись сообщает МД что сработало ключевое слово и МД запустив сценарий по кромкой связи 'динь дон'/'что пожелаете мой господин' начинает слушать в этом помещении голосовую команду и отрабатывает шаблоны поведения.

Таким образом можно вполне приемлемо реализовать аналогию 'ОК гугл'
СпойлерПоказать
Изображение
СпойлерПоказать
Изображение
СпойлерПоказать
Изображение
Добавлено:
Экспериментировал вечером. Утром как описывал выше качество срабатывания упало до 50%. А на сына с супругой вообще не реагировала.
И забыл указать интересный факт.
Было записанно еще 4 команды . 3 из примера включи, включи, мигай. И одна 'Алиса послушай'. В результате путаницы не было замечено к примеру вместо 'мигай' 'включи'. И 'Алиса послушай' почти не срабатывало, около 95 % на первом слоге слова 'послушай' уже подмигивала 1 или 2 раза сигнализируя что сработали слова 'Алиса' записанные с разных расстояний от микрофона.


Отправлено с моего Redmi Note 3 через Tapatalk
Последний раз редактировалось lanket Пт окт 20, 2017 8:20 am, всего редактировалось 3 раза.
За это сообщение автора lanket поблагодарил:
VladPTZ (Вс сен 03, 2017 9:18 am)
Рейтинг: 1.32%
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
ErmolenkoM
Сообщения: 560
Зарегистрирован: Ср сен 04, 2013 10:31 am
Откуда: Самара
Благодарил (а): 99 раз
Поблагодарили: 133 раза
Контактная информация:

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

Сообщение ErmolenkoM » Пт ноя 04, 2016 12:37 pm

lanket писал(а): 5 как я вижу реализацию в МД: Эта платка среагировав на ключевое слово, по аналогии 'ок гугл', дает сигнал на одно из прерываний ардуино/ESP/AMS/ещеЧегоТамУВас. Ваш сенсор проснувшись/прервавшись сообщает МД что сработало ключевое слово и МД запустив сценарий по кромкой связи 'динь дон'/'что пожелаете мой господин' начинает слушать в этом помещении голосовую команду и отрабатывает шаблоны поведения.
Конечно надо пробовать ... но мне кажется будет ООООЧЕНЬ большая задержка, то есть не жизненно...

На мой взгляд, место платки - в туалете. В хорошем смысле. Руки грязные, 7 действий вполне хватит для самого необходимого, и еще там тихо. :-)

На самом деле, сам хотел заказать, но не смог придумать применения. Спасибо за обзор!
За это сообщение автора ErmolenkoM поблагодарил:
lanket (Пт ноя 04, 2016 1:22 pm)
Рейтинг: 1.32%
aka msh555
Cubian на Cubietruck, Connect
Аватара пользователя
lanket
Сообщения: 1160
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 256 раз
Поблагодарили: 160 раз

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

Сообщение lanket » Пт ноя 04, 2016 2:23 pm

ErmolenkoM писал(а): Конечно надо пробовать ... но мне кажется будет ООООЧЕНЬ большая задержка, то есть не жизненно...
Ну платка уже в наличии, поэтому грех не попробовать.

Учитывая Ваш опыт в программировании и знаний сетевых технологий хотелось бы услышать Ваше мнение более подробно.
А в чем вы считаете будет задержка?

Сама платка реагирует быстро.
Как я вижу в моей реализации:
Далее ардуино по прошедшему прерыванию через nrf24 по сети mysensors дергает МД через шлюз 'nrf24 напрямую к малинке' мол сработало ключевое слово.
Далее чтобы я понял что Алиса готова слушать думаю надо дать отзыв в виде динь-дон или голосовое уведомление о готовности слушать команду.
После чего МД слушает в этой комнате команду.
Какое , по Вашему мнению, звено слабое и добавит большую задержку?

Единственное что мне пока непонятно как потом слушать команды. Если конечно эта платка умеет 'гнать' аудиопоток в последовательный порт который есть у нее на борту. Не успел еще разобраться с ее полным списком функционала. Но даже если она это может, что уже хорошо, то как передать это в МД по воздуху?
Сама nrf24 умеет гонять данные по воздуху в случае хорошого приема до 2 мегабит или мегабайт, не помню точно, в секунду. Чего вполне хватит гнать аудио, в идеале запакованное например в mp3. Но что-то не помню такой возможности у сети mysensors.

Кстати если бы mysensors поддерживало пакеты с медиа содержимым или просто пакеты данных, может конечно и поддерживает, то можно было бы еще и передавать голос Алисы в конкретные комнаты для диалогов а может и музыку вещать там где это попросили. Может я что-то упустил и mysensors умеет? Поправьте пожалуйста.

ErmolenkoM, прокоментируйте пожалуйста. Ваше профессиональное мнение поможет выбрать нужный путь. Так как сам я буду дольше разбираться и собирать грабли те, которые бы с Вашей помощью можно было бы избежать.

Кстати если mysensors умеет вещать медиапотоки/медиа пакеты то это шаг к решению мультирума.

Отправлено с моего Redmi Note 3 через Tapatalk
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Ivan
Сообщения: 1474
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 321 раз

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

Сообщение Ivan » Вс ноя 06, 2016 12:23 am

Mysensor - Не умеет. Пакеты 32 байта. Еще и через гейт. 9600 скорость порта.
Учтите что для увеличения дальности там уменьшают скорость. Короче аудио поток не для этого канала. И потом кто будет жать поток. ATMega328 :)

Отправлено с моего SM-G7102 через Tapatalk
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Аватара пользователя
lanket
Сообщения: 1160
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 256 раз
Поблагодарили: 160 раз

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

Сообщение lanket » Вт ноя 08, 2016 9:05 am

Ivan писал(а):Mysensor - Не умеет. Пакеты 32 байта. Еще и через гейт. 9600 скорость порта.
Учтите что для увеличения дальности там уменьшают скорость. Короче аудио поток не для этого канала. И потом кто будет жать поток. ATMega328 :)

Отправлено с моего SM-G7102 через Tapatalk
А если для передачи звука малинке использовать эту наработку https://r.tapatalk.com/shareLink?url=ht ... (Ардуино)
От проводов хочется уйти, длинные провода для звука это наводки и потеря качества. А аналог 'ок гугл' очень хочется.

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

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

Сообщение lanket » Пт ноя 11, 2016 6:54 pm

ErmolenkoM писал(а):
lanket писал(а): 5 как я вижу реализацию в МД: Эта платка среагировав на ключевое слово, по аналогии 'ок гугл', дает сигнал на одно из прерываний ардуино/ESP/AMS/ещеЧегоТамУВас. Ваш сенсор проснувшись/прервавшись сообщает МД что сработало ключевое слово и МД запустив сценарий по кромкой связи 'динь дон'/'что пожелаете мой господин' начинает слушать в этом помещении голосовую команду и отрабатывает шаблоны поведения.
Конечно надо пробовать ... но мне кажется будет ООООЧЕНЬ большая задержка, то есть не жизненно...

На мой взгляд, место платки - в туалете. В хорошем смысле. Руки грязные, 7 действий вполне хватит для самого необходимого, и еще там тихо. :-)

На самом деле, сам хотел заказать, но не смог придумать применения. Спасибо за обзор!
Ivan писал(а):Mysensor - Не умеет. Пакеты 32 байта. Еще и через гейт. 9600 скорость порта.
Учтите что для увеличения дальности там уменьшают скорость. Короче аудио поток не для этого канала. И потом кто будет жать поток. ATMega328 :)

Отправлено с моего SM-G7102 через Tapatalk
Наткнулся на такую статью https://habrahabr.ru/post/236673/

Как вариант решения Оцените пожалуйста.
К ардуино цепляем esp8266 и платку которую я нашел далее AVR, кстати ее тоже упоминали в этой статье.
Когда AVR реагирует на ключевое дергает прерывание ардуино. Так как AVR реагирует достаточно оперативно и качественно можно ардуино сразу слушать команду Алисе.
Ну и собственно ESP нужна для распознавания и отправки распознанного текста голосовой команды следующей за ключевым словом.

Мне кажется это вариант, и тормозить тут некому, и не дорого для реализации окгугл.

Железки у меня все есть для эксперимента, если поможете со скетчем то готов протестировать. Сам просто буду долго разбираться.


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

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

Сообщение lanket » Пн ноя 14, 2016 8:09 am

Не вариант.
Не правильно понял заголовок.
Это реализация голосового управления Ардуино с компьютера.

Но, подумав над словами ErmolenkoM поискал альтернативу.
Нашол 2 варианта:
UDA1380 Совета Стерео MD CD Mp3 Аудио Голосовой Модуль Кодер Декодер Модуль Развития Комплект
http://s.aliexpress.com/AFZZBRfQ
(from AliExpress Android)

1 ШТ. Новый VS1053 MP3-МОДУЛЬ Развитию Бард (бортовой записи funcon)
http://s.aliexpress.com/A3eA3QBJ
(from AliExpress Android)

Последний еще и бывает со слотом под microSD для записи в mp3 напрямую на карту памяти. Что , как я думаю, можно использовать как буфер перед отправкой на распознавание. Ну и дальше либо сама ардуинка отправит на распознавание гуглу/Яндексу либо попросить Алису отправить.

Кстати ардуинка тут в принципе не нужна, wifi всё равно нужен для передачи mp3 гуглу/Яндексу так там и можно реализовать управление модулем mp3 и обработкой прерывания от AVR.

Как такой вариант?
Имеет право на жизнь?

Если мысли на правильном пути и есть желающие реализовать аналогию 'ОК гугл' прошу помощи в написании скетча.

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

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

Сообщение lanket » Чт фев 16, 2017 11:30 am

То что так долго сюда не писал не означает что забил или сдался.
Лично я очень хочу добиться реализации етого функционала.

Пропал по причине то-ли китайцев то-ли почты России . Важный индигридиент имел на Али чересчур долгий срок защиты покупателя , в результате наконец после "распродажы" 11.11 етот срок недавно истек и пришлось перезаказать.

Готов выслушать комментарии по задумке от более продвинутых .

Задумка:

ESP8266 как мозги и коммуникатор для передачи mp3 файлов и get запросов для общения с MD.

Приблуда из первого поста моего топика для реагирования на ключевое слово. Как описывал ранее она проявила себя на твердую 5. И качество работы её подходит как нельзя кстати.

Далее ЕСП получив от приблуды прерывание что прозвучало ключевое слово, ЕСП просит VS1053 записать звуки в данном помещении в MP3 файл.

Отдельно про VS1053. Выбор на самом деле не особо большой, почитав разные форумы где баловались с шилдами по записи/воспроизведения Mp3 остановился на VS1053. Основные проблемы у людей были в основном c хреновым микрофоном и отсутствием жизненно необходимым резистором, речь идёт не о самом чипе а об шилдах для ардуинок. В остальном качество работы на форумах оценивали на 5. Поэтому искал шилд без встроенного микрофона. Заказал в таком исполнении ATmega328P mp3-плеер VS1053 пустой PCB развитию
http://s.aliexpress.com/7R73QN3I
(from AliExpress Android). Почему в таком, потому что можно спрятать в коробку, плюс туда засунули ардуинку в которую та-же можно засунуть логику если ESP8266 покажется мало. Единственное я заказал с уже напаенными деталями, ссылку не могу дать по причине снятия этого товара с продажи на али, но смысл ясен думаю.

Собственно далее можно пикнуть чем нибудь, пьезо или динамиком, для понимания что УД готов слушать команду, записываем голосовую команду в Mp3 файл и отправляем по вафле МД для требуемой реакции на голосовой команде.

БОНУС: имеем возможность записывать что происходит в помещении, проигрывать музыку, радио и голосовые оповещения по принципу мультирума.

Что мне пока не ясно:
Как VS1053 отреагировать на паузу например 2 секунды для обозначения конца голосовой команды.
Как бы пользоваться одним микрофоном и для приблуды и для VS1053

Для эксперементов , а также так как пока не знаю как реализовать один микрофон на два устройства, и для улучшения качества микрофона, уже пришёл с Али активный микрофон Горячие Продажи Гольф Форма CCTV Микрофон audio Пикап Устройства Высокая Чувствительность 12 В DC звук Монитор аудио подслушивающих устройств
http://s.aliexpress.com/fYJzi6NZ
(from AliExpress Android)

Готов выслушать критику/советы.



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