Как сделать программу джарвис

Наверняка, каждый мечтает о своем голосовом ассистенте, под катом еще одна реализация «Джарвиса» из известного фильма.

image

Давно не покидала мысль о своем «Jarvis» и управлении техникой в доме голосом. И вот, наконец, руки дошли до создания сего чуда. Над «мозгами» долго думать не пришлось, Raspberry Pi подходит идеально.

  • Raspberry pi 3 model b
  • USB камера logitech

Реализация

Работать наш ассистент будет по принципу Alexa/Hub:

  1. Активироваться оффлайн по определенному слову
  2. Распознать команду в облаке
  3. Выполнить команду
  4. Отчитаться о проделай работе либо сообщить запрашиваем информацию

Оффлайн активация

Активация будет происходить с помощью CMU Sphinx, и все бы хорошо, но из коробки распознание происходит очень медленно, больше 10 сек, что абсолютно не подходит, для решения проблемы нужно очистить словарь от ненужных слов.

Как сделать Jarvis: Знакомство с нужным софтом для создания виртуального ассистента.

Устанавливаем все необходимое:

pip3 install SpeechRecognition pip3 install pocketsphinx
sudo nano /usr/local/lib/python3.4/dist-packages/speech_recognition/pocketsphinx-data/en-US /pronounciation-dictionary.dict

удаляем все кроме нужного нам Джарвиса:

jarvis JH AA R V AH S

Теперь pocketsphinx распознает довольно быстро.

Распознавание речи

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

Благо Яндекс тоже предоставляет такую возможность, бесплатно и предельно просто.

Регистрируемся, получаем API KEY. Все работу можно производить curl’om.

Синтез речи

Тут нам опять поможет Яндекс. Посылаем текст в ответ получаем файл с синтезированным текстом

curl «https://tts.voicetech.yandex.net/generate?format=wavspeaker=zaharkey=ya_api_key» -G —data-urlencode «text=text» > file

Читайте также:
Акронис программа для разбивки жесткого диска на русском языке

Jarvis

Собираем все вместе и получаем такой скрипт.

Что тут происходит. Запускаем бесконечный цикл, arecord’om записываем три секунды и отправляем sphinx на распознание, если в файле встречается слово «jarvis»

if jarvis_on():

проигрываем заранее записанный фаил оповещения об активации.

Опять записываем 3 секунды и отправляем Яндексу, в ответ получаем нашу команду. Далее выполняем действия исходя из команды.

На этом собственно все. Сценариев выполнения можно придумать великое множество.

Use-case

Теперь немного примеров реального моего использования

Philips Hue

pip install phue

В приложении Hue устанавливаем статический IP:

image

#!/usr/bin/python import sys from phue import Bridge b = Bridge(‘192.168.0.100’) # Enter bridge IP here. #If running for the first time, press button on bridge and run with b.connect() uncommented #b.connect() print (b.get_scene())

Выписываем ID нужных схем, вида «470d4c3c8-on-0»

Я сделал НАСТОЯЩЕГО ДЖАРВИСА! | Siri и Алиса больше не нужны :3

Конечный вариант скрипта:

#!/usr/bin/python import sys from phue import Bridge b = Bridge(‘192.168.0.100’) # Enter bridge IP here. #If running for the first time, press button on bridge and run with b.connect() uncommented #b.connect() if (sys.argv[1] == ‘off’): b.set_light([1,2,3],’on’, False) else: b.activate_scene(1,sys.argv[1])

В джарвиса добавляем:

if (command_key in [‘включи свет’, ‘включить свет’, ‘свет’]): os.system(‘python3 /home/pi/smarthome/hue/hue.py a1167aa91-on-0’) jarvis_say_good() continue if (command_key in [‘приглуши свет’, ‘приглушить свет’]): os.system(‘python3 /home/pi/smarthome/hue/hue.py ac637e2f0-on-0’) jarvis_say_good() continue if (command_key in [‘выключи свет’, ‘выключить свет’]): os.system(‘python3 /home/pi/smarthome/hue/hue.py «off»‘) jarvis_say_good() continue

LG TV

Берем скрипт отсюда. После первого запуска и ввода кода сопряжения, сам код не меняется, поэтому можно выпилить эту часть из скрипта и оставить только управляющую.

В джарвиса добавляем:

#1 — POWER #24 — VOLUNE_UP #25 — VOLUME_DOWN #400 — 3D_VIDEO if (command_key in [‘выключи телевизор’, ‘выключить телевизор’]): os.system(‘python3 /home/pi/smarthome/TV/tv2.py 1′) jarvis_say_good() continue if (command_key in [‘прибавь громкость’, ‘громче’]): os.system(‘python3 /home/pi/smarthome/TV/tv2.py 24’) jarvis_say_good() continue

Читайте также:
Программа flash как работает

Радио

sudo apt-get install mpg123

В джарвиса добавляем:

if (command_key in [‘новости’, ‘выключи новости’,’что происходит’]): os.system(‘mpg123 URL’) continue

Еще можно поставить homebridge и управлять всем через Siri, в случае если до джарвиса не докричаться.

Что касается качества распознавания речи, не Alexa конечно, но на расстоянии до 5 метров процент верного попадания приличный. Главная проблема — речь из телевизораколонок записывается вместе с командами и мешает распознаванию.

На этом все, спасибо.

Источник: habr.com

Cвой Джарвис на языке программирования Python

помогите пожалуйста у меня при установке пай аудио выходит ERROR: Command errored out with exit status 1: ‘c:python projectsvasvenvscriptspython.exe’ -u -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘»‘»‘C:\Users\9
B80~1\AppData\Local\Temp\pip-install-ue3zpsmx\PyAudio\setup.py'»‘»‘; __file__='»‘»‘C:\Users\9B80~1\AppData\Local\Temp\pip-install-ue3zpsmx\PyAudio\setup.p
y'»‘»‘;f=getattr(tokenize, ‘»‘»‘open'»‘»‘, open)(__file__);code=f.read().replace(‘»‘»‘rn'»‘»‘, ‘»‘»‘n'»‘»‘);f.close();exec(compile(code, __file__, ‘»‘»‘exec'»‘»‘))’
install —record ‘C:Users9B80~1AppDataLocalTemppip-record-k4o2but4install-record.txt’ —single-version-externally-managed —compile —install-headers ‘c:python
projectsvasvenvincludesitepython3.7PyAudio’ Check the logs for full command output.

Развернуть ветку

скорее-всего у тебя новая версия питона. Попробуй откатить до 3.6 или скачать готовый установочный пакет, вместо установки через pip.

Развернуть ветку

Скачай отсюда whl файл PyAudio под твою версию питона и ОС
https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyaudio
введи в консоль: pip install название файла PyAudio
например:
pip install PyAudio‑0.2.11‑cp38‑cp38‑win_amd64.whl

Python Extension Packages for Windows — Christoph Gohlke
www.lfd.uci.edu
Развернуть ветку

подскажите, funcs подчеркивается красным и при запуске такая ошибка
Traceback (most recent call last):
File «D:/Python/Джарвис/start.py», line 1, in
import functions
File «D:PythonДжарвисfunctions.py», line 8, in
import calculator
File «D:PythonДжарвисcalculator.py», line 1, in
import funcs
ModuleNotFoundError: No module named ‘funcs’

Развернуть ветку

походу автор опечатался и имел ввиду import functions вместо funcs.

Развернуть ветку

Подскажите как решить
Traceback (most recent call last):
File «start.py», line 16, in
functions.listen()
File «C:UsersRDesktopНовая папкаПятницаFridayfunctions.py», line 68, in listen
while True: time.sleep(0.1)
NameError: name ‘time’ is not defined

Читайте также:
Программа настройка антенны интернета на базовую станцию

Развернуть ветку

import time
в фaйле functions.py

Источник: vc.ru

Джарвис для самых маленьких

Думаю, что многие смотрели фильм про эксцентричного изобретателя Тони Старка, и видели, как работает его ИИ Джарвис. Многие хотели создать такого же, чтобы можно было также быстро, с помощью голоса, контролировать собственный компьютер. На данную тематику написано много статей. Все они довольно сложны, в них используется много строк кода, библиотек и совсем непростые алгоритмы.

Но…я попробую создать рабочий прототип голосового ассистента используя буквально 4-5 библиотек и не самый замысловатый скрипт, что позволит, на начальном уровне знания python создать полезного помощника для работы.

Нам понадобятся библиотеки:

  • pyAudio
  • speech_recognition
  • Os
  • PyAutogui
  • time
Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru