STUDIU DE CAZ ACADEMIC · MATLAB / CNN

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ă.
Clase vocale 17

Cifre și comenzi direcționale în limba română.

Înregistrări 15 / clasă

Set echilibrat la nivel de clasă, dar redus ca volum total.

Context audio voce unică

Aceeași voce, captată într-un mediu controlat.

Rezultat documentat 63.53%

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ă.

Vizualizare editorială bazată pe structura proiectului original.
  1. WAV
  2. Preprocesare
  3. Spectrogramă
  4. CNN
  5. Clasificare
  6. 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ă.

01

Set închis de clase

Modelul clasifică doar clasele pentru care a fost pregătit: cifre și direcții vocale, nu limbaj liber.

02

Spectrogramă ca interfață

Transformarea audio în spectrogramă permite CNN-ului să lucreze pe o structură timp-frecvență.

03

Validare prin matrice de confuzie

Evaluarea nu se limitează la un scor global; urmărește și ce clase sunt confundate între ele.

04

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ă.

Vizualizare editorială bazată pe structura proiectului original.

Waveform

Semnal audio în timp, înainte de transformarea spectrală.

Spectrogramă

Reprezentare timp-frecvență folosită ca intrare pentru CNN.

Confusion matrix

corectslabslab
slabcorectconfuzie
slabconfuziecorect

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ă.

Iterația 01

13.73%

Semnal inițial de performanță scăzută, asociat cu separare insuficientă între clase.

Iterația 02

32.55%

Îmbunătățire intermediară după ajustări ale pipeline-ului și ale configurației de antrenare.

Iterația 03

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ă →