Typle - počítačové hlasové ovládanie. Marvel JARVIS - osobný asistent pre zariadenia iOS Hlasové nahrávky Jarvis na počítači


Dlho som neopúšťal myšlienku na svojho „Jarvisa“ a ovládanie zariadenia v dome hlasom. A nakoniec ruky dosiahli bod vytvorenia tohto zázraku. O „mozgoch“ netrvalo dlho premýšľať, Raspberry Pi perfektne sedí.

Takže žehliť:

  • Raspberry pi 3 model b
  • USB kamera Logitech

Implementácia

Náš asistent bude pracovať podľa princípu Alexa / Hub:
  1. Aktivujte offline pre konkrétne slovo
  2. Rozpoznať tím v cloude
  3. Vykonajte príkaz
  4. Podajte správu o vykonanej práci alebo poskytnite informácie o žiadosti
Pretože môj fotoaparát je podporovaný po vybalení z krabice, nemusel som sa prehrabávať v ovládačoch, takže poďme rovno k softvérovej časti.

Aktivácia offline

Aktivácia bude prebiehať pomocou CMU Sphinx a všetko by bolo v poriadku, ale po vybalení z krabice je rozpoznávanie veľmi pomalé, viac ako 10 sekúnd, čo je absolútne nevhodné, aby ste vyriešili problém, ktorý je potrebný na vyčistenie slovníka od nepotrebných slov.

Nainštalujeme všetko, čo potrebujete:

Pip3 nainštalujte SpeechRecognition pip3 nainštalujte vreckovú sfingu
Ďalej

Sudo nano /usr/local/lib/python3.4/dist-packages/speech_recognition/pocketsphinx-data/en-US /pronounciation-dictionary.dict
odstráňte všetko okrem Jarvisa, ktorý potrebujeme:

Jarvis JH AA R V AH S
Pocketsphinx teraz rozpoznáva veľmi rýchlo.

Rozpoznávanie reči

Na začiatku bol nápad využiť službu Google, okrem toho je jej podpora v SpeechRecognition. Ako sa však ukázalo, Google za to berie peniaze a nepracuje s fyzickým. osobami.

Našťastie Yandex poskytuje aj takúto príležitosť, bezplatnú a mimoriadne jednoduchú.

Zaregistrujeme sa, dostaneme API KEY. Všetku prácu je možné vykonať zvlnením.

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"

Syntéza reči

Tu nám Yandex opäť pomôže. Text odošleme ako odpoveď a dostaneme súbor so syntetizovaným textom

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"> súbor

Jarvis

Keď to dáme všetko dohromady a dostaneme taký scenár.

#! / usr / bin / env python # - * - kódovanie: utf -8 - * - import os importu speech_recognition ako sr z xml.dom import minidom import sys import random r = sr.Recognizer () ya_uuid = "" ya_api_key = "" # os.system ("echo" Assist + ent zap + denied "| festival --tts --language ruština") def convert_ya_asr_to_key (): xmldoc = minidom.parse ("./ asr_answer.xml") itemlist = xmldoc.getElementsByTagName ("variant") ak len (zoznam položiek)> 0: vrátiť itemlist.firstChild.nodeValue else: vrátiť False def jarvis_on (): so sr.WavFile ("send.wav") ako zdrojom: audio = r.record (zdroj) skúste: t = r.recognize_sphinx (audio) vytlačiť (t) okrem LookupError: print ("audio nerozumie") vrátiť t == ("jarvis") def jarvis_say (fráza): 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 =" + fráza + ""> jarvis_speech.wav " ) os.system ("aplay jarvis_speech.wav") def jarvis_say_good (): phrases = ["Hotovo", "Hotovo", "Dobre "," Áno "," Ešte niečo? ",] Randitem = random.choice (frázy) jarvis_say (randitem) skúste: while True: os.system (" arecord -B --buffer -time = 1000000 -f dat -r 16000 -d 3 -D plugghw: 1,0 send.wav ") if jarvis_on (): os.system (" aplay jarvis_on.wav ") os.system (" arecord -B --buffer -time = 1000000 -f dat -r 16 000 -d 3 -D plugghw: 1,0 send.wav ") os.system (" curl -X POST -H "Typ obsahu: audio / x -wav" --data -binárne "@odoslať .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 () pokračovať okrem výnimky: jarvis_say ("Niečo sa pokazilo")
Čo sa tu deje. Začneme nekonečnú slučku, napíšeme arecord'om na tri sekundy a pošleme sfingu na rozpoznanie, ak sa v súbore nachádza slovo „jarvis“

