Cum se transformă vorbirea în text cu Python [Proces pas cu pas]

Publicat: 2020-08-07

Cuprins

Introducere în vorbire în text

Trăim într-o epocă în care modurile în care interacționăm cu mașinile au devenit variate și complexe. Am evoluat de la butoane mecanice masive la interfața cu ecran tactil. Dar această evoluție nu se limitează la hardware. Statu quo-ul pentru input pentru computere a fost text încă de la concepție. Cu toate acestea, cu progresele în NLP (Natural Language Processing) și ML (Machine Learning), Data Science, avem instrumentele necesare pentru a încorpora vorbirea ca mediu de interacțiune cu gadgeturile noastre.

Aceste instrumente deja ne înconjoară și ne servesc cel mai frecvent ca asistenți virtuali. Google, Siri, Alexa etc. sunt realizări de hotar în adăugarea unei alte dimensiuni mai personale și mai convenabile a interacțiunii cu lumea digitală.

Spre deosebire de majoritatea inovațiilor tehnologice, tehnologia vorbire în text este disponibilă pentru explorarea tuturor, atât pentru consum, cât și pentru a vă construi proiectele.

Python este unul dintre cele mai comune limbaje de programare din lume, care are instrumente pentru a vă crea aplicații de vorbire în text.

Istoria vorbirii în text

Înainte de a explora declarația la text în Python, merită să apreciem cât de mult progres am făcut în acest domeniu. Următoarea este cronologia simplificată a:

  • Audrey , 1952: primul sistem de recunoaștere a vorbirii dezvoltat de cercetătorii din 3 laboratoare Bells. Nu putea recunoaște decât cifre.
  • IBM Showbox (1962): primul sistem de recunoaștere a vorbirii de la IBM, care recunoaște 16 cuvinte în plus față de cifre. Ar putea rezolva dictate aritmetice simple și poate imprima rezultatul.
  • Defense Advanced Research Projects Agency (DARPA) (1970): DARPA a finanțat Speech Understanding Research, care a condus la dezvoltarea lui Harpy pentru a recunoaște 1011 cuvinte.
  • Modelul Markov ascuns (HMM), anii 1980: HMM este un model statistic care modelează probleme care necesită informații secvențiale. Acest model a fost aplicat pentru progresele ulterioare în recunoașterea vorbirii.
  • Căutare vocală de către Google , 2001: Google a introdus funcția de căutare vocală care a permis utilizatorilor să caute folosind vorbirea. Aceasta a fost prima aplicație cu voce activată care a devenit foarte populară.
  • Siri , 2011: Apple a introdus Siri care a fost capabil să realizeze un mod convenabil și în timp real de a interacționa cu dispozitivele sale.
  • Alexa , 2014 și google home , 2016: asistenții virtuali bazați pe comandă vocală au devenit populari pe măsură ce Google Home și Alexa vând împreună peste 150 de milioane de unități.

Citește și: Top 7 biblioteci Python NLP

Provocări într-un discurs către text

Discursul la text este încă o problemă complexă, care este departe de a fi un produs cu adevărat finit. Câteva dificultăți tehnice fac din acesta un instrument imperfect în cel mai bun caz. Următoarele sunt provocările comune ale tehnologiei de recunoaștere a vorbirii:

1. Am interpretare precisă

Recunoașterea vorbirii nu interpretează întotdeauna corect cuvintele rostite. VUIs (Interfața utilizator vocală) nu este la fel de adepți ca oamenii în contextul de înțelegere care schimbă relația dintre cuvinte și propoziții. Astfel, mașinile se pot lupta să înțeleagă semantica unei propoziții.

2. Timpul

Uneori, procesarea sistemelor de recunoaștere a vocii durează prea mult. Acest lucru se poate datora diversității modelelor de voce pe care le posedă oamenii. O astfel de dificultate în recunoașterea vocii poate fi evitată prin încetinirea vorbirii sau fiind mai precis în pronunție, ceea ce îndepărtează confortul instrumentului.

3. Accente

VUI-urilor le poate fi greu să înțeleagă dialectele care diferă de medie. În aceeași limbă, vorbitorii pot avea moduri extrem de diferite de a rosti aceleași cuvinte.

4. Zgomot de fundal și zgomot

Într-o lume ideală, acestea nu vor fi o problemă, dar pur și simplu nu este cazul, așa că VUI-urilor ar putea considera că este dificil să lucreze în medii zgomotoase (spații publice, birouri mari etc.).

Trebuie citit: Cum să faci un chatbot în Python

Speech to Text în Python

