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

Модератор: immortal

Аватара пользователя
dance12r
Сообщения: 105
Зарегистрирован: Пн июл 17, 2017 12:14 pm
Откуда: Киев
Благодарил (а): 10 раз
Поблагодарили: 47 раз

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

Сообщение dance12r » Чт фев 22, 2018 12:52 pm

fandaymon писал(а):кстати тот конфиг что был в моей последней ссылке работать не будет - чувствительность микрофона повышается, но микрофон открывается монопольно сноубоем, поэтому гугл не может микрофон открыть, надо будет копать в сторону объединие конфигов - из одного взять что тип устройства dsnoop, а из другого всю цепочку с Gain
я так подозреваю, что в этом месте где то допускаю ошибку. Не будет работать конфиг тот который в архиве? или тот который отдельно по ps3eye?
Raspberry Pi 3 + Broadlink + MySensors + MDM VoiceAssistant
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

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

Сообщение fandaymon » Чт фев 22, 2018 1:46 pm

У меня пока работает та конфигурация, которая ставится скриптом из директории audio-drivers/USB-MIC-JACK. В такой конфигурации alsa позволяет нескольким приложениям обращаться к микрофону (по факту тут так и получается - потому что когда микрофон открывается распозновалкой от гугла, сноубой продолжает микрофон слушать)

Конфигурация, которая приведена отдельно хорошо работает только со сноубоем - так как в ней 4 микрофона объдиняются в стерео, то становится возможным регулировать уровень микрофона в алсе и говорить ключевое слово тише. Но зато когда код доходит до открытия микрофона гуглом, то программа вылетает с ошибкой.

Поэтому надо для начала запустить audio-drivers/USB-MIC-JACK/scripts/usb-mic-onboard-jack.sh
source env/bin/activate
Попробовать записать звук rec temp.wav
Воспроизвести temp.wav - нормально ли записалось
После этого запустить python snowboy.py
Сказать в микрофон ключевую фразу
Alex77
Сообщения: 215
Зарегистрирован: Вс мар 05, 2017 2:18 pm
Благодарил (а): 21 раз
Поблагодарили: 6 раз

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

Сообщение Alex77 » Вс фев 25, 2018 11:12 pm

Добрый вечер, скажите из шапки темы работает вариант?
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

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

Сообщение fandaymon » Вс фев 25, 2018 11:59 pm

Alex77 писал(а):Добрый вечер, скажите из шапки темы работает вариант?
Должен работать. Если устраивает ключевая фраза - OK Google.
Misko
Сообщения: 36
Зарегистрирован: Вс янв 14, 2018 5:57 pm
Благодарил (а): 17 раз
Поблагодарили: 0

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

Сообщение Misko » Пн фев 26, 2018 8:32 am

dance12r писал(а):Микрофон - ps3eye
Snowboy запускается и говорит, что теперь я могу обратится по ключевому слову, а дальше фсё. Я с ней и оасково, и с нажимом, и шепотом... и ничего не происходит. Как понять вообще микрофон слушает кто-то? Или может в конфигах чего не хватает?
ПС. На сайте сноубоя свой файлик получил и его в конфигах прописал.

Если дальше все, то убавте в алсе микрофон, у мня стоит 29, на 30 уже не запускается.
Вот скрипт питона который показывает распознался голос или нет, но он для моей конфинурации мы не городили Virtualen и т.д
и он для второго питона.

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

# - *- coding: utf- 8 - *-
import speech_recognition as sr

r = sr.Recognizer()

with sr.Microphone() as source:
    print("Скажите что-нибудь")
    audio = r.listen(source)

try:
     print(r.recognize_google(audio, language="ru-RU"))
     print("Что-то услышал")
except sr.UnknownValueError:
    print("Робот не расслышал фразу")
except sr.RequestError as e:
    print("Ошибка сервиса; {0}".format(e))
Misko
Сообщения: 36
Зарегистрирован: Вс янв 14, 2018 5:57 pm
Благодарил (а): 17 раз
Поблагодарили: 0

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

Сообщение Misko » Пн фев 26, 2018 10:25 am