Ak jarvis_on ():
prehrajte vopred zaznamenaný súbor s upozornením na aktiváciu.

Opäť zapíšeme 3 sekundy a odošleme to na server Yandex, v reakcii na to dostaneme náš príkaz. Ďalej vykonávame akcie na základe príkazu.

To je vlastne všetko. Môžete myslieť na rôzne scenáre vykonávania.

Prípad použitia

Teraz niekoľko príkladov môjho skutočného použitia

Philips Hue

Inštalácia

Pue nainštalovať phue
V aplikácii Hue nastavte statickú IP adresu:

Spustenie:

#! / usr / bin / python import sys z phue importu Bridge b = Bridge ("192.168.0.100") # Sem zadajte IP mosta. #Pri prvom spustení stlačte tlačidlo na mostíku a spustite ho pomocou príkazu b.connect () bez komentárov # b.connect () print (b.get_scene ())
Zapíšeme ID potrebných schém, napríklad „470d4c3c8-on-0“

Konečná verzia scenára:

#! / usr / bin / python import sys z phue importu Bridge b = Bridge ("192.168.0.100") # Sem zadajte IP mosta. #Pri prvom spustení stlačte tlačidlo na mostíku a spustite ho pomocou príkazu b.connect () bez komentára # b.connect () if (sys.argv == "off"): b.set_light (, "on", False) else: b.activate_scene (1, sys.argv)
Pridať do jarvisu:

If (command_key in ["turn on the light", "turn on the light", "light"]): os.system ("python3 /home/pi/smarthome/hue/hue.py a1167aa91-on-0") jarvis_say_good () continue if (command_key in ["dim lights", "dim lights"]): os.system ("python3 /home/pi/smarthome/hue/hue.py ac637e2f0-on-0") jarvis_say_good () continue if (command_key in ["zhasnúť svetlá", "vypnúť svetlá"]): os.system ("python3 /home/pi/smarthome/hue/hue.py" off "") jarvis_say_good () pokračovať

LG tv

Berieme scenár odtiaľto. Po prvom spustení a zadaní párovacieho kódu sa samotný kód nemení, takže túto časť môžete zo skriptu vystrihnúť a ponechať iba riadiacu.

Pridať do jarvisu:

# 1 - NAPÁJANIE # 24 - VOLUNE_UP # 25 - VOLUME_DOWN # 400 - 3D_VIDEO if (príkazové_klíč v [„vypnúť televízor“, „vypnúť televízor“]): os.system („python3 / home / pi / smarthome / TV/tv2. Py 1 ") jarvis_say_good () pokračujte, ak (príkazový kľúč v ['zvýšiť hlasitosť", "hlasnejšie"]): os.system ("python3 /home/pi/smarthome/TV/tv2.py 24" ) jarvis_say_good () pokračujte

Rádio

sudo apt-get install mpg123
Pridať do jarvisu:

Ak (príkaz_kláves v [„správy“, „vypnúť správy“, „čo sa deje“]): os.system (‘URL mpg123‘) pokračovať
Môžete si tiež dať domovský mostík a ovládať všetko prostredníctvom Siri, v prípade, že nekričíte na Jarvisa.

Pokiaľ ide o kvalitu rozpoznávania reči, nie Alexa, samozrejme, ale vo vzdialenosti až 5 metrov je percento správnych zásahov slušné. Hlavným problémom je, že reč z televízora / reproduktorov sa zaznamenáva spolu s príkazmi a narúša rozpoznávanie.

To je všetko, ďakujem.

Tagy:

  • malinový koláč
  • pytón
Pridať značky

Väčšina používateľov vie, že Siri je považovaná za najžiadanejšiu osobnú asistentku a technológiu otázok a odpovedí v pomôckach iOS. Našťastie Siri nie je jediným systémom, ktorý je na trhu k dispozícii. Fanúšikom sci -fi a komiksov vytvorených spoločnosťou Marvel sa teda ponúka osobný asistent JARVIS z filmu „Iron Man“.

Ak vlastník zariadenia videl film „Iron Man“, pravdepodobne pozná komorníka Tonyho Starka, ktorý sa volá Jarvis. V dôsledku toho sa používateľ bude môcť uchýliť k pomoci virtuálneho sluhu na svojom vlastnom prenosnom zariadení. Program JARVIS je navyše jedinečným vývojom, ktorý využíva hlas a obraz postavy Jarvisa.

