Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Știri
  • Control vocal complet al computerului dvs. Control vocal și gestual pe computer

Control vocal complet al computerului dvs. Control vocal și gestual pe computer

O persoană m-a abordat cu o solicitare de a scrie un program care să-i permită să controleze un mouse de calculator folosind vocea sa. Atunci nici nu mi-am putut imagina că o persoană aproape complet paralizată, care nici măcar nu poate întoarce capul, ci poate doar să vorbească, este capabilă să dezvolte o activitate viguroasă, ajutându-se pe sine și pe alții să trăiască o viață activă, să dobândească noi cunoștințe și abilități, să muncească și să câștige bani, comunicați cu alte persoane din întreaga lume, participați la o competiție de proiecte sociale.

Permiteți-mi să dau aici câteva link-uri către site-uri, al căror autor și/sau inspirator ideologic este această persoană - Alexander Makarchuk din orașul Borisov, Belarus:

Pentru a lucra la computer, Alexander a folosit programul „Vocal Joystick”, dezvoltat de studenții de la Universitatea din Washington, finanțat de National Science Foundation (NSF). Vezi melodi.ee.washington.edu/vj

nu am putut rezista

Apropo, pe site-ul universității (http://www.washington.edu/) 90% dintre articole sunt despre bani. Este greu să găsești ceva despre munca științifică. Iată, de exemplu, fragmente de pe prima pagină: „Tom, absolvent de facultate, obișnuia să mănânce ciuperci și avea dificultăți în a-și plăti chiria. Acum este manager senior la o companie IT și împrumută bani unei universități”, „Big Data îi ajută pe cei fără adăpost”, „Compania s-a angajat să plătească 5 milioane de dolari pentru o nouă clădire academică.”

Sunt singurul care consideră asta enervant?


Programul a fost realizat în 2005-2009 și a funcționat bine pe Windows XP. În versiunile mai recente de Windows, programul se poate bloca, ceea ce este inacceptabil pentru o persoană care nu se poate ridica de pe scaun și îl repornește. Prin urmare, programul a trebuit refăcut.

Nu există texte sursă, există doar publicații individuale care dezvăluie tehnologiile pe care se bazează (MFCC, MLP - citiți despre asta în partea a doua).

Un nou program a fost scris în aceeași imagine (în trei luni).

De fapt, puteți vedea cum funcționează:

Puteți descărca programul și/sau vizualiza codurile sursă.

Nu trebuie să efectuați acțiuni speciale pentru a instala programul, doar faceți clic pe el și rulați-l. Singurul lucru este că în unele cazuri este necesar ca acesta să fie rulat ca administrator (de exemplu, atunci când lucrați cu tastatura virtuală „Comfort Keys Pro”):

Probabil că merită menționat aici și alte lucruri pe care le-am făcut anterior pentru a face posibilă operarea unui computer fără mâini.

Dacă aveți capacitatea de a întoarce capul, un giroscop montat pe cap poate fi o alternativă bună la eViacam. Veți obține o poziționare rapidă și precisă a cursorului și o independență față de iluminare.

Dacă puteți mișca doar pupilele ochilor, atunci puteți utiliza un instrument de urmărire a direcției privirii și un program pentru aceasta (acest lucru poate fi dificil dacă purtați ochelari).

Partea a II-a. Cum functioneazã?

Din materialele publicate despre programul Vocal Joystick, se știa că funcționează după cum urmează:
  1. Tăierea fluxului audio în cadre de 25 de milisecunde cu o suprapunere de 10 milisecunde
  2. Primirea a 13 coeficienți cepstrali (MFCC) pentru fiecare cadru
  3. Verificarea ca unul dintre cele 6 sunete stocate (4 vocale si 2 consoane) este pronuntat folosind un perceptron multistrat (MLP)
  4. Traducerea sunetelor găsite în mișcări/clicuri ale mouse-ului
Prima sarcină este notabilă doar prin faptul că, pentru a o rezolva în timp real, au trebuit introduse trei fire suplimentare în program, deoarece citirea datelor de la un microfon, procesarea sunetului și redarea sunetului printr-o placă de sunet au loc asincron.

Ultima sarcină este pur și simplu realizată folosind funcția SendInput.

Mi se pare că a doua și a treia problemă sunt de cel mai mare interes. Asa de.

Sarcina nr. 2. Obținerea a 13 coeficienți cepstrali

Dacă cineva nu știe, principala problemă a recunoașterii sunetelor de către un computer este următoarea: este dificil să compari două sunete, deoarece două unde sonore care sunt diferite ca contur pot suna similar din punctul de vedere al percepției umane.

Și printre cei implicați în recunoașterea vorbirii, există o căutare pentru „piatra filosofală” - un set de caracteristici care ar clasifica fără ambiguitate unda sonoră.

Dintre acele caracteristici care sunt disponibile publicului larg și descrise în manuale, cele mai utilizate pe scară largă sunt așa-numiții coeficienți cepstrali Mel-Frequency (MFCC).

Istoria lor este de așa natură încât au fost inițial destinate pentru ceva complet diferit, și anume, pentru a suprima ecoul în semnal (un articol educațional pe această temă a fost scris de respectații Oppenheim și Schafer, să fie bucurie în casele acestor oameni nobili. Vezi A. V. Oppenheim și R. W. Schafer, „De la Frequency la Quefrency: A History of the Cepstrum”.

Dar omul este conceput în așa fel încât să fie înclinat să folosească ceea ce îi este cel mai cunoscut. Și cei care au lucrat la semnale de vorbire au venit cu ideea de a folosi o reprezentare compactă gata făcută a semnalului sub formă de MFCC. S-a dovedit că, în general, funcționează. (Unul dintre prietenii mei, specialist în sisteme de ventilație, când l-am întrebat cum să facă o casă de vară, mi-a sugerat să folosească canale de ventilație. Pur și simplu pentru că le cunoștea mai bine decât alte materiale de construcție).

Sunt MFCC-urile un bun clasificator pentru sunete? nu as spune. Același sunet rostit de mine în microfoane diferite intră în diferite regiuni ale spațiului coeficienților MFCC, iar un clasificator ideal le-ar atrage unul lângă altul. Prin urmare, în special, atunci când schimbați microfonul, trebuie să reantrenați programul.

Aceasta este doar una dintre proiecțiile spațiului MFCC cu 13 dimensiuni în spațiul tridimensional, dar puteți vedea la ce vreau să spun - punctele roșii, violete și albastre sunt obținute de la diferite microfoane: (Plantronix, microfoane cu matrice încorporate, Jabra), dar sunetul a fost pronunțat singur.

Cu toate acestea, deoarece nu pot oferi nimic mai bun, voi folosi și metoda standard - calculul coeficienților MFCC.

Pentru a nu ne înșela în implementare, în primele versiuni ale programului a fost folosit ca bază codul din cunoscutul program CMU Sphinx, mai exact, implementarea acestuia în C, numită pocketsphinx, dezvoltat la Universitatea Carnegie Mellon ( pacea fie cu ei amândoi (c) Hottabych ).

Codurile sursă pocketsphinx sunt deschise, dar problema este că, dacă le folosești, trebuie să scrii text în programul tău (atât în ​​codul sursă, cât și în modulul executabil) care să conțină, printre altele, următoarele:

* Această lucrare a fost susținută parțial de finanțare de la Defense Advanced * Research Projects Agency și National Science Foundation din * Statele Unite ale Americii și CMU Sphinx Speech Consortium.
Acest lucru mi s-a părut inacceptabil și a trebuit să rescriu codul. Acest lucru a afectat performanța programului (în bine, de altfel, deși „lizibilitatea” codului a suferit oarecum). În mare parte datorită utilizării bibliotecilor „Intel Performance Primitives”, dar am optimizat și eu unele lucruri, cum ar fi filtrul MEL. Cu toate acestea, testarea datelor de testare a arătat că coeficienții MFCC obținuți sunt complet similari cu cei obținuți folosind, de exemplu, utilitarul sphinx_fe.

În programele sphinxbase, calculul coeficienților MFCC se realizează în următorii pași:

Etapa funcția sfinxbase Esența operației
1 fe_pre_emphasis Cea mai mare parte a citirii anterioare este scăzută din citirea curentă (de exemplu, 0,97 din valoarea acesteia). Un filtru primitiv care respinge frecvențele joase.
2 fe_hamming_window Fereastră Hamming – introduce atenuarea la începutul și la sfârșitul cadrului
3 fe_fft_real Transformare rapidă Fourier
4 fe_spec2magnitude Din spectrul obișnuit obținem spectrul de putere, pierzând faza
5 fe_mel_spec Grupăm frecvențele spectrului [de exemplu, 256 de bucăți] în 40 de grămezi, folosind scara MEL și coeficienții de ponderare
6 fe_mel_cep Luăm logaritmul și aplicăm transformarea DCT2 la cele 40 de valori din pasul anterior.
Lăsăm primele 13 valori ale rezultatului.
Există mai multe variante de DCT2 (HTK, legacy, clasic), care diferă prin constanta prin care împărțim coeficienții rezultați și o constantă specială pentru coeficientul zero. Puteți alege orice opțiune, nu va schimba esența.

Acești pași includ, de asemenea, funcții care vă permit să separați semnalul de zgomot și de liniște, cum ar fi fe_track_snr, fe_vad_hangover, dar nu avem nevoie de ele și nu vom fi distrași de ei.

S-au făcut următoarele înlocuiri pentru etapele de obținere a coeficienților MFCC:

Sarcina nr. 3. Verificarea ca unul dintre cele 6 sunete memorate este pronuntat

Programul original Vocal Joystick a folosit un perceptron multistrat (MLP) pentru clasificare - o rețea neuronală fără clopote și fluiere noi.

Să vedem cât de justificată este utilizarea unei rețele neuronale.

Să ne amintim ce fac neuronii în rețelele neuronale artificiale.

Dacă un neuron are N intrări, atunci neuronul împarte spațiul N-dimensional la jumătate. Taie reversul cu un hiperplan. Mai mult, intr-o jumatate din spatiu functioneaza (da un raspuns pozitiv), dar in cealalta nu merge.

Să ne uităm la opțiunea [practic] cea mai simplă - un neuron cu două intrări. Va împărți în mod natural spațiul bidimensional în jumătate.

Fie intrarea valorilor X1 și X2, pe care neuronul le înmulțește cu coeficienții de ponderare W1 și W2 și adaugă termenul liber C.


În total, la ieșirea neuronului (să-l notăm Y) obținem:

Y=X1*W1+X2*W2+C

(să sărim peste subtilitățile despre funcțiile sigmoide pentru moment)

Considerăm că neuronul se declanșează când Y>0. Linia dreaptă dată de ecuația 0=X1*W1+X2*W2+C împarte exact spațiul într-o parte în care Y>0 și o parte în care Y<0.

Să ilustrăm ceea ce s-a spus cu numere specifice.

Fie W1=1, W2=1, C=-5;

Acum să vedem cum putem organiza o rețea neuronală care să funcționeze într-o anumită zonă a spațiului, relativ vorbind, un loc, și să nu funcționeze în toate celelalte locuri.

Din figură se poate observa că pentru a contura o zonă în spațiu bidimensional avem nevoie de cel puțin 3 linii drepte, adică 3 neuroni conectați la acestea.

Vom combina acești trei neuroni împreună folosind un alt strat, obținând o rețea neuronală multistrat (MLP).

Și dacă avem nevoie ca rețeaua neuronală să funcționeze în două zone ale spațiului, atunci vom avea nevoie de cel puțin încă trei neuroni (4,5,6 în figuri):

Și aici nu te poți descurca fără un al treilea strat:

Iar al treilea strat este aproape Deep Learning...

Acum să ne întoarcem la un alt exemplu pentru ajutor. Lăsați rețeaua noastră neuronală să producă un răspuns pozitiv pe punctele roșii și un răspuns negativ pe punctele albastre.

Dacă mi s-ar cere să tai roșu din albastru în linii drepte, aș face așa ceva:

Dar rețeaua neuronală nu știe a priori de câți direcți (neuroni) va avea nevoie. Acest parametru trebuie setat înainte de antrenamentul rețelei. Și o persoană face asta pe baza... intuiției sau încercări și erori.

Dacă selectăm prea puțini neuroni în primul strat (trei, de exemplu), putem obține o tăietură ca aceasta, care va da o mulțime de erori (zona eronată este umbrită):

Dar chiar dacă numărul de neuroni este suficient, ca urmare a antrenamentului, rețeaua poate „nu reuși să converge”, adică să atingă o stare stabilă care este departe de a fi optimă, atunci când procentul de erori este mare. Ca și aici, bara transversală de sus se sprijină pe două cocoașe și nu se va îndepărta de ele. Și dedesubt există o zonă mare care generează erori:

Din nou, posibilitatea unor astfel de cazuri depinde de condițiile inițiale de antrenament și de succesiunea antrenamentului, adică de factori aleatori:

- Ce crezi, acea roată, dacă s-ar întâmpla, ar ajunge sau nu la Moscova?
- Ce crezi, rețeaua neuronală va funcționa sau nu?

Există un alt moment neplăcut asociat rețelelor neuronale. „Uitarea” lor.

Dacă începeți să alimentați rețeaua doar puncte albastre și nu mai alimentați cu cele roșii, atunci poate lua cu ușurință o bucată din zona roșie pentru sine, mutându-și granițele acolo:

Dacă rețelele neuronale au atât de multe deficiențe și o persoană poate desena limite mult mai eficient decât o rețea neuronală, atunci de ce să le folosești?

Și există un detaliu mic, dar foarte semnificativ.

Pot separa foarte bine inima roșie de fundalul albastru cu segmente de linie dreaptă în spațiu bidimensional.

Pot separa destul de bine statuia lui Venus de spațiul tridimensional care o înconjoară cu avioane.

Dar în spațiul cu patru dimensiuni nu pot face nimic, îmi pare rău. Și în a 13-a dimensiune - cu atât mai mult.

Dar pentru o rețea neuronală, dimensiunea spațiului nu este un obstacol. Am râs de ea în spații de dimensiuni mici, dar de îndată ce am trecut dincolo de obișnuit, m-a bătut ușor.

Cu toate acestea, întrebarea este încă deschisă: cât de justificată este utilizarea unei rețele neuronale în această sarcină specială, ținând cont de dezavantajele rețelelor neuronale enumerate mai sus.

Să uităm pentru o secundă că coeficienții noștri MFCC sunt în spațiul cu 13 dimensiuni și să ne imaginăm că sunt bidimensionali, adică puncte de pe un plan. Cum se poate separa un sunet de altul în acest caz?

Fie punctele MFCC ale sunetului 1 să aibă o abatere standard R1, ceea ce înseamnă [aproximativ] că punctele care nu se abat prea mult de la medie, punctele cele mai caracteristice, sunt în interiorul unui cerc cu raza R1. La fel, punctele în care avem încredere în sunetul 2 sunt situate în interiorul unui cerc cu raza R2.

Atenție, întrebare: unde să tragem o linie dreaptă care ar separa cel mai bine sunetul 1 de sunetul 2?

Răspunsul se sugerează de la sine: la mijloc între limitele cercurilor. Obiecții? Fara obiectii.
Corecţie:În program, această limită împarte segmentul care conectează centrele cercurilor în raportul R1:R2, care este mai corect.

Și, în sfârșit, să nu uităm că undeva în spațiu există un punct care reprezintă liniștea completă în spațiul MFCC. Nu, nu sunt 13 zerouri, așa cum ar părea. Acesta este un punct care nu poate avea o abatere standard. Și liniile drepte cu care îl tăiem de la cele trei sunete ale noastre pot fi trasate direct de-a lungul limitelor cercurilor:

În figura de mai jos, fiecare sunet corespunde unei bucăți de spațiu de culoarea sa și putem spune întotdeauna cărui sunet îi aparține un anumit punct din spațiu (sau nu îi aparține niciunuia):

Ei bine, acum să ne amintim că spațiul are 13 dimensiuni, iar ceea ce era bine să desenezi pe hârtie acum se dovedește a fi ceva care nu se potrivește în creierul uman.

Da, dar nu așa. Din fericire, în spațiul oricărei dimensiuni rămân concepte precum un punct, o linie dreaptă, un [hiper]plan, o [hiper]sferă.

Repetăm ​​toate aceleași acțiuni în spațiul de 13 dimensiuni: găsim dispersia, determinăm razele [hiper]sferelor, legăm centrii cu o linie dreaptă, o tăiem cu un [hiper]plan într-un punct la fel de îndepărtat de limitele [hiper]sferelor.

Nicio rețea neuronală nu poate separa mai corect un sunet de altul.

Aici, însă, ar trebui făcută o rezervă. Toate acestea sunt adevărate dacă informația despre sunet este un nor de puncte care se abate de la medie în mod egal în toate direcțiile, adică se încadrează bine în hipersferă. Dacă acest nor ar fi o figură complexă, de exemplu, un cârnați curbat cu 13 dimensiuni, atunci toate argumentele de mai sus ar fi incorecte. Și poate, cu o pregătire adecvată, rețeaua neuronală și-ar putea arăta punctele forte aici.

Dar nu aș risca. Și aș folosi, de exemplu, seturi de distribuții normale (GMM), (care, apropo, se face în CMU Sphinx). Este întotdeauna mai plăcut când înțelegeți ce algoritm specific a condus la rezultat. Nu ca într-o rețea neuronală: Oracle, bazat pe multele sale ore de amestecare a datelor de antrenament, vă spune să decideți că sunetul solicitat este sunetul numărul 3. (Ma deranjează mai ales când încearcă să încredințeze controlul unei mașini unei rețele neuronale. Cum atunci, într-o situație neobișnuită, se poate înțelege de ce mașina a virat la stânga și nu la dreapta? A comandat Atotputernicul Neuron?).

Dar seturile de distribuții normale sunt un subiect mare separat, care depășește domeniul de aplicare al acestui articol.

Sper că articolul a fost util și/sau ți-a făcut creierul să scârțâie.

Recunoașterea vorbirii este un instrument Windows simplu și bogat în funcții, care vă permite să vă controlați computerul folosind comenzi vocale.

Puteți personaliza această funcție pentru navigare, lansarea aplicațiilor, dictarea textului și multe alte sarcini. Cu toate acestea, recunoașterea vorbirii este destinată în primul rând persoanelor cu dizabilități care nu pot folosi mouse-ul sau tastatura.

În acest ghid, vă oferim pași pentru configurarea și operarea funcției de recunoaștere a vorbirii, astfel încât să vă puteți controla computerul doar cu vocea.

Din păcate, acest instrument, precum Cortana, este foarte limitat în regiunea noastră.

Cu toate acestea, puteți modifica unele setări ale computerului. Pentru a face acest lucru, urmați acești pași:


Important! Pentru ca totul să funcționeze corect, trebuie să utilizați un cont Microsoft, nu unul local! Dacă aveți instalată o versiune într-o singură limbă a sistemului (faceți clic dreapta pe „Acest PC” și apoi pe „Proprietăți”), atunci nu veți putea folosi Cortana sau un instrument complet de recunoaștere a vorbirii!

Pentru comoditate, toate acțiunile sunt traduse în rusă și însoțite de capturi de ecran corespunzătoare în engleză. O modalitate mai radicală, dacă toate celelalte nu reușesc, este să instalați Windows pentru SUA.

Urmați acești pași:

  1. Deschide Panoul de control.

  2. Găsiți „Accesibilitate”.

  3. Faceți clic pe linkul „Începeți recunoașterea vorbirii”.

    Important! Aici utilizatorii noștri se confruntă cu o problemă, așa că faceți clic pe linkul din stânga „Text to Speech” și accesați direct secțiunea din acest articol despre cum să schimbați setările de recunoaștere a vorbirii. Dacă aveți o interfață de sistem în limba engleză, atunci nu ezitați să continuați să urmați pașii, însoțiți de capturi de ecran în limba engleză.

  4. În pagina Setări, faceți clic pe Următorul.
  5. Selectați tipul de microfon pe care îl veți folosi.

    Notă! Microfoanele de birou nu sunt ideale, așa că Microsoft recomandă utilizarea unui microfon extern sau a unei căști dedicate.

  6. Faceți clic pe Următorul. Repetați acțiunea.

  7. Pentru a verifica funcționalitatea instrumentului, citiți textul cu voce tare. Faceți clic pe Următorul. Repetați acțiunea.

  8. Recunoașterea vorbirii are acces la documente și e-mailuri. Acest lucru este pentru a îmbunătăți acuratețea recunoașterii pe baza cuvintelor pe care le utilizați. Selectați opțiunea Activați vizualizarea documentelor sau dezactivați-o dacă aveți probleme legate de confidențialitate. Faceți clic pe Următorul.

  9. Selectați modul de activare: utilizați „Modul de activare manuală” - recunoașterea vorbirii dezactivează comanda „Opriți ascultarea”. Pentru a-l reporni, trebuie să apăsați butonul microfonului sau să utilizați combinația de taste Ctrl + Win; sau „Activare vocală ». Instrumentul de recunoaștere intră în modul de repaus atunci când nu este utilizat. Pentru a-l reporni, trebuie să apelați comanda vocală „Începeți ascultarea”. Faceți clic pe Următorul.

  10. Pentru a afla mai multe despre comenzile vocale pe care le puteți utiliza, faceți clic pe butonul Vizualizare ajutor. Faceți clic pe Următorul.

  11. Opțional, puteți selecta opțiunea „Porniți automat recunoașterea vorbirii”. Faceți clic pe Următorul.

  12. Pentru a accesa ghidul de instruire Microsoft, faceți clic pe butonul „Începeți antrenamentul” sau selectați „Omiteți”. În cele din urmă vei finaliza configurarea.

După parcurgerea acestor pași, puteți începe să utilizați recunoașterea vorbirii folosind comenzi vocale. Comenzile vor apărea în partea de sus a ecranului.

Notă! Puteți trage și conecta interfața de recunoaștere a vorbirii oriunde pe ecran.

Cum să antrenezi recunoașterea vorbirii și să îmbunătățești acuratețea

După finalizarea procesului de formare, instrumentul de recunoaștere a vorbirii ar trebui să aibă o mai bună înțelegere a vocii tale.

Cum să modificați setările de recunoaștere a vorbirii

Dacă trebuie să modificați orice setări, urmați acești pași:

Pasul 1. Deschide Panoul de control.

Pasul 2. Faceți clic pe Accesibilitate.

Pasul 3. Selectați Recunoașterea vorbirii.

Pasul 4. Faceți clic pe linkul text pentru mai multe opțiuni de vorbire în panoul din stânga.

Pasul 5.În fereastra de proprietăți, sub fila Recunoaștere vorbire, puteți configura diverse componente ale funcției, inclusiv:

Pasul 6.În fila Text to Speech, puteți gestiona setările de voce, inclusiv:

Pasul 7În plus, puteți oricând să faceți clic dreapta pentru a deschide meniul contextual și a accesa toate caracteristicile și setările diferite ale instrumentului de recunoaștere a vorbirii.

Cum se utilizează recunoașterea vorbirii în Windows 10

Deși există o curbă mică de învățare, recunoașterea vorbirii folosește comenzi clare și ușor de reținut. De exemplu, „Start” deschide meniul corespunzător, iar „Afișare desktop” minimizează toate ferestrele.

Cu ajutorul recunoașterii vorbirii, puteți efectua sarcinile necesare.

Lansarea instrumentului de recunoaștere a vorbirii


Porniți și opriți

Pentru a utiliza această funcție, în funcție de configurația dvs., apăsați butonul microfonului sau spuneți „Începeți ascultarea”.

În același mod, îl puteți opri spunând „Stop” sau apăsând butonul microfonului.

Utilizarea comenzilor

Unele dintre cele mai frecvent utilizate comenzi sunt:

  • "Deschis" (Deschis)- lansează aplicația după rostirea cuvântului „Deschide” urmat de numele aplicației. De exemplu, „Open Mail” sau „Open Firefox”;
  • "Schimba cu" (Schimba cu)- comutați la o altă aplicație care rulează. Spuneți „Switch” urmat de numele aplicației. De exemplu, „Comutați la Microsoft Edge”;
  • controlul ferestrei deschise. Pentru a gestiona fereastra activă, utilizați comenzile Minimizare, Maximizare și Restaurare;
  • Sul. Vă permite să derulați pagina. Pur și simplu utilizați comanda „Derulați în jos” sau „Derulați în sus” sau „Derulați spre stânga” sau „Derulați spre dreapta”. De asemenea, puteți specifica un defilare lung. De exemplu, spuneți: „Derulați în jos două pagini”;
  • închiderea aplicațiilor (Închidere). Rostiți comanda „Închidere” urmată de numele aplicației care rulează. De exemplu, „Cuvânt închis”;
  • clicuri.În cadrul aplicației, puteți utiliza comanda „Click” urmată de numele elementului. De exemplu, în Word, puteți spune „Click Layout” și recunoașterea vorbirii va deschide fila Layout. În mod similar, puteți utiliza comenzile „Dublu clic” sau „Clic dreapta”;
  • apăsare (apăsare). Această comandă lansează taste rapide. De exemplu, pentru a deschide Centrul de acțiuni, spuneți „Apăsați pe Windows A”.

Folosind dictarea

Recunoașterea vorbirii include și capacitatea de a converti vocea în text folosind funcția de dictare și funcționează automat.


Asistentul Microsoft a.k.a Cortana

Pentru a satisface așteptările utilizatorilor și pentru a demonstra competitivitatea față de companii precum Apple, Google sau Amazon, Microsoft și-a introdus propriul asistent inteligent, Cortana.

În primele etape, a fost considerat unul dintre cei mai buni asistenți artificiali, dar și-a pierdut statutul după ce a pierdut versiunea mobilă în fața Microsoft în lupta cu Android și iOS. Totuși, aici vorbim despre Windows 10, așa că Cortana este încă un instrument viabil.

Sperăm că se va îmbunătăți în timp. Cortana este util dacă doriți să porniți computerul fără comenzi vocale.

Iată cum să îl activați și să îl configurați pentru o utilizare ulterioară pe Windows 10:

  1. Faceți clic pe Start și deschideți Toate aplicațiile.

  2. Găsiți Cortana și deschideți-o.

  3. Debifați comutatorul „Utilizați Cortana”. Atingeți Da sau Nu Mulțumesc, în funcție de dacă doriți ca asistentul vocal să vă urmărească datele (astfel încât să vă cunoască mai bine) sau nu.

  4. Acum că ați pornit Cortana, apăsați pe „Windows + S” sau faceți clic pe roata din stânga.
  5. Porniți Hei Cortana și configurați-vă microfonul. Puteți lăsa asistentul să răspundă atunci când cineva spune „Hei Cortana” sau îl puteți forța să răspundă doar la comenzile dvs. vocale.

  6. Ieșiți din Setări și cereți ceva asistentului digital.

  7. Căutați pe Internet o listă de comenzi și sarcini disponibile pe care Cortana le poate efectua.

Video - Cum să activați Microsoft Cortana pe Windows 10

Colecție de programe terțe

Pe lângă instrumentul de recunoaștere a vorbirii încorporat și asistentul vocal Cortana, unii utilizatori pot apela la o alternativă terță parte. Întrucât această categorie de software este în continuă evoluție, există pe piață diverse produse care sunt compatibile cu Windows 10. Singura întrebare sunt nevoile și dorințele dumneavoastră.

Unele dintre programe precum:

  • Typle este un program excelent pentru control vocal pe un computer, o interfață simplă în limba rusă;
  • Dragon de la producătorul Nuance, specializat în dictare rapidă și, în general, conversie vorbire în text;
  • Voice Attack, conceput pentru controlul vocal al jocului (da, puteți reîncărca armele în Call of Duty folosind o comandă vocală);
  • Un alt utilitar bun este VoxCommando. Cel mai des folosit în programe multimedia precum Kodi sau iTunes, dar poate fi util și la automatizarea dispozitivelor de acasă.

Control vocal al computerului folosind programul Typle

  1. Descărcați programul și instalați-l pe computer, urmând instrucțiunile programului de instalare.

  2. Interfața programului este simplă și intuitivă. La salut, fereastra programului conține indicii pentru utilizator. Pentru a începe, faceți clic pe butonul „Adăugați”.

  3. În fereastra care se deschide, introduceți numele dvs. în câmp, apoi introduceți o comandă, apoi faceți clic pe butonul de înregistrare și rostiți comanda vocal. Faceți clic pe butonul „Adăugați”.

  4. Faceți clic pe butonul „Adăugați”.

  5. Bifați caseta de lângă articolul solicitat. Selectați un program, apăsați butonul roșu și rostiți această comandă cu voce tare. Apoi faceți clic pe „Adăugați”.

  6. Veți vedea comanda creată, pentru a o testa, faceți clic pe „Începeți să vorbiți” și spuneți această comandă. Dacă totul funcționează la fel, adăugați comenzile rămase.

Încercați TalkTyper

Este o aplicație online care vă permite să dictați text și apoi vă oferă câteva opțiuni de bază pentru ce să faceți cu el. Fanilor minimalismului le va plăcea cu siguranță.


Puteți copia ceea ce citiți în clipboard, e-mail, imprimați, tweet și traduceți într-o altă limbă. Pentru a traduce text, faceți clic pe butonul și selectați limba de traducere. TalkTyper va deschide automat o filă nouă în browser cu textul pe care l-ați lipit în Google Translate.

Fii atent la Tazti

Tazti se remarcă printre alte programe cu două caracteristici distinctive:

  • puteți folosi aplicația pentru a vă controla computerul și jocurile folosind comenzi vocale. Iar dacă Tazti nu are comanda de care aveți nevoie, puteți crea una (și încă 299);
  • programul este capabil să lanseze aplicații instalate, site-uri web, directoare sau să folosească linia de comandă.

Personalizați Tazti așa cum doriți. Dacă nu aveți nevoie de comandă, atunci editați-o sau eliminați-o complet. Puteți chiar să adăugați comenzi de clic și dublu clic pentru a elimina necesitatea unui mouse.

Cu toate acestea, Tazti are un mare dezavantaj - nu are funcționalitate de dictare a textului, deci nu este capabil de recunoaștere a vocii. Dezvoltatorul Voice Tech Group recunoaște că alte produse sunt mult mai bune la dictare, așa că compania a decis să-și concentreze toate eforturile pe alte caracteristici ale creației sale.

Tazti se adresează mai mult jucătorilor care doresc să-și folosească vocea pentru a trimite personaje în luptă sau celor care preferă să lanseze programe, playere media și să navigheze pe web fără a fi nevoie de o tastatură. Faptul că poți controla părți importante ale Windows folosind Tazti îl face un adversar demn pentru aplicațiile menționate mai sus, chiar dacă nu oferă dictare.

Important! Programul are o perioadă de probă de 15 zile. După aceea trebuie să plătiți 40 de dolari.

Deci, dacă recunoașterea vorbirii sau Cortana nu vă satisfac nevoile (sau pur și simplu nu le puteți utiliza), atunci încercați utilitatile de mai sus.

Video - Prezentare generală a programului tip

Ce geek nu visează să controleze un computer de pe canapea folosind doar gesturi și comenzi vocale? Destul de ciudat, dar acest lucru este deja posibil. Și în viitorul foarte apropiat, fiecare a doua persoană își va flutura mâinile în fața monitorului. Articolul discută mai multe metode și perspective imediate.

Control vocal pe Windows

Să începem cu software-ul gratuit care vă permite să vă controlați computerul folosind vorbirea rusă. Va fi posibil să îl convingeți să deschidă programe, să efectueze unele acțiuni și așa mai departe. Și mâinile tale vor fi libere pentru chestiuni mai importante.

Tip

Acest program este liderul dintre programele care vă permit să comandați un computer în limba rusă maternă. După instalare, va trebui să creați un utilizator și să veniți cu un cuvânt cheie precum „Ok, Windows”, deși ni se recomandă să folosim cuvântul „Deschidere”. Aici începem să vorbim, există o implementare familiară în Google Glasses.

Apoi selectăm comenzi pentru utilizator. Puteți adăuga doar lansarea unor programe, iar când faceți clic, puteți selecta suplimentar un program și adăugați un argument. Poate că dacă adăugați ceva la lansarea programului, vor exista acțiuni. Dar, în general, utilizatorul obișnuit nu va putea controla complet computerul, fără pauze sau piesa următoare, doar porniți și porniți.

Control prin gesturi pe un computer

Încă de la apariția camerei PlayStation®Eye și a kinectului, oamenii și-au dorit aceleași funcții pe computer. Mai târziu, Kinect a fost chiar vândut dezvoltatorilor, dar un astfel de produs nu a fost anunțat pentru utilizatorul general. Și există chiar și vești că Kinect 2.0 cu Xbox One nu va funcționa pe computer, dar va fi lansată o versiune specială de Kinect pentru PC. Adevărat, fără software-ul adecvat este de puțin folos. Deci, să trecem la software-ul în sine.

Cea mai populară și accesibilă modalitate de a controla gesturile este programul Flutter și extensia Chrome corespunzătoare. Aproape orice cameră web va funcționa cu acest program.

Destul de multe funcții, dar funcționează foarte bine. Putem face o pauză și continuă să ne arătăm palma. Comutați melodiile sau videoclipurile la stânga sau la dreapta, în funcție de locul în care arătați cu degetul. Programul funcționează în PowerPoint, VLC, Winamp, iTunes, YouTube și câteva alte servicii pe care puțini oameni le folosesc.

Pentru o funcționare corectă, este indicat să fii la distanță de camera web, dar nu la întâmplare. Întinsul întins se dovedește a fi mult mai puțin controlabil decât stând în picioare. Personal, îl folosesc pe YouTube doar când am mâinile murdare, este destul de convenabil sau când ești întins. Nu au existat încă mișcări aleatorii. Dar există încă greșeli atunci când stai și fluturi mâinile în fața monitorului ca un complet idiot.

Cu siguranță Flutter va primi în curând suport complet pentru Chrome, deoarece startup-ul a fost cumpărat de Google în octombrie 2013.

Mișcare de salt

Să trecem de la software la dispozitive. Leap Motion inspiră încredere prin dimensiunea redusă și cantitatea sa de potențial. Acest lucru detectează mâinile utilizatorului, sau mai bine zis, chiar și fiecare deget. Magazinul tău cu o grămadă de aplicații și jocuri nu te lasă să te plictisești. Și cel mai important, este deja la vânzare și costă aproximativ 5.000 de ruble. Nu prea mult pentru o asemenea magie.

Dar, de fapt, aici există multe dezavantaje. Au fost discuții pe hub și chiar părerea unuia dintre utilizatori. Ar trebui să ții întotdeauna mâinile cu încheietura sus deasupra dispozitivului, crezi că este ușor? Țineți 5 minute.

În ceea ce privește aplicațiile, există și un mare minus că toate cele gratuite sunt bugate și se blochează. Și jocurile sunt o grămadă de excursii LSD de neînțeles. Și este incomod de controlat, precizia are loc în direcția opusă și fiecare mișcare incorectă a mâinii duce la o consecință neprevăzută.

Și driverul pentru Leap Motion în sine vă va consuma aproape toate resursele de pe computer. Dar dacă asta nu te oprește, atunci cumpără, ca întotdeauna, de la birou. site-ul web. Este chiar și în rusă.

DUO 3D

Există și tehnologie similară de la dezvoltatorii ruși. Pur și simplu au luat două camere oculare, au scris software și au început o companie pe Kickstarter. Din păcate, a fost un eșec. Am strâns 62.000 USD din 110.000 USD planificați. Este păcat, mai ales că nici măcar nu vor primi acești bani, deoarece trebuie strâns totul pentru a ajunge.

Acum, dispozitivele sunt chiar disponibile gratuit, dar sperăm că astfel de evoluții ale oamenilor noștri nu vor dispărea pur și simplu.

Mio

Haide, cine nu a auzit de Myo. O brățară care detectează gesturile nu folosind o cameră, ca concurenții săi, ci recunoașterea mișcărilor musculare. Videoclipul frumos și caracteristicile uimitoare au captivat pe toată lumea, chiar și pe mine. Imediat ce brățara va fi la vânzare, aplicațiile și toate integrările vor fi cunoscute, vor apărea recenzii, apoi voi cumpăra acest lucru minunat.

Acum brățara poate fi precomandată pentru 150 USD, dar mi-e teamă să iau versiunea brută.

Controlul computerului de la o cameră web pe laptopuri

În zilele noastre, producătorilor de laptopuri le place să experimenteze comenzile prin gesturi. Compania PointGrab a făcut progrese în acest subiect, arta lor conceptuală este destul de optimistă.

Acer folosește produsele acestei companii. Și Lenovo își va face propriul Motion Control 2.0 pe baza acestor evoluții.

Și în septembrie 2013, Intel a anunțat noi laptop-uri cu control vocal, control prin gesturi și atingere, iar înainte de asta, în vară, compania a achiziționat startup-ul israelian Omek.

Să vedem ce iese din toate astea. În ultima vreme am avut sentimentul etern că viitorul este aproape și este de câțiva ani. Îmi puteți completa materialul cu cunoștințele dvs. Există și alte dispozitive sau metode care merită menționate?

O persoană m-a abordat cu o solicitare de a scrie un program care să-i permită să controleze un mouse de calculator folosind vocea sa. Atunci nici nu mi-am putut imagina că o persoană aproape complet paralizată, care nici măcar nu poate întoarce capul, ci poate doar să vorbească, este capabilă să dezvolte o activitate viguroasă, ajutându-se pe sine și pe alții să trăiască o viață activă, să dobândească noi cunoștințe și abilități, să muncească și să câștige bani, comunicați cu alte persoane din întreaga lume, participați la o competiție de proiecte sociale.

Permiteți-mi să dau aici câteva link-uri către site-uri, al căror autor și/sau inspirator ideologic este această persoană - Alexander Makarchuk din orașul Borisov, Belarus:

Pentru a lucra la computer, Alexander a folosit programul „Vocal Joystick”, dezvoltat de studenții de la Universitatea din Washington, finanțat de National Science Foundation (NSF). Vezi melodi.ee.washington.edu/vj

nu am putut rezista

Apropo, pe site-ul universității (http://www.washington.edu/) 90% dintre articole sunt despre bani. Este greu să găsești ceva despre munca științifică. Iată, de exemplu, fragmente de pe prima pagină: „Tom, absolvent de facultate, obișnuia să mănânce ciuperci și avea dificultăți în a-și plăti chiria. Acum este manager senior la o companie IT și împrumută bani unei universități”, „Big Data îi ajută pe cei fără adăpost”, „Compania s-a angajat să plătească 5 milioane de dolari pentru o nouă clădire academică.”

Sunt singurul care consideră asta enervant?


Programul a fost realizat în 2005-2009 și a funcționat bine pe Windows XP. În versiunile mai recente de Windows, programul se poate bloca, ceea ce este inacceptabil pentru o persoană care nu se poate ridica de pe scaun și îl repornește. Prin urmare, programul a trebuit refăcut.

Nu există texte sursă, există doar publicații individuale care dezvăluie tehnologiile pe care se bazează (MFCC, MLP - citiți despre asta în partea a doua).

Un nou program a fost scris în aceeași imagine (în trei luni).

De fapt, puteți vedea cum funcționează:

Puteți descărca programul și/sau vizualiza codurile sursă.

Nu trebuie să efectuați acțiuni speciale pentru a instala programul, doar faceți clic pe el și rulați-l. Singurul lucru este că în unele cazuri este necesar ca acesta să fie rulat ca administrator (de exemplu, atunci când lucrați cu tastatura virtuală „Comfort Keys Pro”):

Probabil că merită menționat aici și alte lucruri pe care le-am făcut anterior pentru a face posibilă operarea unui computer fără mâini.

Dacă aveți capacitatea de a întoarce capul, un giroscop montat pe cap poate fi o alternativă bună la eViacam. Veți obține o poziționare rapidă și precisă a cursorului și o independență față de iluminare.

Dacă puteți mișca doar pupilele ochilor, atunci puteți utiliza un instrument de urmărire a direcției privirii și un program pentru aceasta (acest lucru poate fi dificil dacă purtați ochelari).

Partea a II-a. Cum functioneazã?

Din materialele publicate despre programul Vocal Joystick, se știa că funcționează după cum urmează:
  1. Tăierea fluxului audio în cadre de 25 de milisecunde cu o suprapunere de 10 milisecunde
  2. Primirea a 13 coeficienți cepstrali (MFCC) pentru fiecare cadru
  3. Verificarea ca unul dintre cele 6 sunete stocate (4 vocale si 2 consoane) este pronuntat folosind un perceptron multistrat (MLP)
  4. Traducerea sunetelor găsite în mișcări/clicuri ale mouse-ului
Prima sarcină este notabilă doar prin faptul că, pentru a o rezolva în timp real, au trebuit introduse trei fire suplimentare în program, deoarece citirea datelor de la un microfon, procesarea sunetului și redarea sunetului printr-o placă de sunet au loc asincron.

Ultima sarcină este pur și simplu realizată folosind funcția SendInput.

Mi se pare că a doua și a treia problemă sunt de cel mai mare interes. Asa de.

Sarcina nr. 2. Obținerea a 13 coeficienți cepstrali

Dacă cineva nu știe, principala problemă a recunoașterii sunetelor de către un computer este următoarea: este dificil să compari două sunete, deoarece două unde sonore care sunt diferite ca contur pot suna similar din punctul de vedere al percepției umane.

Și printre cei implicați în recunoașterea vorbirii, există o căutare pentru „piatra filosofală” - un set de caracteristici care ar clasifica fără ambiguitate unda sonoră.

Dintre acele caracteristici care sunt disponibile publicului larg și descrise în manuale, cele mai utilizate pe scară largă sunt așa-numiții coeficienți cepstrali Mel-Frequency (MFCC).

Istoria lor este de așa natură încât au fost inițial destinate pentru ceva complet diferit, și anume, pentru a suprima ecoul în semnal (un articol educațional pe această temă a fost scris de respectații Oppenheim și Schafer, să fie bucurie în casele acestor oameni nobili. Vezi A. V. Oppenheim și R. W. Schafer, „De la Frequency la Quefrency: A History of the Cepstrum”.

Dar omul este conceput în așa fel încât să fie înclinat să folosească ceea ce îi este cel mai cunoscut. Și cei care au lucrat la semnale de vorbire au venit cu ideea de a folosi o reprezentare compactă gata făcută a semnalului sub formă de MFCC. S-a dovedit că, în general, funcționează. (Unul dintre prietenii mei, specialist în sisteme de ventilație, când l-am întrebat cum să facă o casă de vară, mi-a sugerat să folosească canale de ventilație. Pur și simplu pentru că le cunoștea mai bine decât alte materiale de construcție).

Sunt MFCC-urile un bun clasificator pentru sunete? nu as spune. Același sunet rostit de mine în microfoane diferite intră în diferite regiuni ale spațiului coeficienților MFCC, iar un clasificator ideal le-ar atrage unul lângă altul. Prin urmare, în special, atunci când schimbați microfonul, trebuie să reantrenați programul.

Aceasta este doar una dintre proiecțiile spațiului MFCC cu 13 dimensiuni în spațiul tridimensional, dar puteți vedea la ce vreau să spun - punctele roșii, violete și albastre sunt obținute de la diferite microfoane: (Plantronix, microfoane cu matrice încorporate, Jabra), dar sunetul a fost pronunțat singur.

Cu toate acestea, deoarece nu pot oferi nimic mai bun, voi folosi și metoda standard - calculul coeficienților MFCC.

Pentru a nu ne înșela în implementare, în primele versiuni ale programului a fost folosit ca bază codul din cunoscutul program CMU Sphinx, mai exact, implementarea acestuia în C, numită pocketsphinx, dezvoltat la Universitatea Carnegie Mellon ( pacea fie cu ei amândoi (c) Hottabych ).

Codurile sursă pocketsphinx sunt deschise, dar problema este că, dacă le folosești, trebuie să scrii text în programul tău (atât în ​​codul sursă, cât și în modulul executabil) care să conțină, printre altele, următoarele:

* Această lucrare a fost susținută parțial de finanțare de la Defense Advanced * Research Projects Agency și National Science Foundation din * Statele Unite ale Americii și CMU Sphinx Speech Consortium.
Acest lucru mi s-a părut inacceptabil și a trebuit să rescriu codul. Acest lucru a afectat performanța programului (în bine, de altfel, deși „lizibilitatea” codului a suferit oarecum). În mare parte datorită utilizării bibliotecilor „Intel Performance Primitives”, dar am optimizat și eu unele lucruri, cum ar fi filtrul MEL. Cu toate acestea, testarea datelor de testare a arătat că coeficienții MFCC obținuți sunt complet similari cu cei obținuți folosind, de exemplu, utilitarul sphinx_fe.

În programele sphinxbase, calculul coeficienților MFCC se realizează în următorii pași:

Etapa funcția sfinxbase Esența operației
1 fe_pre_emphasis Cea mai mare parte a citirii anterioare este scăzută din citirea curentă (de exemplu, 0,97 din valoarea acesteia). Un filtru primitiv care respinge frecvențele joase.
2 fe_hamming_window Fereastră Hamming – introduce atenuarea la începutul și la sfârșitul cadrului
3 fe_fft_real Transformare rapidă Fourier
4 fe_spec2magnitude Din spectrul obișnuit obținem spectrul de putere, pierzând faza
5 fe_mel_spec Grupăm frecvențele spectrului [de exemplu, 256 de bucăți] în 40 de grămezi, folosind scara MEL și coeficienții de ponderare
6 fe_mel_cep Luăm logaritmul și aplicăm transformarea DCT2 la cele 40 de valori din pasul anterior.
Lăsăm primele 13 valori ale rezultatului.
Există mai multe variante de DCT2 (HTK, legacy, clasic), care diferă prin constanta prin care împărțim coeficienții rezultați și o constantă specială pentru coeficientul zero. Puteți alege orice opțiune, nu va schimba esența.

Acești pași includ, de asemenea, funcții care vă permit să separați semnalul de zgomot și de liniște, cum ar fi fe_track_snr, fe_vad_hangover, dar nu avem nevoie de ele și nu vom fi distrași de ei.

S-au făcut următoarele înlocuiri pentru etapele de obținere a coeficienților MFCC:

Sarcina nr. 3. Verificarea ca unul dintre cele 6 sunete memorate este pronuntat

Programul original Vocal Joystick a folosit un perceptron multistrat (MLP) pentru clasificare - o rețea neuronală fără clopote și fluiere noi.

Să vedem cât de justificată este utilizarea unei rețele neuronale.

Să ne amintim ce fac neuronii în rețelele neuronale artificiale.

Dacă un neuron are N intrări, atunci neuronul împarte spațiul N-dimensional la jumătate. Taie reversul cu un hiperplan. Mai mult, intr-o jumatate din spatiu functioneaza (da un raspuns pozitiv), dar in cealalta nu merge.

Să ne uităm la opțiunea [practic] cea mai simplă - un neuron cu două intrări. Va împărți în mod natural spațiul bidimensional în jumătate.

Fie intrarea valorilor X1 și X2, pe care neuronul le înmulțește cu coeficienții de ponderare W1 și W2 și adaugă termenul liber C.


În total, la ieșirea neuronului (să-l notăm Y) obținem:

Y=X1*W1+X2*W2+C

(să sărim peste subtilitățile despre funcțiile sigmoide pentru moment)

Considerăm că neuronul se declanșează când Y>0. Linia dreaptă dată de ecuația 0=X1*W1+X2*W2+C împarte exact spațiul într-o parte în care Y>0 și o parte în care Y<0.

Să ilustrăm ceea ce s-a spus cu numere specifice.

Fie W1=1, W2=1, C=-5;

Acum să vedem cum putem organiza o rețea neuronală care să funcționeze într-o anumită zonă a spațiului, relativ vorbind, un loc, și să nu funcționeze în toate celelalte locuri.

Din figură se poate observa că pentru a contura o zonă în spațiu bidimensional avem nevoie de cel puțin 3 linii drepte, adică 3 neuroni conectați la acestea.

Vom combina acești trei neuroni împreună folosind un alt strat, obținând o rețea neuronală multistrat (MLP).

Și dacă avem nevoie ca rețeaua neuronală să funcționeze în două zone ale spațiului, atunci vom avea nevoie de cel puțin încă trei neuroni (4,5,6 în figuri):

Și aici nu te poți descurca fără un al treilea strat:

Iar al treilea strat este aproape Deep Learning...

Acum să ne întoarcem la un alt exemplu pentru ajutor. Lăsați rețeaua noastră neuronală să producă un răspuns pozitiv pe punctele roșii și un răspuns negativ pe punctele albastre.

Dacă mi s-ar cere să tai roșu din albastru în linii drepte, aș face așa ceva:

Dar rețeaua neuronală nu știe a priori de câți direcți (neuroni) va avea nevoie. Acest parametru trebuie setat înainte de antrenamentul rețelei. Și o persoană face asta pe baza... intuiției sau încercări și erori.

Dacă selectăm prea puțini neuroni în primul strat (trei, de exemplu), putem obține o tăietură ca aceasta, care va da o mulțime de erori (zona eronată este umbrită):

Dar chiar dacă numărul de neuroni este suficient, ca urmare a antrenamentului, rețeaua poate „nu reuși să converge”, adică să atingă o stare stabilă care este departe de a fi optimă, atunci când procentul de erori este mare. Ca și aici, bara transversală de sus se sprijină pe două cocoașe și nu se va îndepărta de ele. Și dedesubt există o zonă mare care generează erori:

Din nou, posibilitatea unor astfel de cazuri depinde de condițiile inițiale de antrenament și de succesiunea antrenamentului, adică de factori aleatori:

- Ce crezi, acea roată, dacă s-ar întâmpla, ar ajunge sau nu la Moscova?
- Ce crezi, rețeaua neuronală va funcționa sau nu?

Există un alt moment neplăcut asociat rețelelor neuronale. „Uitarea” lor.

Dacă începeți să alimentați rețeaua doar puncte albastre și nu mai alimentați cu cele roșii, atunci poate lua cu ușurință o bucată din zona roșie pentru sine, mutându-și granițele acolo:

Dacă rețelele neuronale au atât de multe deficiențe și o persoană poate desena limite mult mai eficient decât o rețea neuronală, atunci de ce să le folosești?

Și există un detaliu mic, dar foarte semnificativ.

Pot separa foarte bine inima roșie de fundalul albastru cu segmente de linie dreaptă în spațiu bidimensional.

Pot separa destul de bine statuia lui Venus de spațiul tridimensional care o înconjoară cu avioane.

Dar în spațiul cu patru dimensiuni nu pot face nimic, îmi pare rău. Și în a 13-a dimensiune - cu atât mai mult.

Dar pentru o rețea neuronală, dimensiunea spațiului nu este un obstacol. Am râs de ea în spații de dimensiuni mici, dar de îndată ce am trecut dincolo de obișnuit, m-a bătut ușor.

Cu toate acestea, întrebarea este încă deschisă: cât de justificată este utilizarea unei rețele neuronale în această sarcină specială, ținând cont de dezavantajele rețelelor neuronale enumerate mai sus.

Să uităm pentru o secundă că coeficienții noștri MFCC sunt în spațiul cu 13 dimensiuni și să ne imaginăm că sunt bidimensionali, adică puncte de pe un plan. Cum se poate separa un sunet de altul în acest caz?

Fie punctele MFCC ale sunetului 1 să aibă o abatere standard R1, ceea ce înseamnă [aproximativ] că punctele care nu se abat prea mult de la medie, punctele cele mai caracteristice, sunt în interiorul unui cerc cu raza R1. La fel, punctele în care avem încredere în sunetul 2 sunt situate în interiorul unui cerc cu raza R2.

Atenție, întrebare: unde să tragem o linie dreaptă care ar separa cel mai bine sunetul 1 de sunetul 2?

Răspunsul se sugerează de la sine: la mijloc între limitele cercurilor. Obiecții? Fara obiectii.
Corecţie:În program, această limită împarte segmentul care conectează centrele cercurilor în raportul R1:R2, care este mai corect.

Și, în sfârșit, să nu uităm că undeva în spațiu există un punct care reprezintă liniștea completă în spațiul MFCC. Nu, nu sunt 13 zerouri, așa cum ar părea. Acesta este un punct care nu poate avea o abatere standard. Și liniile drepte cu care îl tăiem de la cele trei sunete ale noastre pot fi trasate direct de-a lungul limitelor cercurilor:

În figura de mai jos, fiecare sunet corespunde unei bucăți de spațiu de culoarea sa și putem spune întotdeauna cărui sunet îi aparține un anumit punct din spațiu (sau nu îi aparține niciunuia):

Ei bine, acum să ne amintim că spațiul are 13 dimensiuni, iar ceea ce era bine să desenezi pe hârtie acum se dovedește a fi ceva care nu se potrivește în creierul uman.

Da, dar nu așa. Din fericire, în spațiul oricărei dimensiuni rămân concepte precum un punct, o linie dreaptă, un [hiper]plan, o [hiper]sferă.

Repetăm ​​toate aceleași acțiuni în spațiul de 13 dimensiuni: găsim dispersia, determinăm razele [hiper]sferelor, legăm centrii cu o linie dreaptă, o tăiem cu un [hiper]plan într-un punct la fel de îndepărtat de limitele [hiper]sferelor.

Nicio rețea neuronală nu poate separa mai corect un sunet de altul.

Aici, însă, ar trebui făcută o rezervă. Toate acestea sunt adevărate dacă informația despre sunet este un nor de puncte care se abate de la medie în mod egal în toate direcțiile, adică se încadrează bine în hipersferă. Dacă acest nor ar fi o figură complexă, de exemplu, un cârnați curbat cu 13 dimensiuni, atunci toate argumentele de mai sus ar fi incorecte. Și poate, cu o pregătire adecvată, rețeaua neuronală și-ar putea arăta punctele forte aici.

Dar nu aș risca. Și aș folosi, de exemplu, seturi de distribuții normale (GMM), (care, apropo, se face în CMU Sphinx). Este întotdeauna mai plăcut când înțelegeți ce algoritm specific a condus la rezultat. Nu ca într-o rețea neuronală: Oracle, bazat pe multele sale ore de amestecare a datelor de antrenament, vă spune să decideți că sunetul solicitat este sunetul numărul 3. (Ma deranjează mai ales când încearcă să încredințeze controlul unei mașini unei rețele neuronale. Cum atunci, într-o situație neobișnuită, se poate înțelege de ce mașina a virat la stânga și nu la dreapta? A comandat Atotputernicul Neuron?).

Dar seturile de distribuții normale sunt un subiect mare separat, care depășește domeniul de aplicare al acestui articol.

Sper că articolul a fost util și/sau ți-a făcut creierul să scârțâie.

Chiar înainte de lansarea interfeței Cortana pentru Windows 10, care se află în prezent în stadiul de dezvoltare, testare și depanare, utilizatorii au încercat să organizeze controlul vocal al computerului. Vom vorbi despre modul în care o astfel de funcție poate fi implementată în Windows lansat înainte de 10 în articolul de astăzi.

Cortana

Cortana este un asistent vocal AI dezvoltat de Microsoft pentru Windows 10, Phone și Android, cu distribuție ulterioară a proiectului pe XBox și iOS. Inlocuieste clasica bara de cautare si efectueaza multe actiuni, legate in primul rand de cautarea de informatii si comenzi de sistem, primindu-le de la utilizator sub forma comenzilor vocale. Integrarea profundă în Windows 10, absența limbii ruse (deocamdată), colectarea practic a tuturor informațiilor despre utilizator cu trimiterea către serverele Microsoft și lipsa unei versiuni finale nu permit majorității utilizatorilor să obțină controlul vocal complet asupra propriul lor computer.

Pe lângă Cortana, există multe aplicații care vă permit să vă controlați computerul prin comenzile vocale ale utilizatorului. Să aruncăm o privire la cele mai comune produse pentru rezolvarea acestei probleme în Windows 7 și 10.

Tip

Aplicația ocupă o poziție de lider în rândul utilizatorilor vorbitori de limbă rusă care doresc să controleze computerul prin voce. Utilitarul va înlocui cu ușurință o parte semnificativă a funcțiilor Cortana pe Windows 10, iar pe „șapte” va adăuga o funcție care este adesea demonstrată în filme în care oamenii controlează computerele folosind vocea.

Înainte de a începe lucrul, ne creăm un cont și venim cu o frază cheie, după ce aflăm care va fi activată aplicația. Apoi setăm o comandă vocală pentru a controla computerul sau pentru a efectua o anumită acțiune și îi atribuim o operație (lansarea unei aplicații, accesarea unui site web specificat). În fereastra de editare a comenzilor create devine posibilă setarea parametrilor cu care va fi lansată aplicația și specificarea modului de lansare (ecran complet, fereastră).

Funcționalitatea utilitarului este foarte limitată, iar interfața este departe de stilul Metro implementat în Windows 10. Controlul vocal complet al unui PC folosind Typle nu poate fi implementat: acceptă doar deschiderea fișierelor, aplicațiilor (cu argumente) și urmărirea linkurilor predefinite . Nu există nici măcar suport pentru controlul playerului (pauză, redați piesa următoare).

Difuzor

  • realizarea de capturi de ecran;
  • comutarea layout-ului tastaturii;
  • închiderea Windows 7;
  • lansarea aplicației;
  • deschiderea unui dosar.

Procesul de citire și recunoaștere a informațiilor primite de microfon începe după apăsarea unei taste date (este mai bine să alegeți butonul pe care îl utilizați cel mai puțin rar pentru a evita falsele pozitive ale programului). Este nevoie de destul de mult timp pentru a procesa, a recunoaște vorbirea și a executa o comandă - 5 sau mai multe secunde, ceea ce trebuie să plătiți pentru ieftinitate. Cuvintele cheie sunt specificate prin text, nu cuvinte, astfel încât vorbirea recunoscută este comparată cu textul introdus, ceea ce este departe de a fi ideal. Nu există control de jucător în aplicație.

Gorynych

Dezvoltatorii unui pachet software pentru gestionarea unui computer cu Windows 7 și 10 sunt prima echipă națională care a lansat o aplicație pentru rezolvarea acestui gen de probleme. Miezul aplicației este „Dragon Dictate” de Vest, unde a fost introdus un modul software intern pentru recunoașterea vorbirii rusești.

Cele mai bune articole pe această temă