Каждый современный человек владеет ноутбуком, но как самому убрать возникающие...
![Пропал звук на ноутбуке — что делать?](https://i0.wp.com/sovets.net/photos/uploads/120/8110495-2razrabotanyi-spetsialnyie-programmyi-kotoryie-testiruyut-audio-drayveryi-soundcheck.jpg)
Сегодня речь пойдет о нашей речи. Хотелось бы вам управлять компьютером голосом , без помощи пальцев? А, как это говорят, — силой мысли! Правда, мы не будем управлять компьютер силой мысли, но вот силой голоса вполне реально.
Программа Typle — это одна из лучших на сегодняшний день программа для управления компьютером через голос. На сайтах в комментариях к этой программе мнения сходятся.
Правда есть свои недочеты. Но об этом чуть позже. Кстати, если вас интересует — читайте мой обзор.
Скачать программу можно здесь: http://freesoft.ru/typle
Как же ее использовать? В начале запустим ее и посмотрим главные кнопки управления:
Программа нас приветствует и сразу нам даются подсказки, как использовать Typle. В начале нажмем кнопку «добавить» и запишем слово, например «открой». Для этого произнесем это слово в микрофон:
Затем жмем добавить. Итак, мы сохранили в программе своим голосом слово «Открой». Вы можете говорить в микрофон любые другие слова. Главное — не запутаться.
Следующим шагом будет добавление команд. Для этого перейдем в этот пункт:
Потом мы устанавливаем галочку напротив того пункта, который нам нужен:
Выбираем программу, приложение или действие и нажимаем на красную кнопку записи. Если компьютер воспринял наш голос, жмем «Добавить»:
И теперь будет видна в нашем профиле одна голосовая команда. В данном случае та, которая открывает 7-Zip:
И теперь, нажав завершающую кнопку «начать говорить»
говорим фразу «открой Севен Зип». В моем случае, все сработает. И программа 7-zip откроется. Помните такую фразу: Сим сим откройся? Вот это что-то приблизительно такое же.
Программа не всегда работает адекватно. Сейчас могучий русский язык не до конца изучен программистами-лингвистами… Но все-таки приятно, когда тебя слушается компьютер.
Поэтому для тестирования и банального любопытства программа Typle подойдет на все 100%.
В этом видео можно увидеть историю создания первых голосовых движков и то, над чем еще нам следует поработать:
Есть такие страшные названия других аналогов программы, как Горыныч, Перпетуум, Диктограф, Voice Commander. Но все они — «не того». Не проходят критику достойной программы.
На освоение этой программы у меня ушло 5 минут. Это довольно-таки длительное время (в основном, в таких программах я разбираюсь за 1-2 минуту). Если возникнут вопросы — пишите. До скорых встреч, друзья:)!
Давно не покидала мысль о своем «Jarvis» и управлении техникой в доме голосом. И вот, наконец, руки дошли до создания сего чуда. Над «мозгами» долго думать не пришлось, Raspberry Pi подходит идеально.
Итак, железо:
Устанавливаем все необходимое:
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 распознает довольно быстро.
Благо Яндекс тоже предоставляет такую возможность, бесплатно и предельно просто.
Регистрируемся, получаем API KEY. Все работу можно производить curl’om.
Curl -X POST -H "Content-Type: audio/x-wav" --data-binary "@file" «https://asr.yandex.net/asr_xml?uuid=ya_uid&key=yf_api_key&topic=queries»
Curl «https://tts.voicetech.yandex.net/generate?format=wav&lang=ru-RU&speaker=zahar&emotion=good&key=ya_api_key» -G --data-urlencode "text=text" > file
#! /usr/bin/env python
# -*-coding:utf-8-*-
import os
import speech_recognition as sr
from xml.dom import minidom
import sys
import random
r = sr.Recognizer()
ya_uuid = ""
ya_api_key = ""
# os.system("echo "Ассист+ент зап+ущен" |festival --tts --language russian")
def convert_ya_asr_to_key():
xmldoc = minidom.parse("./asr_answer.xml")
itemlist = xmldoc.getElementsByTagName("variant")
if len(itemlist) > 0:
return itemlist.firstChild.nodeValue
else:
return False
def jarvis_on():
with sr.WavFile("send.wav") as source:
audio = r.record(source)
try:
t = r.recognize_sphinx(audio)
print(t)
except LookupError:
print("Could not understand audio")
return t == ("jarvis")
def jarvis_say(phrase):
os.system("curl "https://tts.voicetech.yandex.net/generate?format=wav&lang=ru-RU&speaker=zahar&emotion=good&key="+ya_api_key+"" -G --data-urlencode "text=" + phrase + "" > jarvis_speech.wav")
os.system("aplay jarvis_speech.wav")
def jarvis_say_good():
phrases = ["Готово", "Сделано", "Слушаюсь", "Есть", "Что-то еще?", ]
randitem = random.choice(phrases)
jarvis_say(randitem)
try:
while True:
os.system("arecord -B --buffer-time=1000000 -f dat -r 16000 -d 3 -D plughw:1,0 send.wav")
if jarvis_on():
os.system("aplay jarvis_on.wav")
os.system("arecord -B --buffer-time=1000000 -f dat -r 16000 -d 3 -D plughw:1,0 send.wav")
os.system("curl -X POST -H "Content-Type: audio/x-wav" --data-binary "@send.wav" "https://asr.yandex.net/asr_xml?uuid="+ya_uuid+"&key="+ya_api_key+"&topic=queries" > asr_answer.xml")
command_key = convert_ya_asr_to_key()
if (command_key):
if (command_key in [‘key_word", ‘key_word1’, ‘key_word2"]):
os.system(‘’)
jarvis_say_good()
continue
except Exception:
jarvis_say("Что-то пошло не так")
Что тут происходит. Запускаем бесконечный цикл, arecord’om записываем три секунды и отправляем sphinx на распознание, если в файле встречается слово «jarvis»
If jarvis_on():
проигрываем заранее записанный фаил оповещения об активации.
Опять записываем 3 секунды и отправляем Яндексу, в ответ получаем нашу команду. Далее выполняем действия исходя из команды.
На этом собственно все. Сценариев выполнения можно придумать великое множество.
Pip install phue
В приложении Hue устанавливаем статический IP:
Запускаем:
#!/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»
Конечный вариант скрипта:
#!/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 == "off"):
b.set_light(,"on", False)
else:
b.activate_scene(1,sys.argv)
В джарвиса добавляем:
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
В джарвиса добавляем:
#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
If (command_key in ["новости", ‘выключи новости’,’что происходит’]):
os.system(‘mpg123 URL")
continue
Еще можно поставить homebridge и управлять всем через Siri, в случае если до джарвиса не докричаться.
Что касается качества распознавания речи, не Alexa конечно, но на расстоянии до 5 метров процент верного попадания приличный. Главная проблема - речь из телевизора\колонок записывается вместе с командами и мешает распознаванию.
На этом все, спасибо.
Теги:
Большинству пользователей известно, что система Siri считается наиболее востребованным личным помощником и вопросно-ответной технологией на iOS-гаджетах. К счастью, не только система Siri доступна на рынке. Так, поклонникам фантастики и комиксов, созданных фирмой Marvel, предлагается персональный помощник JARVIS из кинофильма «Железный Человек».
Если владелец девайса видел киноленту «Железный Человек», то ему наверняка известен дворецкий Тони Старка, которого зовут Джарвис. Следовательно, пользователь сможет прибегать к помощи виртуального слуги на собственном портативном аппарате. К тому же, программа JARVIS является уникальной разработкой, применяющей голос и образ персонажа Джарвиса.
Работа утилиты JARVIS начинается с обычных аудиоинструкций по использованию и управлению указанным инструментом. По окончании настройки пользователю понадобится указать свой пол (чтобы виртуальный помощник смог корректно обращаться к владельцу устройства). Кроме того, здесь придется задать единицу измерения основных температурных условий (в частности, градусы по Кельвину, Фаренгейту либо, разумеется, Цельсию).
Важно отметить, что владельцам оптических дисков с киноблокбастером «Железный Человек» утилита JARVIS предоставляет дополнительные возможности. Например, пользователь сможет легко управлять проигрыванием соответствующего фильма при помощи данного виртуального дворецкого.