Cifre și comenzi direcționale în limba română.
Recunoaștere vocală în limba română: CNN pe spectrograme audio în MATLAB
Un prototip academic demonstrabil pentru clasificarea cuvintelor izolate în limba română, construit pe un pipeline controlat: WAV → preprocesare → spectrogramă → CNN → clasificare → matrice de confuzie.
Ce demonstrează studiul
- Semnalul audio WAV poate fi transformat într-o reprezentare spectrală utilă pentru recunoaștere vocală în limba română.
- Spectrograma poate deveni input pentru un CNN pe spectrograme audio în MATLAB, în contextul clasificării cuvintelor izolate.
- Rezultatul trebuie evaluat prin validation accuracy și matrice de confuzie, nu prin impresie vizuală.
Set echilibrat la nivel de clasă, dar redus ca volum total.
Aceeași voce, captată într-un mediu controlat.
Validation accuracy în iterația finală documentată.
1. Contextul proiectului
Acest studiu de caz pornește de la proiectul academic „Proiect de Software”, construit în jurul unei întrebări tehnice simple: poate fi antrenată o rețea neuronală convoluțională să distingă cuvinte izolate în limba română atunci când sunetul este transformat într-o reprezentare vizuală?
Materialul nu prezintă un produs comercial și nu promite recunoaștere vocală robustă pentru orice vorbitor. Este un prototip academic demonstrabil, util pentru a arăta cum un semnal audio 1D poate fi convertit într-o spectrogramă și analizat ca imagine de către o rețea CNN în MATLAB și Deep Learning Toolbox.
Setul de lucru a fost intenționat restrâns: 17 clase vocale, 15 înregistrări pentru fiecare clasă, aceeași voce și un mediu controlat. Tocmai această delimitare face studiul util editorial: arată mecanica unui pipeline de clasificare fără a supraevalua maturitatea sistemului.
2. Problema observată
Problema principală nu era captarea sunetului, ci forma în care sunetul putea fi introdus într-un model de deep learning. O înregistrare WAV conține variații de amplitudine în timp, însă o rețea CNN este mai potrivită pentru structuri spațiale: contururi, regiuni, contraste și pattern-uri locale.
Pentru recunoașterea cuvintelor izolate, informația relevantă nu se află doar în nivelul semnalului, ci în distribuția energiei pe timp și frecvență. Două cuvinte pot avea durate apropiate sau intensități similare, dar pot produce spectrograme diferite. În același timp, cuvinte apropiate fonetic pot produce confuzii chiar dacă pipeline-ul este corect.
3. Diagnosticul tehnic
Diagnosticul tehnic a arătat că semnalul brut trebuia trecut printr-un strat de preprocesare înainte de antrenare. În loc ca rețeaua să primească direct amplitudini în timp, fiecare fișier WAV a fost transformat într-o imagine spectrală, în care axele timp-frecvență fac vizibile zonele de energie ale rostirii.
Această decizie schimbă problema: din clasificare directă de waveform, proiectul devine clasificare de imagini derivate din audio. CNN-ul poate învăța pattern-uri locale din spectrograme, iar matricea de confuzie poate arăta unde modelul separă corect clasele și unde le amestecă.
- WAV
- Preprocesare
- Spectrogramă
- CNN
- Clasificare
- Matrice de confuzie
Diagnosticul inițial a fost confirmat de evoluția acurateții de validare. Prima variantă a sistemului nu a separat suficient clasele, apoi iterațiile de arhitectură și preprocesare au ridicat performanța documentată până la 63.53% validation accuracy.
4. Decizia arhitecturală
Decizia arhitecturală a fost să se trateze fiecare cuvânt ca semnal audio convertibil într-o reprezentare vizuală. Asta a făcut posibilă folosirea unei rețele CNN, nu pentru limbaj natural în sens semantic, ci pentru recunoașterea pattern-urilor acustice din spectrograme.
Modelul ales nu a fost prezentat ca sistem general de speech recognition, ci ca un clasificator pentru cuvinte izolate într-un set închis de clase. Acest perimetru este important: un model antrenat pe o singură voce, într-un mediu controlat, nu trebuie descris ca soluție robustă pentru vorbitori diferiți, zgomot real sau conversație continuă.
Set închis de clase
Modelul clasifică doar clasele pentru care a fost pregătit: cifre și direcții vocale, nu limbaj liber.
Spectrogramă ca interfață
Transformarea audio în spectrogramă permite CNN-ului să lucreze pe o structură timp-frecvență.
Validare prin matrice de confuzie
Evaluarea nu se limitează la un scor global; urmărește și ce clase sunt confundate între ele.
Delimitare academică
Rezultatul este documentat ca prototip demonstrabil, nu ca produs pregătit pentru producție.
5. Implementarea
Implementarea a urmat un flux controlat în MATLAB și Deep Learning Toolbox. Înregistrările WAV au fost organizate pe clase, preprocesate, transformate în spectrograme și introduse într-o rețea CNN pentru antrenare și clasificare.
Scopul implementării nu a fost ascunderea complexității într-un model gata antrenat, ci documentarea traseului complet: de la fișier audio la predicție și de la predicție la evaluarea erorilor. Matricea de confuzie devine aici instrumentul de diagnostic, nu doar o imagine de final.
Pregătirea datelor
Fișierele WAV au fost grupate pe clase vocale și folosite ca intrare pentru pipeline-ul de preprocesare. Setul a rămas mic și controlat, cu distribuție egală la nivel de clasă.
Extracția reprezentării audio
Semnalul a fost transformat într-o reprezentare spectrală, astfel încât informația acustică să poată fi analizată ca structură bidimensională.
Antrenarea CNN
Rețeaua a fost antrenată pe spectrograme, cu validare pe date separate, urmărind creșterea acurateții și reducerea confuziilor între clase.
Evaluarea clasificării
Rezultatul a fost citit prin validation accuracy și matrice de confuzie, nu printr-o afirmație generică despre recunoaștere vocală.
Waveform
Semnal audio în timp, înainte de transformarea spectrală.
Spectrogramă
Reprezentare timp-frecvență folosită ca intrare pentru CNN.
Confusion matrix
| corect | slab | slab |
| slab | corect | confuzie |
| slab | confuzie | corect |
Instrument pentru identificarea claselor apropiate acustic.
6. Rezultatul măsurat / documentat
Rezultatul documentat trebuie citit ca evoluție a unui prototip academic, nu ca promisiune de performanță comercială. În proiect, validation accuracy a crescut prin iterații succesive: de la 13.73%, la 32.55%, apoi la 63.53% în versiunea finală documentată.
13.73%
Semnal inițial de performanță scăzută, asociat cu separare insuficientă între clase.
32.55%
Îmbunătățire intermediară după ajustări ale pipeline-ului și ale configurației de antrenare.
63.53%
Cea mai bună valoare documentată în proiect pentru validation accuracy.
Aceste valori arată progresul unui experiment, nu o garanție de generalizare. Pentru un model antrenat pe dataset mic, aceeași voce și condiții controlate, interpretarea corectă este: pipeline-ul funcționează demonstrabil în perimetrul proiectului, dar nu dovedește robustețe în afara lui.
7. Limitări
Limitările sunt parte din valoarea studiului, pentru că împiedică supraevaluarea rezultatului. Prototipul demonstrează o direcție tehnică, dar nu trebuie confundat cu un sistem de recunoaștere vocală generalizabil.
Dataset mic
17 clase cu 15 înregistrări pe clasă oferă un punct de plecare, dar nu suficientă diversitate pentru concluzii robuste.
Voce unică
Modelul este expus la aceeași voce, deci nu învață variații reale de accent, timbru, viteză și pronunție.
Condiții controlate
Mediul de captare reduce zgomotul și variabilitatea, dar nu reflectă condiții reale de utilizare.
Confuzii între clase
Clase apropiate fonetic, precum „înainte” și „înapoi”, pot rămâne greu de separat pentru un model antrenat pe date puține.
8. Lecția principală
Lecția principală este că performanța unui model nu poate fi separată de forma datelor și de perimetrul experimentului. Conversia WAV → spectrogramă a făcut problema abordabilă pentru un CNN, dar calitatea rezultatului a rămas dependentă de volumul, diversitatea și condițiile dataset-ului.
Un prototip academic bun nu este cel care promite mai mult decât poate demonstra. Este cel care arată clar ce funcționează, ce a fost măsurat și unde începe limita. În acest caz, pipeline-ul confirmă direcția tehnică: semnalul vocal poate fi transformat într-o reprezentare vizuală și clasificat cu o rețea CNN, dar generalizarea cere un dataset mai mare, mai multe voci și condiții audio mai variate.
9. Referințe tehnice
Referințele de mai jos susțin contextul tehnic al studiului. PDF-ul și fișierele MATLAB au fost folosite pentru verificare factuală, nu ca materiale publicate în proiect.
Proiect de Software
Document academic intern folosit pentru verificarea perimetrului, structurii dataset-ului, pipeline-ului și rezultatelor documentate. PDF-ul nu este publicat pe site.
MATLAB Deep Learning Toolbox
Context tehnic pentru definirea, antrenarea și evaluarea rețelelor neuronale în MATLAB.
Sursă oficială →MathWorks - audioDatastore
Documentație relevantă pentru organizarea și citirea colecțiilor de fișiere audio în fluxuri MATLAB.
Sursă oficială →MathWorks - audioFeatureExtractor
Documentație relevantă pentru extragerea de caracteristici audio și reprezentări spectrale folosite ca intrare de model.
Sursă oficială →MathWorks - convolution2dLayer
Documentație pentru straturile convoluționale 2D folosite în arhitecturi CNN.
Sursă oficială →MathWorks - confusionchart
Documentație pentru vizualizarea matricei de confuzie și analiza erorilor de clasificare.
Sursă oficială →Notă tehnică internă
Resursă conexă din ecosistem despre clasificarea semnalelor vocale, spectrograme, CNN și preprocesare audio în MATLAB.
Deschide nota tehnică →