Sunteți pe pagina 1din 5

Prelucrarea digitală a semnalelor

UNIVERSITATE A NAȚIONALĂ DIN ȘTIINȚĂ ȘI


TEHNOLOGIE POLITEHNICA BUCUREȘTI

Departamentul Telecomenzi și Electronică în


Transporturi

Recunoașterea vocală

Studenți
Mihai- Adrian COSTICĂ,
Mihai- Andrei DEACU
Prelucrarea digitală a semnalelor

Prezentare generală
Recunoașterea vocală este o ramură interdisciplinară a informaticii și lingvisticii
computaționale care dezvoltă metodologii și tehnologii ce permit recunoașterea și traducerea
limbajului vorbit în text de către computere. Este cunoscută și sub denumirea de recunoaștere
automată a vorbirii (ASR), recunoaștere vocală de calculator sau conversie vorbire-text (STT).
Aceasta integrează cunoștințe și cercetări în domeniile informaticii, lingvisticii și ingineriei
calculatoarelor. Procesul invers este sinteza vocii.
Unele sisteme de recunoaștere vocală necesită "înscriere" (numită și "înrolare"), în care
un vorbitor citește un text sau vocabular izolat în sistem. Sistemul analizează vocea specifică a
persoanei și o utilizează pentru a ajusta recunoașterea vorbirii acelei persoane, rezultând o
creștere a preciziei. Sistemele care nu folosesc antrenament sunt denumite sisteme "independente
de vorbitor". Sistemele care folosesc antrenament sunt denumite "dependente de vorbitor".
Aplicațiile de recunoaștere vocală includ interfețe vocale pentru utilizatori, cum ar fi
compunerea vocală (de exemplu, "apelează acasă"), rutarea apelurilor (de exemplu, "aș dori să
fac un apel cu taxă inversă"), controlul electrocasnicelor în casă, căutarea cuvintelor cheie (de
exemplu, găsirea unui podcast în care au fost rostite anumite cuvinte), introducerea simplă de
date (de exemplu, introducerea unui număr de card de credit), pregătirea de documente
structurate (de exemplu, un raport de radiologie), determinarea caracteristicilor vorbitorului,
procesarea vorbire-text (de exemplu, procesatoare de texte sau e-mailuri) și în aeronautică (de
obicei denumită intrare vocală directă).
Termenul de recunoaștere a vocii sau identificare a vorbitorului se referă la identificarea
vorbitorului, în loc de ceea ce spun ei. Recunoașterea vorbitorului poate simplifica sarcina de a
traduce vorbirea în sisteme care au fost antrenate pe vocea unei persoane specifice, sau poate fi
folosită pentru autentificarea sau verificarea identității unui vorbitor în cadrul unui proces de
securitate.
Din perspectiva tehnologică, recunoașterea vocală are o istorie lungă, cu mai multe valuri
de inovații majore. Recent, domeniul a beneficiat de avansuri în învățarea profundă și
prelucrarea de date voluminoase. Progresele sunt evidențiate nu numai de creșterea numărului de
lucrări academice publicate în domeniu, ci mai ales de adoptarea la nivel mondial a diverse
metode de învățare profundă în proiectarea și implementarea sistemelor de recunoaștere vocală.
Până în începutul anilor 2010, recunoașterea vocală, numită și recunoașterea vocii, era
clar diferențiată de recunoașterea vorbitorului, iar independența de vorbitor era considerată o
avansare majoră. Până atunci, sistemele necesitau o perioadă de "antrenament". În 1987, o
Prelucrarea digitală a semnalelor

reclamă pentru o păpușă avea sloganul "În sfârșit, păpușa care te înțelege" - în ciuda faptului că
era descrisă ca "pe care copiii o puteau antrena să răspundă la vocea lor".
În 2017, cercetătorii de la Microsoft au atins un moment istoric de paritate umană prin
transcrierea discursului telefonic conversațional în cadrul sarcinii larg recunoscute Switchboard.
Mai multe modele de învățare profundă au fost utilizate pentru optimizarea exactității
recunoașterii vocale. Rata de eroare a cuvintelor în recunoașterea vorbirii a fost raportată să fie la
fel de scăzută ca a patru transcrieri umane profesioniste care lucrau împreună pe aceeași sarcină
de referință, finanțată de echipa de vorbire IBM Watson pentru aceeași sarcină.

Mod de funcționare
Software-ul de recunoaștere vocală pe calculatoare necesită conversia semnalului audio
analogic în semnale digitale, cunoscută sub denumirea de conversie analog-digital (A/D). Pentru
ca un computer să descifreze un semnal, trebuie să aibă o bază de date digitală de cuvinte sau
silabe, precum și un proces rapid pentru a compara aceste date cu semnalele. Modelele de
vorbire sunt stocate pe hard disk și încărcate în memorie când programul este în funcțiune. Un
comparator verifică aceste modele stocate în raport cu ieșirea convertorului A/D - o acțiune
numită recunoaștere de tipar.
În practică, dimensiunea vocabularului eficient al unui program de recunoaștere vocală
este direct legată de capacitatea RAM a computerului în care este instalat. Un program de
recunoaștere vocală rulează mult mai rapid dacă întregul vocabular poate fi încărcat în RAM în
loc să căute pe hard disk pentru unele potriviri. Viteza de procesare este crucială, deoarece
afectează cât de rapid poate căuta computerul în RAM pentru potriviri.
Sistemele de recunoaștere vocală analizează vorbirea printr-unul dintre cele două modele:
modelul Markov ascuns și rețelele neurale. Modelul Markov ascuns descompune cuvintele
rostite în fonemele lor, în timp ce rețelele neurale recurente utilizează ieșirea din pașii anteriori
pentru a influența intrarea în pasul curent.

Raspberry Pi
Prelucrarea digitală a semnalelor

Vom folosi o plăcuță Raspberry Pi pentru implementarea codului ce va fi prezentat în


capitolul următor, aplicația pe care o vom prezenta fiind următoarea: o recunoaștere vocală prin
detectarea și activarea unui microfon, ulterior ascultarea unei singure fraze și încercarea de
recunoaștere a cuvintelor spuse cu ajutorul Google Web Speech API, în final afișându-se sub
formă de text rezultatul.

Google Web Speech API

API-ul Google Web Speech este o interfata de programare a aplicațiilor (API) oferită de
Google, care permite dezvoltatorilor să integreze tehnologia de recunoaștere vocală în aplicațiile
și serviciile lor online. Acest API face parte din setul mai larg de servicii oferite de Google
Cloud.
Prin intermediul Google Web Speech API, dezvoltatorii pot beneficia de capacitățile
avansate de recunoaștere vocală oferite de Google. API-ul permite transformarea vorbirii umane
în text și poate fi utilizat într-o varietate de aplicații, cum ar fi asistenții vocali, transcrierea
automată a discuțiilor sau alte servicii care implică interacțiunea vocală cu utilizatorii.

Cod Python

import speech_recognition as sr

recognizer = sr.Recognizer()

def recognize_speech_from_mic(recognizer, microphone):


if not isinstance(recognizer, sr.Recognizer):
raise TypeError("`recognizer` must be `Recognizer` instance")
if not isinstance(microphone, sr.Microphone):
raise TypeError("`microphone` must be `Microphone` instance")

with microphone as source:


recognizer.adjust_for_ambient_noise(source)
print("Se ascultă…")
audio = recognizer.listen(source)
Prelucrarea digitală a semnalelor

response = {
"success": True,
"error": None,
"transcription": None
}
try:
response["transcription"] = recognizer.recognize_google(audio, language="ro-RO")
except sr.RequestError:
response["success"] = False
response["error"] = "API indisponibil"
except sr.UnknownValueError:
response["error"] = "Nu s-a putut realiza recunoașterea.."

return response

microphone = sr.Microphone()

while True:
response = recognize_speech_from_mic(recognizer, microphone)

if response["transcription"]:
print("You said: {}".format(response["transcription"]))

#exemplu de cod pentru realizarea unei comenzi specifice utilizând recunoașterea vocală
if "lumină" in response["transcription"].lower():
print("Se aprind luminile.")
elif "închide" in response["transcription"].lower():
print("Se închid luminile.")
if response["error"]:
print("Error: {}".format(response["error"]))

S-ar putea să vă placă și