Konfiguracja sprzętu i oprogramowania

Typ - głosowe sterowanie komputerem. Marvel JARVIS — osobisty asystent urządzeń z systemem iOS Aplikacje podobne do Jarvis

Dziś porozmawiamy o naszym wystąpieniu. Czy chciałbyś steruj komputerem za pomocą głosu, bez pomocy palców? I, jak mówią, siłą myśli! Co prawda nie będziemy sterować komputerem mocą myśli, ale mocą głosu jest to całkiem realne.

Wpisz program- To jedno z najlepszych programów do sterowania komputerem za pomocą głosu. Na stronach w komentarzach do tego programu opinie są zbieżne.

To prawda, że ​​ma swoje wady. Ale o tym później. Przy okazji, jeśli jesteś zainteresowany, przeczytaj moją recenzję.

Możesz pobrać program tutaj: http://freesoft.ru/type

Jak tego użyć? Najpierw uruchommy go i zobaczmy główne przyciski sterujące:

Program wita nas i od razu podpowiada, jak korzystać z Type. Na początku wciskamy przycisk „dodaj” i zapisujemy słowo, na przykład „otwórz”. Aby to zrobić, powiedz to słowo do mikrofonu:

Następnie kliknij dodaj. Tak więc zapisaliśmy słowo „Otwórz” w programie naszym głosem. Do mikrofonu możesz wypowiedzieć dowolne inne słowa. Najważniejsze, żeby się nie pomylić.

Następnym krokiem jest dodanie poleceń. Aby to zrobić, przejdź do tego punktu:

Następnie zaznaczamy okienko przy elemencie, którego potrzebujemy:

Wybierz program, aplikację lub akcję i kliknij czerwony przycisk nagrywania. Jeśli komputer zaakceptował nasz głos, kliknij „Dodaj”:

A teraz jeden będzie widoczny w naszym profilu Komenda głosowa. W tym przypadku ten, który otwiera 7-Zip:

A teraz, naciskając ostatni przycisk „zacznij mówić”

mówimy zdanie „otwórz Seven Zip”. W moim przypadku wszystko będzie działać. Otworzy się program 7-zip. Zapamiętaj to zdanie: Sim otwarty? Oto coś o tym samym.

Program nie zawsze działa poprawnie. Teraz potężny język rosyjski nie został w pełni zbadany przez programistów lingwistów ... Ale mimo to miło jest, gdy komputer jest ci posłuszny.

Dlatego do testowania i banalnej ciekawości program Typle nadaje się w 100%.

W tym filmie możesz zobaczyć historię powstania pierwszych silników głosowych i nad czym jeszcze musimy popracować:

Są takie straszne nazwy innych analogów programu jak Gorynych, Perpetuum, Dictograph, Voice Commander. Ale wszystkie z nich są „nie tym”. Nie przekazuj krytyki godnego programu.

Opanowanie tego programu zajęło mi 5 minut. to jest dość długi czas(w zasadzie rozumiem takie programy w 1-2 minuty). Jeśli masz jakieś pytania - napisz. Do zobaczenia wkrótce, przyjaciele :)!


Przez długi czas nie opuszczała mnie myśl o moim „Jarvisie” i sterowaniu sprzętem w domu za pomocą głosu. I wreszcie ręce doszły do ​​stworzenia tego cudu. Długo nie musiałem myśleć o „mózgu”, Raspberry Pi pasuje idealnie.

Więc żelazko:

  • Raspberry pi 3 model b
  • kamera USB firmy logitech

Realizacja

Nasz asystent będzie pracował zgodnie z zasadą Alexa/Hub:
  1. Aktywuj offline dla określonego słowa
  2. Rozpoznaj zespół w chmurze
  3. Uruchom polecenie
  4. Zgłoś wykonaną pracę lub zgłoś żądane informacje
Bo mój aparat jest obsługiwany po wyjęciu z pudełka, nie musiałem zajmować się sterownikami, więc przejdziemy od razu do części oprogramowania.

Aktywacja offline

Aktywacja odbędzie się za pomocą CMU Sphinx i wszystko będzie dobrze, ale rozpoznawanie po wyjęciu z pudełka jest bardzo powolne, ponad 10 sekund, co jest absolutnie nieodpowiednie, aby rozwiązać problem, musisz wyczyścić słownik z niepotrzebnych słów.

Instalowanie wszystkiego, czego potrzebujesz:

pip3 install SpeechRecognition pip3 install pocketsphinx
Dalej

sudo nano /usr/local/lib/python3.4/dist-packages/speech_recognition/pocketsphinx-data/en-US /pronunciation-dictionary.dict
usuń wszystko oprócz Jarvisa, którego potrzebujemy:

