Virtuaalne jarvis. Typle - arvuti hääljuhtimine

Enamik kasutajaid teab, et Sirit peetakse iOS-i vidinate kõige nõutumaks isiklikuks assistendiks ja küsimuste ja vastuste tehnoloogiaks. Õnneks pole Siri ainus turul saadaval olev süsteem. Niisiis pakutakse Marveli loodud ulme- ja koomiksifännidele isiklikku assistenti JARVIS filmist "Raudmees".

Kui seadme omanik on näinud filmi "Raudmees", siis ilmselt tunneb ta Tony Starki, kes on Jarvis, ülemteenrit. Järelikult saab kasutaja iseseisvalt kasutada virtuaalse teenija abi kaasaskantavad seadmed... Lisaks on JARVIS-programm ainulaadne areng, mis kasutab Jarvise tegelase häält ja pilti.

JARVIS-utiliit algab põhiliste heli juhistega määratud tööriista kasutamiseks ja haldamiseks. Seadistuse lõpus peab kasutaja määrama oma soo (nii et virtuaalne assistent saaks seadme omanikuga õigesti ühendust võtta). Lisaks peate siin määrama peamiste temperatuuritingimuste (eelkõige Kelvini, Fahrenheiti või muidugi Celsiuse kraadi) mõõtühiku.


Üksikasjalike juhiste loendi leiate ekraani ülanurgas asuva ikooni puudutamisest. Sellisel juhul peavad kõik meeskonnad tingimata alustama aadressiga "Jarvis" ja sisaldavad tavaliselt ühte sõna (näiteks "Jarvis, ilmateade"). JARVIS võib seadme omanikku teavitada ka tulevastest koosolekutest ja kuvada praeguse aja. Samuti saate programmis luua mitmesuguseid heli meeldetuletusi.

Oluline on märkida, et filmi Iron Man optiliste ketaste omanikele pakub JARVIS-utiliit lisafunktsioone... Näiteks saab kasutaja selle virtuaalse ülemteenri abil hõlpsalt juhtida vastava filmi taasesitust.


Kasulik teave: Kui esitate oma virtuaalsele assistendile küsimuse: kas peaksin ostma BMW 740 (http://www.bmw-avtoport.ru/auto/7/), siis tema sajaprotsendilise tõenäosusega vastus on jaatav! Muide, saate seitsmenda seeria BMW osta endale praegu kõige soodsamatel tingimustel! Selleks peate ainult külastama saiti www.bmw-avtoport.ru.

Täna keskendume oma kõnele. Kas sa sooviks juhtida arvutit häälega ilma sõrmede abita? Ja nagu öeldakse, mõtte jõul! Tõsi, me ei kontrolli arvutit mõttejõul, kuid hääle jõud on üsna reaalne.

Tüüpprogramm- See on tänapäeval üks parimaid programme arvuti juhtimiseks hääle kaudu. Selle programmi kommentaarides olevate saitide arvamused ühtivad.

Tõsi, on ka mõningaid puudusi. Aga sellest pikemalt hiljem. Muide, kui olete huvitatud, lugege minu arvustust.

Programmi saate alla laadida siit: http://freesoft.ru/typle

Kuidas te seda kasutate? Kõigepealt käivitame selle ja näeme peamisi juhtnuppe:

Programm tervitab meid ja annab kohe vihjeid Typle'i kasutamise kohta. Kõigepealt vajutage nuppu "lisa" ja kirjutage üles sõna, näiteks "avatud". Selleks öelge see sõna mikrofoni:

Seejärel klõpsake nuppu Lisa. Niisiis, salvestasime oma häälega programmi "Ava". Mikrofoni saate rääkida mis tahes muid sõnu. Peaasi, et segadusse ei läheks.

Järgmine samm on käskude lisamine. Selleks minge sellele üksusele:

Seejärel märkime vajaliku üksuse ruudu:

Valige programm, rakendus või toiming ja klõpsake nupul punane kirje. Kui arvuti võtab meie hääle kätte, klõpsake nuppu "Lisa":

Ja nüüd on üks meie profiilil nähtav häälkäsklus... IN sel juhul see, mis avab 7-Zip:

Ja nüüd, vajutades viimast nuppu "Alusta rääkimist"

ütleme fraas "ava seitse tõmblukku". Minu puhul töötab kõik. Ja 7-zip programm avaneb. Pidage seda fraasi meeles: avage see sim? See on midagi umbes sama.

Programm ei tööta alati hästi. Nüüd pole keeleprogrammeerijad vägevat vene keelt veel täielikult uurinud ... Kuid ikkagi on tore, kui arvuti teid kuulab.

Seetõttu sobib testimiseks ja banaalseks uudishimust programm Typle 100%.

Selles videos näete esimeste häälmootorite loomise ajalugu ja seda, millega peame veel töötama:

Nii kohutavaid nimesid on programmi teistel analoogidel, näiteks Gorynych, Perpetuum, Diktograf, Voice Commander. Kuid nad kõik pole "seda". Ärge andke kriitikat väärt programmi kohta.

Selle programmi õppimiseks kulus mul 5 minutit. See on üsna pikk aeg (põhimõtteliselt saan sellistest programmidest aru 1-2 minutiga). Kui teil on küsimusi - kirjutage. Kohtume varsti, sõbrad :)!


Ma pole pikka aega oma "Jarvise" mõtet ja seadmete juhtimist majas häälega jätnud. Ja lõpuks jõudsid käed selle ime loomiseni. "Ajudele" ei pidanud kaua mõtlema, Raspberry Pi sobib ideaalselt.

Nii et raud:

  • Vaarika pi 3 mudel b
  • Logitechi USB-kaamera

Rakendamine

Meie assistent töötab vastavalt Alexa / Hub põhimõttele:
  1. Konkreetse sõna jaoks aktiveerige võrguühenduseta
  2. Tundke pilves meeskond ära
  3. Käsku täita
  4. Aruanne tehtud tööst või teave päringu kohta
Sest minu kaamerat toetatakse karbist välja, ma ei pidanud draiveritega jamama, seega läheme otse tarkvara juurde.

Võrguühenduseta aktiveerimine

Aktiveerimine toimub CMU Sphinxi abil ja kõik oleks korras, kuid kastist väljas on tuvastamine väga aeglane, üle 10 sekundi, mis on absoluutselt kohatu, et probleemi lahendamiseks peate sõnaraamatu tühjendama mittevajalikest sõnadest.

Installime kõik vajaliku:

Pip3 installige SpeechRecognition pip3 installige pocketsphinx
Edasi

Sudo nano /usr/local/lib/python3.4/dist-packages/speech_recognition/pocketsphinx-data/en-US /pronounciation-dictionary.dict
kustutage kõik, välja arvatud vajalik Jarvis:

Jarvis JH AA R V AH S
Pocketsphinx tunneb nüüd üsna kiiresti ära.

Kõnetuvastus

Alguses oli idee kasutada Google'i teenust, pealegi on selle tugi SpeechRecognitionis. Kuid nagu hiljem selgus, võtab Google selle jaoks raha ja ei tööta füüsilistega. isikute poolt.

Õnneks pakub Yandex ka sellist võimalust, mis on tasuta ja äärmiselt lihtne.

Registreerume, saame API KEY. Kogu töö saab teha lokkide abil.

Curl -X POST -H "Content-Type: audio / x-wav" --data-binaarne "@file" "https://asr.yandex.net/asr_xml?uuid=ya_uid&key=yf_api_key&topic=queries"

Kõnesüntees

Siin aitab Yandex meid uuesti. Saadame teksti vastuseks ja saame faili sünteesitud tekstiga

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"> fail

Jarvis

See kõik kokku pannes saame sellise stsenaariumi.

#! / usr / bin / env python # - * - kodeerimine: utf-8 - * - impordi os import kõne äratundmine kui sr from xml.dom import minidom import sys import random r = sr.Recognizer () ya_uuid = "" ya_api_key = "" # os.system ("echo" Assist + ent app + denied "| festival - tts - vene keel") def convert_ya_asr_to_key (): xmldoc = minidom.parse ("./ asr_answer.xml") itemlist = xmldoc.getElementsByTagName ("variant") if len (itemlist)> 0: tagastab itemlist.firstChild.nodeValue else: return False def jarvis_on (): allikaga sr.WavFile ("send.wav"): audio = r.record (source) proovige: t = r.tunnustada_sphinx (audio) print (t), välja arvatud LookupError: print ("Heli ei saanud aru") return t == ("jarvis") def jarvis_say (fraas): 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 =" + fraas + ""> jarvis_speech.wav " ) os.system ("aplay jarvis_speech.wav") def jarvis_say_good (): fraasid = ["Valmis", "Valmis", "Okei "," Jah "," Midagi muud? ",] Random = juhuslik.valik (fraasid) jarvis_say (randitem) proovige: samas True: os.system (" arecord -B --puhveraeg = 1000000 -f dat -r 16000 -d 3 -D plughw: 1.0 send.wav ") kui jarvis_on (): os.süsteem (" aplay jarvis_on.wav ") os.süsteem (" arecord -B --puhveraeg = 1000000 - f dat -r 16000 -d 3 -D plughw: 1,0 send.wav ") os.süsteem (" curl -X POST -H "Content-Type: audio / x-wav" --data-binaarne "@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 [' võtmesõna ", 'võtmesõna1', 'võtmesõna2"]): os.system (' ') jarvis_say_good () jätkub, välja arvatud Erand: jarvis_say ("Midagi läks valesti")
Mis siin toimub. Alustame lõputut tsüklit, kirjutame kolm sekundit arecord'om ja saadame sfinks tuvastamiseks, kui failist leitakse sõna "jarvis"