Obslužný program JARVIS začína základnými zvukovými pokynmi na používanie a správu zadaného nástroja. Na konci nastavenia bude používateľ musieť zadať svoje pohlavie (aby sa virtuálny asistent mohol správne skontaktovať s majiteľom zariadenia). Okrem toho tu budete musieť nastaviť mernú jednotku pre hlavné teplotné podmienky (najmä stupne Kelvina, Fahrenheita alebo samozrejme stupne Celzia).


Podrobný zoznam pokynov nájdete stlačením ikony umiestnenej v hornom rohu displeja. V tomto prípade musia všetky tímy nevyhnutne začínať adresou „Jarvis“ a spravidla obsahovať jedno slovo (napríklad „Jarvis, predpoveď počasia“). JARVIS môže tiež upozorniť majiteľa zariadenia na budúce schôdze a zobraziť aktuálny čas. V programe môžete tiež vytvoriť rôzne zvukové pripomienky.

Je dôležité si uvedomiť, že majiteľom optických diskov s filmovým trhákom Iron Man poskytuje nástroj JARVIS pridané vlastnosti... Užívateľ môže napríklad jednoducho ovládať prehrávanie zodpovedajúceho filmu pomocou tohto virtuálneho komorníka.


Užitočná informácia: ak sa spýtate svojho virtuálny asistent otázka: Mám si kúpiť BMW 740 (http://www.bmw-avtoport.ru/auto/7/), potom bude jeho odpoveď so stopercentnou pravdepodobnosťou kladná! Mimochodom, BMW siedmej série si môžete kúpiť práve teraz za najvýhodnejších podmienok pre seba! Všetko, čo musíte urobiť, je navštíviť stránku www.bmw-avtoport.ru.

Dnes sa zameriame na svoj príhovor. Chcel by si ovládať počítač hlasom bez pomoci prstov? A, ako sa hovorí, silou myšlienky! Je pravda, že počítač nebudeme ovládať silou myšlienky, ale sila hlasu je celkom skutočná.

Typový program- Toto je jeden z najlepších dnešných programov na ovládanie počítača pomocou hlasu. Na stránkach v komentároch k tomuto programu sa názory stretávajú.

Je pravda, že existujú určité nevýhody. Ale o tom neskôr. Mimochodom, ak vás to zaujíma, prečítajte si moju recenziu.

Program si môžete stiahnuť tu: http://freesoft.ru/typle

Ako to používaš? Najprv ho spustíme a uvidíme hlavné ovládacie tlačidlá:

Program nás víta a okamžite nám dáva rady, ako používať Typle. Najprv stlačte tlačidlo „pridať“ a napíšte slovo, napríklad „otvoriť“. Ak to chcete urobiť, povedzte toto slovo do mikrofónu:

Potom kliknite na Pridať. Takže slovo „otvorené“ sme do programu uložili pomocou hlasu. Do mikrofónu môžete hovoriť akékoľvek iné slová. Hlavnou vecou nie je nechať sa zmiasť.

Ďalším krokom je pridanie príkazov. Ak to chcete urobiť, prejdite na túto položku:

Potom začiarkneme políčko vedľa položky, ktorú potrebujeme:

Vyberte program, aplikáciu alebo akciu a kliknite na červené tlačidlo záznamu. Ak počítač zachytí náš hlas, kliknite na „Pridať“:

A teraz bude v našom profile viditeľný jeden hlasový príkaz. V tomto prípade ten, ktorý otvára 7-Zip:

A teraz stlačením posledného tlačidla „začať hovoriť“

hovoríme vetu „otvorte sedem zipsov“. V mojom prípade bude všetko fungovať. A otvorí sa program 7-zip. Pamätáte si túto frázu: Chcete otvoriť tento sim? To je niečo približne rovnaké.

Program nie vždy funguje dobre. Teraz mocný ruský jazyk ešte poriadne nenaštudovali lingvistickí programátori ... Ale stále je pekné, keď vás počúva počítač.

Preto je na testovanie a banálnu zvedavosť program Typle 100% vhodný.

V tomto videu môžete vidieť históriu vytvorenia prvých hlasových nástrojov a na čom ešte musíme zapracovať:

Existujú také hrozné názvy pre iné analógy programu, ako sú Gorynych, Perpetuum, Diktograf, Voice Commander. Ale všetky sú „nie také“. Neprechádzajte kritikou hodnotného programu.

Ovládnutie tohto programu mi trvalo 5 minút. To je pomerne dlhý čas (v zásade rozumiem takýmto programom za 1-2 minúty). Ak máte akékoľvek otázky - napíšte. Do skorého videnia, priatelia :)!