Codificare predictivă liniară

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Codarea predictivă liniară (LPC, Linear predictive coding) este un instrument utilizat în principal în procesarea semnalului audio și tehnici în sinteza vorbirii pentru a reprezenta învelișul spectral al unui semnal digital sub formă de comprimat vorbit, folosind informații dintr-un model predictiv liniar [ 1] . Este una dintre cele mai puternice tehnici de analiză a vorbirii, una dintre cele mai utile metode de codificare a vorbirii de bună calitate la o rată de biți redusă. Oferă estimări foarte precise ale parametrilor de vorbire.

Descriere

Principiul de bază constă în presupunerea conform căreia vocea este rezultatul modulației cauzate de gât și gură (numite formante ) ale emisiei sonore de către corzile vocale ( reziduul ).

Conform acestei ipoteze, formantul poate fi prezis prin intermediul unei ecuații liniare care ia în considerare eșantioanele anterioare și reziduurile din scăderea formantului din eșantion.

În general, un semnal de vorbire este compus din două componente: un set de coeficienți pentru predicția liniară și o eroare de predicție.

Această tehnică este utilizată pentru a reduce semnificativ rata de biți a unui mesaj vocal, pe baza cunoașterii sursei în sine (varianta vocoder ).

Coeficienții de predicție sunt actualizați la fiecare 10-20 ms (dimensiuni foarte similare cu un fonem ). În plus, cantitatea de coeficienți este un indice al calității codării vocale. Evident, un număr mai mare de cadre garantează o redare mai bună în rezultatul final.

Intrând în mai multe detalii, se adoptă o schemă în care se obține un semnal diferențial pornind de la semnalul sursă minus semnalul trecut prin filtrul de predicție (deci modelat de coeficienții de predicție).

Acest semnal de diferență se numește „eroare de predicție”.

În timpul fazei de decodare, eroarea de predicție este apoi utilizată pentru a reconstrui semnalul vocal. Acest semnal reconstituit va fi apoi sursa pentru predicția ulterioară conform unui model cunoscut sub numele de buclă de decodare locală .

În modulațiile LPC, transmisia urmează în esență această schemă: semnalul X (kTc) este trecut printr-un analizor capabil să identifice vectorul p al parametrilor care vor fi apoi transmiși prin multiplexare către receptor și transmis către sintetizator , a cărui ieșire f ( p) va fi apoi scăzut din semnalul X (kTc) pentru a obține eroarea E (kTc) care, după o cuantificare și codificare adecvată, este multiplexată împreună cu vectorul p și trimisă la receptor.

Sintetizatorul unei codificări LPC este compus în esență din două generatoare, o vocală (generator de impulsuri) și o non-vocală (generator de zgomot alb ). Un amplificator și un filtru încrucișat sunt utilizate pentru a modela proprietățile acustice ale vocii vorbitorului.

La recepție, schema este aproximativ duală, deoarece semnalul LPC este demultiplexat pentru a recâștiga în mod distinct vectorul p care va fi sintetizat în mod corespunzător și eroarea de predicție E (kTc) care, după o decodificare adecvată, se adaugă la ieșirea sintetizatorului, astfel reconstituind semnalul X (kTc) până la eroarea de cuantificare .

Modulația LPC reduce semnificativ rata de biți a transmisiei, cu o reducere consecventă a ocupării lățimii de bandă. Cu toate acestea, implică o creștere puternică a complexității hardware și o reducere a calității semnalului original datorită prezenței sintetizatorului.

Codificare predictivă liniară excitată rezidual

Soluția la această ultimă problemă este modularea RELPC ( codare predictivă liniară excitată rezidual ). După cum sugerează și numele, RELPC nu mai exploatează eroarea de predicție, ci R rezidual (kTc), care constă din semnalul eșantionat, filtrat într-un filtru LPC invers (care elimină frecvențele înalte ale semnalului) și modelat de coeficienții c la ieșirea analizorului. Reziduul este excitația ideală pentru ca filtrul LPC să producă exact semnalul vocal original. Reziduul astfel obținut este filtrat cu un filtru trece-jos , sub-eșantionat (după eliminarea frecvențelor înalte, nu mai este necesar să se utilizeze aceeași frecvență de eșantionare ca înainte), cuantificat și codificat. Apoi este multiplexat împreună cu coeficienții c, necesari pentru reconstrucția semnalului primit.

La recepție, demultiplexorul returnează coeficienții c și reziduul subsamplat, care vor fi modificați prin inserarea anumitor zerouri în secvență, astfel încât să revină la aceeași frecvență ca reziduul original R (kTc). Atât reziduul, cât și coeficienții sunt alimentați în cele din urmă într-un filtru LPC care va returna semnalul original.

Semnalul inițial și cel primit pot fi, de asemenea, semnificativ diferite în domeniul timpului, dar sunt percepționale foarte asemănătoare având un comportament spectral similar.

Notă

  1. ^ Li Deng, Douglas O'Shaughnessy, Prelucrarea vorbirii: o abordare dinamică și orientată spre optimizare , Marcel Dekker , 2003, pp. 41–48, ISBN 0-8247-4040-8 .

Alte proiecte