Datora jarvis balss vadība. Tips - datora balss vadība


Ilgu laiku neesmu atstājis domu par savu “Džārvisu” un mājas aprīkojuma vadīšanu ar balsi. Un visbeidzot, mēs panācām šo brīnumu. Man nebija ilgi jādomā par "smadzenēm" Raspberry Pi ir ideāli piemērots.

Tātad, dzelzs:

  • Raspberry pi 3 modelis b
  • Logitech usb kamera

Īstenošana

Mūsu palīgs strādās pēc Alexa/Hub principa:
  1. Aktivizējiet bezsaistē, izmantojot noteiktu vārdu
  2. Atpazīstiet komandu mākonī
  3. Palaist komandu
  4. Ziņo par paveikto vai ziņo, pieprasot informāciju
Jo mana kamera tiek atbalstīta jau no komplektācijas, man nebija jājaucas ar draiveriem, tāpēc pāriesim tieši uz programmatūras daļu.

Aktivizēšana bezsaistē

Aktivizēšana notiks, izmantojot CMU Sphinx, un viss būtu kārtībā, bet ārpus kastes atpazīšana notiek ļoti lēni, vairāk nekā 10 sekundes, kas absolūti nav piemērots, lai atrisinātu problēmu, jums ir jāiztīra vārdnīca no nevajadzīgiem vārdiem.

Mēs uzstādām visu nepieciešamo:

Pip3 instalējiet SpeechRecognition pip3 instalējiet pocketsphinx
Tālāk

Sudo nano /usr/local/lib/python3.4/dist-packages/speech_recognition/pocketsphinx-data/en-US/pronounciation-dictionary.dict
mēs izdzēšam visu, izņemot nepieciešamo Jarvis:

Džārviss JH AA R V AH S
Tagad kabatas sfinkss to atpazīst diezgan ātri.

Runas atpazīšana

Sākumā bija doma izmantot Google pakalpojumu, turklāt tas tiek atbalstīts SpeechRecognition. Bet, kā izrādījās, Google par to ņem naudu un nedarbojas ar privātpersonām. personām.

Par laimi, Yandex arī nodrošina šo iespēju bez maksas un ārkārtīgi vienkārši.

Mēs reģistrējamies un saņemam API KEY. Visu darbu var veikt ar 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"

Runas sintēze

Šeit Yandex mums atkal palīdzēs. Mēs nosūtām tekstu atbildē un saņemam failu ar sintezētu tekstu

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

Džārviss

Mēs visu saliekam kopā un iegūstam šo skriptu.

#! /usr/bin/env python # -*-coding:utf-8-*- importēt os importēt runas_atpazīšanu kā sr no xml.dom importēt minidom importēt sys importēt nejauši r = sr.Recognizer() ya_uuid = "" ya_api_key = "" # os.system("echo "Assist+ent za+ushchen" |festival --tts --language russian") def convert_ya_asr_to_key(): xmldoc = minidom.parse("./asr_answer.xml") itemlist = xmldoc.getElementsByTagName ("variants") if len(itemlist) > 0: return itemlist.firstChild.nodeValue else: return False def jarvis_on(): ar sr.WavFile("send.wav") kā avotu: audio = r.record(source) mēģiniet: t = r.recognize_sphinx(audio) print(t), izņemot LookupError: print("Nevarēja saprast 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=" + fraze + "" > jarvis_speech.wav ) os.system("aplay jarvis_speech.wav") def jarvis_say_good(): phrases = ["Gatavs", "Gatavs", "Jā", "Vai ir", "Kas vēl?", ] randitem = random.choice ( frāzes) 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 "Satura veids: 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() turpināt, izņemot izņēmumu: jarvis_say("Kaut kas nogāja greizi")
Kas šeit notiek. Mēs sākam bezgalīgu cilpu, ierakstām trīs sekundes ar arecord’om un nosūtām sfinksu atpazīšanai, ja failā tiek atrasts vārds “jarvis”.

Ja jarvis_on():
atskaņot iepriekš ierakstīto aktivizācijas paziņojuma failu.

Atkal mēs ierakstām 3 sekundes un nosūtām to Yandex, atbildot uz mūsu komandu. Tālāk mēs veicam darbības, pamatojoties uz komandu.

Tas ir viss. Jūs varat izdomāt ļoti dažādus izpildes scenārijus.

Izmantot gadījumu

Tagad daži manas reālās izmantošanas piemēri

Philips Hue

Uzstādīt

Pip instalēšanas phue
Lietotnē Hue mēs iestatām statisku IP:

Sāksim:

#!/usr/bin/python import sys no phue import Bridge b = Bridge("192.168.0.100") # Šeit ievadiet tilta IP. #Ja darbojas pirmo reizi, nospiediet tilta pogu un palaidiet ar b.connect() bez komentāriem #b.connect() print (b.get_scene())
Mēs pierakstām nepieciešamo ķēžu ID, piemēram, “470d4c3c8-on-0”

Galīgais skripts:

#!/usr/bin/python import sys no phue import Bridge b = Bridge("192.168.0.100") # Šeit ievadiet tilta IP. #Ja darbojas pirmo reizi, nospiediet tilta pogu un palaidiet ar b.connect() bez komentāriem #b.connect() if (sys.argv == "off"): b.set_light(,"on", False) cits: b.activate_scene(1,sys.argv)
Jarvis mēs pievienojam:

Ja (command_key laukā ["ieslēgt gaismu", "ieslēgt gaismu", "gaisma"]): os.system("python3 /home/pi/smarthome/hue/hue.py a1167aa91-on-0") jarvis_say_good() turpināt, ja (command_key in ["aptumšo gaismu", "aptumšo gaismu"]): os.system("python3 /home/pi/smarthome/hue/hue.py ac637e2f0-on-0") jarvis_say_good( ) turpināt, ja (command_key in ["izslēgt gaismu", "izslēgt apgaismojumu"]): os.system("python3 /home/pi/smarthome/hue/hue.py "off") jarvis_say_good() turpināt

LG televizors

Ņemsim skriptu no šejienes. Pēc pirmās palaišanas un savienošanas koda ievadīšanas pats kods nemainās, tāpēc varat izgriezt šo daļu no skripta un atstāt tikai vadības daļu.

Jarvis mēs pievienojam:

#1 — POWER #24 — SKAĻUMS_UZAUGŠANU #25 — SKAĻUMS_SAMAZINĀJUMS #400 — 3D_VIDEO, ja (command_taustiņš ["izslēgt televizoru", "izslēgt televizoru"]): os.system("python3 /home/pi/smarthome/ TV/tv2. py 1") jarvis_say_good() turpināt, ja (command_key in ['palielināt skaļumu", "skaļāk"]): os.system("python3 /home/pi/smarthome/TV/tv2.py 24" ) jarvis_say_good() turpināt

Radio

sudo apt-get install mpg123
Jarvis mēs pievienojam:

Ja (command_key in ["ziņas", "izslēgt ziņas", "kas notiek"]): os.system('mpg123 URL") turpināt
Varat arī instalēt mājas tiltu un kontrolēt visu, izmantojot Siri, ja nevarat kliegt Džārvisam.

Runājot par runas atpazīšanas kvalitāti, tas, protams, nav Alexa, taču līdz 5 metru attālumā pareizo sitienu procentuālais daudzums ir pienācīgs. Galvenā problēma ir tā, ka runa no TV/skaļruņiem tiek ierakstīta kopā ar komandām un traucē atpazīšanu.

Tas arī viss, paldies.

Tagi:

  • aveņu pi
  • pitons
Pievienojiet atzīmes

Šodien mēs runāsim par mūsu runu. ES vēlu tev kontrolēt datoru ar balsi, neizmantojot pirkstus? Un, kā saka, ar domu spēku! Tiesa, ar domu spēku datoru nesavaldīsim, taču ar balss spēku tas ir pilnīgi iespējams.

Tipa programma ir viena no līdz šim labākajām programmām datora vadīšanai, izmantojot balsi. Vietnēs šīs programmas komentāros viedokļi saplūst.

Tiesa, tam ir savi trūkumi. Bet vairāk par to vēlāk. Starp citu, ja jūs interesē, izlasiet manu pārskatu.

Programmu var lejupielādēt šeit: http://freesoft.ru/type

Kā to izmantot? Vispirms palaidīsim to un apskatīsim galvenās vadības pogas:

Programma mūs sveic un nekavējoties sniedz padomus, kā lietot Typle. Vispirms noklikšķiniet uz pogas “pievienot” un pierakstiet vārdu, piemēram, “atvērt”. Lai to izdarītu, pasakiet mikrofonā šo vārdu:

Pēc tam noklikšķiniet uz pievienot. Tātad mēs ar balsi programmā saglabājām vārdu “Atvērt”. Jūs varat runāt jebkuru citu vārdu mikrofonā. Galvenais neapjukt.

Nākamais solis ir pievienot komandas. Lai to izdarītu, pāriesim uz šo punktu:

Pēc tam atzīmējam izvēles rūtiņu blakus vajadzīgajam vienumam:

Izvēlieties programmu, lietojumprogrammu vai darbību un noklikšķiniet uz sarkanās ierakstīšanas pogas. Ja dators ir pieņēmis mūsu balsi, noklikšķiniet uz “Pievienot”:

Un tagad viena balss komanda būs redzama mūsu profilā. Šajā gadījumā tas, kas atver 7-Zip:

Un tagad, noklikšķinot uz pēdējās pogas “sākt runāt”.

Mēs sakām frāzi "atvērt Seven Zip". Manā gadījumā viss darbosies. Un tiks atvērta 7-zip programma. Atcerieties šo frāzi: vienkārši atveriet sevi? Tas ir aptuveni tas pats.

Programma ne vienmēr darbojas atbilstoši. Tagad vareno krievu valodu lingvisti programmētāji nav pilnībā apguvuši... Bet tik un tā ir patīkami, kad dators tevi klausās.

Tāpēc testēšanai un banālai zinātkārei programma Typle ir 100% piemērota.

Šajā video varat redzēt pirmo balss dzinēju izveides vēsturi un pie kā vēl jāstrādā:

Ir tādi briesmīgi citu programmas analogu nosaukumi kā Gorynych, Perpetuum, Dictograph, Voice Commander. Bet viņi visi ir "nepareizi". Viņi neiztur kritiku par cienīgu programmu.

Man vajadzēja 5 minūtes, lai apgūtu šo programmu. Tas ir diezgan ilgs laiks (pārsvarā es saprotu šādas programmas 1-2 minūtēs). Ja ir kādi jautājumi, rakstiet. Uz drīzu tikšanos, draugi :)!

Lielākā daļa lietotāju zina, ka Siri sistēma tiek uzskatīta par populārāko personīgo palīgu un jautājumu un atbilžu tehnoloģiju iOS sīkrīkos. Par laimi Siri nav vienīgā tirgū pieejamā sistēma. Tādējādi Marvel radītās zinātniskās fantastikas un komiksu cienītājiem tiek piedāvāts personīgais asistents JARVIS no filmas “Dzelzs vīrs”.

Ja ierīces īpašnieks ir redzējis filmu “Dzelzs vīrs”, tad viņš droši vien pazīst Tonija Stārka sulaini, kura vārds ir Džārviss. Līdz ar to lietotājs varēs ķerties pie virtuālā kalpa palīdzības savā pārnēsājamajā ierīcē. Turklāt JARVIS programma ir unikāla attīstība, kas izmanto Jarvis varoņa balsi un tēlu.

JARVIS utilīta sākas ar parastajām audio instrukcijām norādītā rīka lietošanai un pārvaldīšanai. Kad iestatīšana ir pabeigta, lietotājam būs jānorāda savs dzimums (lai virtuālais palīgs varētu pareizi uzrunāt ierīces īpašnieku). Turklāt šeit jums būs jāiestata mērvienība pamata temperatūras apstākļiem (jo īpaši Kelvina, Fārenheita grādi vai, protams, Celsija).


Detalizētu norādījumu sarakstu var atrast, pieskaroties ikonai, kas atrodas displeja augšējā stūrī. Šajā gadījumā visām komandām noteikti jāsākas ar adresi “Jarvis” un parasti jāsatur viens vārds (piemēram, “Jarvis, laika prognoze”). JARVIS var arī informēt ierīces īpašnieku par turpmākajām sanāksmēm un parādīt pašreizējo laiku. Programmā var izveidot arī dažādus audio atgādinājumus.

Ir svarīgi atzīmēt, ka utilīta JARVIS nodrošina papildu iespējas optisko disku īpašniekiem ar grāvēju filmu “Dzelzs vīrs”. Piemēram, lietotājs var viegli kontrolēt atbilstošās filmas atskaņošanu, izmantojot šo virtuālo sulaini.


Noderīga informācija: ja uzdodat savam virtuālajam asistentam jautājumu: vai man vajadzētu pirkt BMW 740 (http://www.bmw-avtoport.ru/auto/7/), tad viņa atbilde ar simtprocentīgu varbūtību būs apstiprinoša! Starp citu, jau šobrīd vari iegādāties BMW septīto sēriju ar sev izdevīgākajiem nosacījumiem! Lai to izdarītu, jums tikai jāapmeklē vietne www.bmw-avtoport.ru.