Jarvis JH AA R V AH S
Teraz kieszonkowy sfinks rozpoznaje dość szybko.

Rozpoznawanie mowy

Na początku pojawił się pomysł na skorzystanie z usługi Google, poza tym jej obsługa jest w SpeechRecognition. Ale jak się okazało, Google bierze za to pieniądze i nie działa z fizycznym. osób.

Na szczęście Yandex również zapewnia taką możliwość, bezpłatnie i niezwykle prosto.

Zarejestruj się, zdobądź KLUCZ API. Całą pracę można wykonać za pomocą 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"

synteza mowy

Tutaj Yandex znów nam pomoże. Wysyłamy tekst w odpowiedzi, otrzymujemy plik z tekstem zsyntetyzowanym

Zwijanie „https://tts.voicetech.yandex.net/generate?format=wav&lang=ru-RU&speaker=zahar&emotion=good&key=ya_api_key” -G --data-urlencode „text=text” > plik

Jarvis

Zbieramy wszystko razem i dostajemy taki scenariusz.

#! /usr/bin/env python # -*-coding:utf-8-*- import os import speech_recognition jako sr z xml.dom import minidom import sys import random r = sr.Recognizer() ya_uuid = "" ya_api_key = "" # os.system("echo "Assist+ent za+en" |festival --tts --język rosyjski") def convert_ya_asr_to_key(): xmldoc = minidom.parse("./asr_answer.xml") itemlist = xmldoc.getElementsByTagName ("wariant") if len(itemlist) > 0: zwróć itemlist.firstChild.nodeValue else: return False def jarvis_on(): with sr.WavFile("send.wav") jako źródło: audio = r.record(source) try: t = r.recognize_sphinx(audio) print(t) z wyjątkiem LookupError: print("Nie można zrozumieć dźwięku") 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=" + fraza + "" > jarvis_speech.wav" ) os.system("aplay jarvis_speech.wav") def jarvis_say_good(): frazy = ["Gotowe", "Gotowe", "Tak ", "Tak", "Czy jest coś jeszcze?", ] 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 (klawisz_komendy): if ( command_key w ['key_word", 'key_word1', 'key_word2"]): os.system('') jarvis_say_good() kontynuuj z wyjątkiem wyjątku: jarvis_say("Coś poszło nie tak")
Co tu się dzieje. Uruchamiamy nieskończoną pętlę, arecord’om zapisuje trzy sekundy i wysyła sfinksa do rozpoznania, czy w pliku występuje słowo „jarvis”

Jeśli jarvis_on():
odtwarzamy nagrany wcześniej plik powiadomienia o aktywacji.

Ponownie nagrywamy 3 sekundy i wysyłamy do Yandex, w odpowiedzi otrzymujemy nasze polecenie. Następnie wykonujemy akcje na podstawie komendy.

To wszystko. Możesz wymyślić wiele różnych scenariuszy realizacji.

przypadek użycia

Teraz kilka przykładów mojego prawdziwego zastosowania

Philips Hue

zainstalować

pip zainstaluj phue
W aplikacji Hue ustaw statyczny adres IP:

Uruchamiamy:

#!/usr/bin/python import sys z phue import Bridge b = Bridge("192.168.0.100") # Wpisz tutaj adres IP mostka. #Jeżeli uruchamiasz po raz pierwszy, naciśnij przycisk na mostku i uruchom z b.connect() bez komentarza #b.connect() print (b.get_scene())
Wypisujemy identyfikatory żądanych schematów, np. „470d4c3c8-on-0”

Skrypt końcowy:

#!/usr/bin/python import sys z phue import Bridge b = Bridge("192.168.0.100") # Wpisz tutaj adres IP mostka. #Jeżeli uruchamiasz po raz pierwszy, naciśnij przycisk na mostku i uruchom z b.connect() bez komentarza #b.connect() if (sys.argv == "off"): b.set_light(,"on", False) w przeciwnym razie: b.activate_scene(1,sys.argv)
Dodaj do Jarvisa:

Jeśli (klawisz polecenia w ["włącz światło", "włącz światło", "światło"]): os.system("python3 /home/pi/smarthome/hue/hue.py a1167aa91-on-0") jarvis_say_good() kontynuuj jeśli (klawisz polecenia w ["przyciemnij światła", "przyciemnij światła"]): os.system("python3 /home/pi/smarthome/hue/hue.py ac637e2f0-on-0") jarvis_say_good( ) Continue if (command_key in ["lights off", "lights off"]): os.system("python3 /home/pi/smarthome/hue/hue.py "off"") jarvis_say_good() Continue