Kui jarvis_on ():
esitage eelsalvestatud aktiveerimisteatefail.

Jällegi kirjutame üles 3 sekundit ja saadame selle Yandexile, vastuseks saame oma käsu. Järgmisena sooritame toimingud käsu põhjal.

See on tegelikult kõik. Võite mõelda väga erinevatele teostusstsenaariumidele.

Kasutusjuhtum

Nüüd mõned näited minu tegelikust kasutamisest

Philipsi toon

Installige

Pip installi phue
Rakenduses Hue määrake staatiline IP:

Käivitamine:

#! / usr / bin / python impordib sys phue import Bridge'ist b = Bridge ("192.168.0.100") # Sisestage siia silla IP. #Kui esimest korda töötab, vajutage sillal nuppu ja käivitage b.connect () kommenteerimata # b.connect () print (b.get_scene ())
Kirjutame välja vajalike skeemide ID, näiteks "470d4c3c8-on-0"

Skripti lõplik versioon:

#! / usr / bin / python impordib sys phue import Bridge'ist b = Bridge ("192.168.0.100") # Sisestage siia silla IP. #Kui esimest korda töötab, vajutage silla nuppu ja käivitage b.connect () kommenteerimata # b.connect () if (sys.argv == "off"): b.set_light (, "on", False) muu: b.activate_scene (1, sys.argv)
Lisa jarvisesse:

Kui (käsuklahv [[tule sisselülitamine "," tule sisselülitamine "," valgus "]]): os.system (" python3 /home/pi/smarthome/hue/hue.py a1167aa91-on-0 ") jarvis_say_good () jätka, kui (käsuklahv [[hämaras valguses ",„ hämaras valguses "]]: os.system (" python3 /home/pi/smarthome/hue/hue.py ac637e2f0-on-0 ") jarvis_say_good () jätkub if (käsuvõti klahvis ["tulede kustutamine", "tulede kustutamine"]): os.system ("python3 /home/pi/smarthome/hue/hue.py" off "") jarvis_say_good () jätkata

LG teler

Võtame skripti siit. Pärast esimest käivitamist ja paaristamiskoodi sisestamist kood ise ei muutu, nii et saate selle osa skriptist välja lõigata ja jätta ainult juhtelemendi.

Lisa jarvisesse:

# 1 - POWER # 24 - VOLUNE_UP # 25 - VOLUME_DOWN # 400 - 3D_VIDEO if (käsuklahv [[teleri väljalülitamine ",„ teleri väljalülitamine "]): os.süsteem (" python3 / home / pi / smarthome / TV / tv2. Py 1 ") jarvis_say_good () jätka, kui (käsuklahv ['helitugevuse suurendamiseks", "valjemaks"]): os.system ("python3 /home/pi/smarthome/TV/tv2.py 24" ) jarvis_say_good () jätkata

Raadio

sudo apt-get install mpg123
Lisa jarvisesse:

Kui (käsuklahv jaotises ["uudised", "lülitage uudised välja", "mis toimub"]): jätkake os.system (‘mpg123 URL ')
Võite ka koduse silda panna ja kõike Siri kaudu juhtida, juhul kui te ei hüüa Jarvisele.

Mis puutub kõnetuvastuse kvaliteeti, siis loomulikult mitte Alexa, vaid kuni 5 meetri kaugusel on õigete tabamuste protsent korralik. Põhiprobleem on see, et telerist / kõlaritest pärit kõne salvestatakse koos käskudega ja see häirib äratundmist.

See on kõik, aitäh.

Sildid:

  • vaarika pi
  • püüton
Lisa märksõnu