fandaymon писал(а):У меня пока работает та конфигурация, которая ставится скриптом из директории audio-drivers/USB-MIC-JACK. В такой конфигурации alsa позволяет нескольким приложениям обращаться к микрофону (по факту тут так и получается - потому что когда микрофон открывается распозновалкой от гугла, сноубой продолжает микрофон слушать)

Конфигурация, которая приведена отдельно хорошо работает только со сноубоем - так как в ней 4 микрофона объдиняются в стерео, то становится возможным регулировать уровень микрофона в алсе и говорить ключевое слово тише. Но зато когда код доходит до открытия микрофона гуглом, то программа вылетает с ошибкой.

Поэтому надо для начала запустить audio-drivers/USB-MIC-JACK/scripts/usb-mic-onboard-jack.sh
source env/bin/activate
Попробовать записать звук rec temp.wav
Воспроизвести temp.wav - нормально ли записалось
После этого запустить python snowboy.py
Сказать в микрофон ключевую фразу
У меня немного наоборот, видимо недоразобрался SnowBoy надо громко говорить, гуугл слышет нормально.
Аватара пользователя
dance12r
Сообщения: 105
Зарегистрирован: Пн июл 17, 2017 12:14 pm
Откуда: Киев
Благодарил (а): 10 раз
Поблагодарили: 47 раз

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

Сообщение dance12r » Сб мар 03, 2018 9:39 pm

У меня тоже все заработало, пришлось правда перезаписать ключевую фразу на сайте сноубоя, как оказалось один из вариантов получился крайне плохим, и изменить срочку

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

#sensitivity = [0.5]*len(models) 
на

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

sensitivity = len(models) 
в snowboy.py. Иначе срабатывало от каждого шороха). Теперь правда приходится говорить чуть громче, но зато срабатывать стало на много лучше.
Еще столкнулся с невозможностью регулировать уровень микрофона через alsamixer. При выборе камеры ругается:

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

cannot load mixer controls: Invalid argument
Как можно побороть?
Raspberry Pi 3 + Broadlink + MySensors + MDM VoiceAssistant
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

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

Сообщение fandaymon » Сб мар 03, 2018 10:18 pm

dance12r писал(а):У меня тоже все заработало, пришлось правда перезаписать ключевую фразу на сайте сноубоя, как оказалось один из вариантов получился крайне плохим, и изменить срочку

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

#sensitivity = [0.5]*len(models)  
на

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

sensitivity = len(models)
в snowboy.py. Иначе срабатывало от каждого шороха). Теперь правда приходится говорить чуть громче, но зато срабатывать стало на много лучше.
Еще столкнулся с невозможностью регулировать уровень микрофона через alsamixer. При выборе камеры ругается:

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

cannot load mixer controls: Invalid argument
Как можно побороть?
Отлично что всё заработало!
По поводу alsamixera - он не может регулировать 4х канальный источник. Выхода 2 - пытаться настроить pulse и регулировать микшером от пульса, или пытаться менять конфиг алсы, чтобы 4 канала преобразовывались в стерео.
Аватара пользователя
dance12r
Сообщения: 105
Зарегистрирован: Пн июл 17, 2017 12:14 pm
Откуда: Киев
Благодарил (а): 10 раз
Поблагодарили: 47 раз

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

Сообщение dance12r » Сб мар 03, 2018 11:02 pm

Ой. Дети пару часов побегали по комнате,а в чате Алисы просто жуть что творится. Срабатывает почти от каждого писка дочери. Что можно сделать?
Raspberry Pi 3 + Broadlink + MySensors + MDM VoiceAssistant
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

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

Сообщение fandaymon » Сб мар 03, 2018 11:59 pm

dance12r писал(а):Ой. Дети пару часов побегали по комнате,а в чате Алисы просто жуть что творится. Срабатывает почти от каждого писка дочери. Что можно сделать?
Ставить ключевую фразу подлинее. Скажем на Привет Сара реагирует довольно не плохо - ну может пару ложных срабатываний во время просмотра сериалов. (камера на телевизоре сверху). Саму ключевую фразу лучше записывать на нотике, в тишине, и попробовать потом на этом нотике как сноубой будет себя вести - будут ли ложные срабатывания на крики детей...
Ответить