Telewizor LG

Skrypt bierzemy stąd. Po pierwszym uruchomieniu i wpisaniu kodu parowania sam kod się nie zmienia, więc możesz wyciąć tę część ze skryptu i pozostawić tylko kontrolną.

Dodaj do Jarvisa:

#1 - POWER #24 - VOLUNE_UP #25 - VOLUME_DOWN #400 - 3D_VIDEO if (klawisz polecenia w ["wyłącz telewizor", "wyłącz telewizor"]): os.system("python3 /home/pi/smarthome/TV/ tv2. py 1") jarvis_say_good() kontynuuj, jeśli (klawisz polecenia w ['podkręć głośność', "głośniej"]): os.system("python3 /home/pi/smarthome/TV/tv2.py 24") jarvis_say_good () kontyntynuj

Radio

sudo apt-get zainstaluj mpg123
Dodaj do Jarvisa:

Jeśli (klawisz polecenia w ["wiadomości", 'wyłącz wiadomości', 'co się dzieje']): os.system('adres URL mpg123') kontynuuj
Możesz także umieścić homebridge i zarządzać wszystkim przez Siri, jeśli nie możesz krzyczeć do Jarvisa.

Jeśli chodzi o jakość rozpoznawania mowy, to oczywiście nie Alexa, ale w odległości do 5 metrów procent poprawnych trafień jest przyzwoity. Główny problem polega na tym, że mowa z telewizora/głośników jest nagrywana wraz z komendami i przeszkadza w rozpoznawaniu.

To wszystko, dzięki.

Tagi:

  • pi malinowa
  • pyton
Dodaj tagi

Większość użytkowników wie, że system Siri jest uważany za najpopularniejszą technologię osobistego asystenta i technologię pytań i odpowiedzi w gadżetach iOS. Na szczęście na rynku dostępny jest nie tylko system Siri. Tak więc fanom science fiction i komiksów stworzonych przez Marvela proponuje się osobistego asystenta JARVISa z filmu „Iron Man”.

Jeśli właściciel urządzenia widział film „Iron Man”, to prawdopodobnie zna kamerdynera Tony'ego Starka, który nazywa się Jarvis. Dzięki temu użytkownik będzie mógł skorzystać z pomocy wirtualnego sługi na swoim własnym urządzeniu przenośnym. Ponadto program JARVIS to wyjątkowe opracowanie, które wykorzystuje głos i wizerunek postaci Jarvisa.

Narzędzie JARVIS rozpoczyna się od zwykłych instrukcji dźwiękowych dotyczących korzystania z określonego narzędzia i zarządzania nim. Pod koniec konfiguracji użytkownik będzie musiał określić swoją płeć (aby wirtualny asystent mógł poprawnie skontaktować się z właścicielem urządzenia). Ponadto tutaj będziesz musiał ustawić jednostkę miary dla głównych warunków temperaturowych (w szczególności stopnie Kelvina, Fahrenheita lub oczywiście Celsjusza).


Szczegółową listę instrukcji znajdziesz dotykając ikony znajdującej się w górnym rogu wyświetlacza. Jednocześnie wszystkie polecenia muszą koniecznie zaczynać się od kuracji „Jarvis” i zwykle zawierać jedno słowo (na przykład „Jarvis, prognoza pogody”). Ponadto JARVIS może powiadamiać właściciela urządzenia o przyszłych spotkaniach i wyświetlać aktualny czas. W programie można również tworzyć różne przypomnienia dźwiękowe.

Należy zauważyć, że narzędzie JARVIS zapewnia właścicielom dysków optycznych przebój filmowy Iron Man dodatkowe funkcje. Na przykład użytkownik może z łatwością sterować odtwarzaniem odpowiedniego filmu za pomocą tego wirtualnego lokaja.


Pomocna informacja: jeśli zapytasz swojego wirtualny asystent pytanie: czy powinienem kupić bmw 740 (http://www.bmw-avtoport.ru/auto/7/), to jego odpowiedź ze stuprocentowym prawdopodobieństwem będzie pozytywna! Przy okazji, możesz kupić BMW serii 7 już teraz na najkorzystniejszych dla siebie warunkach! Wszystko, co musisz zrobić, to odwiedzić stronę www.bmw-avtoport.ru.
Podobał Ci się artykuł? Podziel się z przyjaciółmi!
Czy ten artykuł był pomocny?
tak
Nie
Dziekuję za odpowiedź!
Coś poszło nie tak i Twój głos nie został policzony.
Dziękuję Ci. Twoja wiadomość została wysłana
Znalazłeś błąd w tekście?
Wybierz, kliknij Ctrl+Enter a my to naprawimy!