Dacă cineva nu dorește să treacă prin procesul anevoios de a construi o declarație către text de la bază, folosiți următoarele ca ghid. Acest ghid este doar o introducere de bază în crearea propriei aplicații de vorbire în text. Asigurați-vă că aveți un microfon funcțional pe lângă o versiune relativ recentă de Python.

Pasul 1 :

Descărcați următoarele pachete Python:

  • speech_recogntion (pip install SpeechRecogntion): Acesta este pachetul principal care rulează cel mai important pas de conversie a vorbirii în text. Alte alternative au argumente pro și dezavantaje, cum ar fi apel, asamblare, google-cloud-search, pocketsphinx, Watson-developer-cloud, wit etc.
  • Sunetul meu (pip install Pyaudio)
  • Portaudio (pip install Portaudio)

Pasul 2 :

Creați un proiect (numiți-l cum doriți) și importați speech_recogntion ca sr.

Creați cât mai multe instanțe ale clasei de recunoaștere.

Pasul 3 :

Odată ce ați creat aceste instanțe, acum trebuie să definim sursa intrării.

Deocamdată, să definim sursa ca microfonul însuși (ați putea folosi un fișier audio existent)

Pasul 4 :

Vom defini acum o variabilă pentru a stoca intrarea. Folosim metoda „ascultă” pentru a prelua informații de la sursă. Deci, în cazul nostru, vom folosi microfonul ca sursă pe care am stabilit-o în linia anterioară de cod.

Pasul 5 :

Acum că avem intrarea (microfonul ca sursă) definită și o avem stocată într-o variabilă („audio”), trebuie pur și simplu să folosim metoda recognosci_google pentru a o converti în text. Putem stoca rezultatul într-o variabilă sau pur și simplu putem imprima rezultatul. Nu trebuie să ne bazăm doar pe recognosci_google, avem și alte metode care folosesc diferite API-uri care funcționează de asemenea. Exemple de astfel de metode sunt:

recunoaște_bing()

recongize_google_cloud()

recongize_houndify()

recongize_ibm()

recongize_Sphinx() (funcționează și offline)

Următoarea metodă a folosit pachete existente care ajută la reducerea nevoii de a vă dezvolta software-ul de recunoaștere a vorbirii în text de la zero. Aceste pachete au mai multe instrumente care vă pot ajuta să vă construiți proiecte care rezolvă probleme mai specifice. Un exemplu de caracteristică utilă este că puteți schimba limba implicită din engleză la hindi. Acest lucru va schimba rezultatele care sunt tipărite în hindi (deși, așa cum este în prezent, vorbirea în text este cel mai dezvoltată pentru a înțelege limba engleză).

Dar, este un exercițiu bun de gândire al dezvoltatorilor severi pentru a înțelege cum funcționează un astfel de software.

Să-l descompunem.

Cel mai fundamental, vorbirea este pur și simplu o undă sonoră. Asemenea unde sonore sau semnale audio au câteva proprietăți caracteristice (care pot părea familiare fizicii acusticii), cum ar fi amplitudinea, creasta și jgheabul, lungimea de undă, ciclul și frecvența.

Astfel de semnale audio sunt continue și au astfel infinite puncte de date. Pentru a converti un astfel de semnal audio într-un semnal digital, astfel încât un computer să-l proceseze, rețeaua trebuie să ia o distribuție discretă de eșantioane care seamănă foarte mult cu continuitatea unui semnal audio.

Odată ce avem o frecvență de eșantionare adecvată (8000 Hz este un standard bun, deoarece majoritatea frecvențelor de vorbire sunt în acest interval), acum putem procesa semnalele audio din bibliotecile Python precum LibROSA și SciPy. Putem apoi să construim pe aceste intrări împărțind setul de date în 2, antrenând modelul, iar celălalt pentru a valida constatările modelului.

În această etapă, se poate folosi arhitectura model a lui Conv1d, o rețea neuronală convoluțională care funcționează de-a lungul unei singure dimensiuni. Apoi putem construi un model, defini funcția de pierdere a acestuia și putem folosi rețele neuronale pentru a salva cel mai bun model de la conversia vorbirii în text. Folosind învățarea profundă și NLP (Procesarea limbajului natural), putem rafina declarația în text pentru aplicații și adoptare mai extinse.

Aplicații ale recunoașterii vorbirii

După cum am aflat, instrumentele pentru a rula această inovație tehnologică sunt mai accesibile, deoarece aceasta este în mare parte o inovație software și nicio companie nu o deține. Această accesibilitate a deschis uși pentru dezvoltatorii cu resurse limitate pentru a veni cu aplicarea acestei tehnologii.

Unele dintre domeniile în care recunoașterea vorbirii este în creștere sunt următoarele:

  • Evoluție în motoarele de căutare: recunoașterea vorbirii va ajuta la îmbunătățirea acurateței căutării prin completarea golului dintre comunicarea verbală și cea scrisă.
  • Impact asupra industriei de asistență medicală: recunoașterea vorbirii devine o trăsătură comună în sectorul medical, ajutând la finalizarea raportării medicale. Pe măsură ce VUI-urile devin mai bune în înțelegerea jargonului medical, adoptarea acestei tehnologii va elibera medicilor timp departe de munca administrativă.
  • Industria serviciilor: în tendințele crescânde ale automatizării, este posibil ca un client să nu poată convinge un om să răspundă la o interogare și, astfel, sistemele de recunoaștere a vorbirii pot umple acest gol. Vom vedea creșterea rapidă a acestei caracteristici în aeroporturi, transport public etc.
  • Furnizorii de servicii: furnizorii de telecomunicații se pot baza și mai mult pe sistemele de vorbire către text, care pot reduce timpii de așteptare, ajutând la stabilirea cererilor apelantului și direcționându-i către asistența corespunzătoare.

Citește și: Tehnologia de căutare vocală – Fapte interesante

Concluzie

Speech to text este o tehnologie puternică care va fi în curând omniprezentă. Utilizabilitatea sa relativ simplă în combinație cu Python (unul dintre cele mai populare limbaje de programare din lume) face crearea aplicațiilor sale mai ușoară. Pe măsură ce facem pași în acest domeniu, deschidem calea către o lume în care accesul la lumea digitală nu este doar cu vârful degetelor, ci și un cuvânt rostit.

Dacă sunteți interesat să aflați mai multe despre procesarea limbajului natural, consultați programul nostru Executive PG în Machine Learning și AI, care este conceput pentru profesioniști care lucrează și peste 450 de ore de pregătire riguroasă.

Dacă sunteți curios să aflați despre știința datelor, consultați programul Executive PG în știința datelor de la IIIT-B și upGrad, care este creat pentru profesioniști care lucrează și oferă peste 10 studii de caz și proiecte, ateliere practice practice, mentorat cu experți din industrie, 1 -on-1 cu mentori din industrie, peste 400 de ore de învățare și asistență profesională cu firme de top.

Ce este conversia vorbire în text?

În primele zile ale recunoașterii vorbirii, un transcriptor stătea cu căști și înregistra vorbirea. Procesul a durat mult și a produs transcrieri de calitate scăzută. Astăzi, sistemele de recunoaștere a vorbirii folosesc computerele pentru a converti vorbirea în text. Aceasta se numește conversie vorbire în text. Recunoașterea vorbirii (cunoscută și sub numele de conversie vorbire în text) este procesul de conversie a cuvintelor rostite în date care pot fi citite de mașină. Scopul este de a permite oamenilor să comunice cu mașinile prin voce și de a le permite mașinilor să comunice cu oamenii producând vorbire. Pentru a efectua această conversie se folosește un software de conversie vocală în text.

Care sunt provocările în conversia vorbirii în text?

Există multe provocări în conversia vorbirii în text. Principalele provocări sunt: ​​Acuratețea, în care sistemul trebuie să obțină corect cuvintele rostite pentru a extrage intenția utilizatorului. Viteză, sistemul trebuie să poată efectua cele de mai sus suficient de rapid pentru a fi acceptabil pentru utilizator. Naturalitate, sistemul ar trebui să sune cât mai natural posibil, astfel încât utilizatorul să nu simtă că trebuie să vorbească într-o manieră nefirească. Robustețe, sistemul ar trebui să poată face față unei cantități mari de zgomot de fundal, alte cuvinte și orice alte efecte care pot interfera cu procesul de conversie.

Care sunt aplicațiile vorbirii la procesarea textului?

Motivul pentru care trebuie să convertiți vorbirea în text este că este o modalitate foarte rapidă și convenabilă de a comunica. Procesarea de la vorbire la text poate fi utilizată în multe aplicații diferite, de exemplu, poate fi folosită într-un dispozitiv de comunicație mobil, unde utilizatorul își poate folosi vorbirea pentru a trimite mesaje și a efectua apeluri în loc să tasteze pe tastatură. O altă aplicație a vorbirii la procesarea textului este controlul mașinii. Este o modalitate de a controla un motor sau o altă mașină industrială vorbind cu acesta.