Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AeronauticaComunicatiiElectronica electricitateMerceologieTehnica mecanica


Compresia vorbirii prin metoda LPC (Linear Prediction Coding)

Electronica electricitate



+ Font mai mare | - Font mai mic



Compresia vorbirii prin metoda LPC (Linear Prediction Coding)

Obiectivul lucrarii este studiul compresiei vorbirii prin metoda LPC (Linear Predcition Coefficients).

1. Introducere .Metoda de compresie LPC[1]



LPC provine de la Linear Predictive Coding si este una din tehnicile comune decodare a vorbirii. LPC exploateaza redundanta semnalului vorbire prin mecanismul de generare a vorbirii: un filtru liniar excitat de un semnal numit semnal de excitatie. Semnalul excitatie se mai numeste si semnal rezidual. Codoarele pentru vorbire prelucreaza un grup de esantionae, numit cadru sau segment. Codorul vorbirii calculeaza coeficientii filtrului si semnalul de excitatie pentru fiecare cadru. Coeficientii filtrului sunt astfel calculati pentru a asigura ca energia la iesirea filtrului pentru cadrul analizat sa fie minimizata. Un astfel de filtru se numeste filtru LP analizor. Semnalul rezultant se numeste semnal rezidual pentru acel cadru particular. La decodare, filtrul LP lucreaza ca un filtru de sinteza, in timp ce semnalul rezidual actioneaza ca semnal de excitatie pentru filtrul de sinteza.

In vederea reducerii ratei de bit totale, codoarele vorbirii cum sunt CELP (code excited linear prediction) nu transmit intreg semnalul rezidual, intrucat se foloseste un tabel de codare vectorial pentru a coda semnalul de excitatie. Tehnica este numita cuantizare vectoriala (VQ), astfel incat codorul selecteaza unul dintre semnalele de excitatie dintr-un tabel predeterminat, si va transmite indexul semnalul de excitatie care se afla cel mai aproape de cel care trebuie transmis. Tabelul cu semnalele de excitatie este cunoscut atat de codor cat si de decodor. Semnalul excitatie este selectat astfel incat distorsiunea dintre cadrul original si cel reconstruit sa fie minima.

Tipic, se folosesc rate de esantionare de 8 KHz iar lungimea cadrului este de 20 ms, astfel incat exista 160 esantioane in fiecare cadru. Se gaseste ca un filtru de ordinul 10 este suficient pentru modelarea anvelopei spectrale pentru o rata de esantionare de 8 KHz, deco codorul lucreaza cu 12 parametri (10 coeficienti, castigul fitrului si indexul semnalului de excitatie) in loc de 160 de esantioane pentru un cadru.

Figura 1 - Modelul vorbirii

Modelului de vorbire prezentat in figura 1 are doua moduri de functionare. In primul mod, comutatorul K este in pozitia a si se genereaza fonemele sonore. Semnalul excitatie este constituit dintr-o serie de impulsuri dreptughiulare cu perioada Tp, Ts este frecventa de esantionare. Al doilea mod de lucru necesita comutatorul K in pozitia b, si corespunde fonemelor insonore. Exista trei filtre care modeleaza efectele glotei, ale tractului vocal si al radiatiei sonore (efectul buzelor). Multiplicarea cu constanta G este pentru modificarea intensitatii.

In aplicatiile practice se utilizeaza o schema mai compacta, asa cum se prezinta in figura 2, unde cele trei filtre sunt inlocuite cu unul singur, H(z).

Figura 2 - Reprezentarea simplificata a procesului vorbirii

Pentru filtru se foloseste structura ARMA     (Autoregressive Moving Average). Un semnal vorbire s(n) este considerat ca iesire a unui sistem excitat de un semnal excitatie u(n). Esantionul vorbirii s(n) este modelat ca o combinatie liniara a iesirilor vechi si prezente si a intrarilor vechi, dupa relatia:

(1)

unde G este castigul filtrului si sunt parametrii modelului. Numarul p implica folosirea a p esantioane trecute, si se numeste ordinul predictiei liniare. Functia de transfer H(z) a modelului se obtine prin aplicarea transformatei in z ecuatiei (1):

    (2)

ceea ce arata un model de tip poli-zerouri. In spectrul vorbirii, nazalele sunt reprezentate de zerouri si formantii sunt reprezentati de poli.

Exista doua cazuri speciale ale acestui model:

Cazul modelului de tip auto-regresiv, cand H(z) are numai poli, deci coeficientii bk sunt nuli. Acest model se foloseste din motive de simplitate si eficienta a implementarii. Ideea este ca in rezolvarea unui model poli-zeroruri este nevoie de rezolvarea unui set de ecuatii neliniare in timp ce modelul numai cu poli necesita rezolvarea unui set liniar de ecuatii.

Cazul modelului de tip medie alunecatoare, cand H(z) are numai zerouri, deci coeficientii ak sunt zero.

Transformata z inversa a modelului cu toti polii este

(3)

Coeficientii sunt numiti coeficientii LP ai filtrului liniar.

Semnalul eroare e(n) este diferenta dintre semnalul de intrare si cel estimat, dupa relatia

(4)

iar in domeniul z avem relatia de legatura

(5)

Ca urmare, modelul global poate fi descompus in doua parti, partea de analiza si partea de sinteza, asa cum se prezinta in figura 5.

Figura 5- Modelele de analiza si de sinteza

Partea de analiza analizeaza semnalul vorbire si produce semnalul eroare. Partea de sinteza preia semnalul eroare ca semnal de intrare, este filtrat de filtrul 1/A(z) si se obtine semnalul vorbire. Semnalul eroare se mai numeste semnal rezidual sau semnal de excitatie.

Exista doua tipuri de codoare bazate pe predictie liniara:

Codor adaptiv inainte sau direct (forward adaptive coder). Predictia liniara se bazeaza pe esantionale de intrare vechi. Analiza LP este efectuata in codor si se transmit coeficientii LP.

Codor adaptiv inapoi sau invers (Backward adaptive coder). Coeficientii LP sunt calculati din esantioanle vechi reconstruite. Analiza LP este facuta din nou la receptie, deci in cadrul decodorului. In acest fel, nu este necesar sa se transmita coeficientii LP de catre codor.

Estimarea coeficientilor predictiei linare

Exista doua metode larg folosite in estimarea coeficintilor predictiei liniare: autocorelatia si covarianta. Ambele metode folosesc coeficientii filtrului LP astfel incat energia reziduala (energia semnalului rezidual) sa fie minimizata. Cea mai folosita metoda este metoda celor mai mici patrate.

Ponderarea pe ferestre (windowing)

Semnalul vorbire este un semnal variabil in timp si unele variatii sunt aleatoare. Uzual, in timpul vorbirii cu intensitate mica, forma tractului vocal si a excitatiei nu se modifica in 200 ms. Dar fonemele au o durata medie de 80 ms. Cele mai multe schimbari apar mai frecvent decat intervalul de 200 ms.

Analiza semnalului presupune ca proprietatile semnalului se schimba lent in timp, ceea ce permite o analiza in timp scurt a semnalului. Semnalul este divizat in segmente succesive, analiza se face pe aceste segmente si se extrag anumite proprietati dinamice.

Semnalul s(n) este inmultit cu o fereastra de analiza w(n) pentru a extrage un anumit segment de analiza. Tehnica se numeste ponderare (windowing).

Alegerea formei ferestrei este importanta intrucat esantionale vor fi ponderate in mod diferit. Folosirea unei ferestre dreptunghiulare determina aparitia unor lobi secundari mari si anumite efecte nedorite in domeniul frecventa. Pentru a inlatura aceste oscilatii mari, se utilizeaza ferestre de filtrare fara schimbari abrupte in domeniul timp, asa cum este fereastra Hamming, Blackman, Kaiser sau Bartlett. Se pot folosi si combinatii de ferestre, asa cum se foloseste in GSM, unde fereastra de analiza are doua jumatati de ferestre Hamming de dimensiuni diferite.

Reprezentarea parametrilor LP

Parametrii LP au gama dinamica destul de mare, astfel incat sunt dificil de cuantizat. Alte moduri de reprezentare au o gama dinamica mai mica si posibil de estimat. Acest lucru permite folosirea unui numar diferit de biti pentru cuantizare, cu atat mai mic cu cat efectul coeficientilor asupra raspunsului filtrului este mai mic.

Coeficientii predictiei liniare pot avea diferite reprezentatri echivalente:

  • frecventele liniilor spectrale (line spectral frequencies - LSF);
  • coeficienti de reflectie (reflection coeficients - RC);
  • autocorelatii (autocorelations);
  • rapoarte logaritmici ale ariilor (log area ratios - LAR);
  • coeficienti de reflexie arcsine (arcsine of reflection coefficients - ASRC);
  • raspunsul la impulse al filtrului LP ( impulse responses of LP synthesis filter - IR);

Toate aceste reprezentari au relatii de legatura exacte cu coeficientii LP si pastreaza toata informatia desprea acestia. Dintre acestia, o parte sunt mai usor de calculat si au proprietati particulare ce le fac mai atractive pentru diferite scopuri.

Metoda autocorelatiei

Mai intai, semnalul vorbire s(n) este multiplicat cu o fereastra w(n) pentru a obtine un segment de vorbire ponderat sw(n), dupa relatia

(1)

Al doilea pas este minimizarea energiei semnalului rezidual. Energia reziduala se obtine cu expresia

(2)

Valorile parametrilor care minimizeaza energia E se gasesc prin calcularea derivatelor partiale ale lui E in raport cu si egalarea lor cu zero, , de unde rezulta un set de p ecuatii cu p mecunoscute

(3)

In ultima ecuatie semnalul ponderat sw(n)=0 in afara ferestrei de filtrare.

Ecuatiile liniare pot fi exprimate in functie de functia de autocorelatie.Functia de autocorelatie a unui segment ponderat de vorbire este definita de relatia

(4)

unde Nw este lungimea ferestrei. Prin inlocuirea valorilor autocorelatiei in penultima ecuatie se obtine

(5)

Setul de ecuatii liniare poate fiscris matricial sub forma

(6)

Ultima ecuatie poate fi scrisa matricial sub forma

(7)

Matricea R este o matrice Toeplitz, deci are toate elementele de pe diagonala principala egale. Acest lucru permite rezolvarea ecuatiei matriciale prin algoritmul Levinson-Durbin sau prin algoritmul lui Schur.

Datorita structurii matricii R, A(z) este de tip faza minima. Filtrul folosit la sinteaza are functia de transfer H(z) = 1 / A(z), deci zerourile lui A(z) devin polii lui H(z). Astfel, faza minima a lui A(z) garanteaza stabilitatea filtrului H(z).

Algoritmul Levinson-Durbin

Algoritmul rezolva ecuatia matricala Ax=b, in care A are o structura Toeplitz, matrice simetrica si pozitiv definita, iar b este un vector arbitrar. Aceste cerinte sunt satisfacute de matricea de autocorelatie R, definita anterior.

Algoritmul LD necesita o forma speciala a lui b, unde b consta din anumite elemente ale lui A. Si aceasta conditie este satisfacuta de ecuatiile autocorelatiei.

Fie ak(m) coeficientul k pentru un cadru oarecare m al iteratiei. Algoritmul LD rezolva iterativ setul de ecuatii in mod iterativ pentru m=1,2,.,p dupa relatiile:

(8)

(9)

(10)

(11)

Se considera initial E(0) = R(0) si a(0) = 0. La fiecare iteratie, coeficientul ak(m) pentru k=1,2,..,m descrie predictorul liniar de ordin m; eroarea de energie E(m) este redusa cu un factor de (1-k(m)2).

Intrucat E(m) nu este negativa, rezulta ca | k(m) | ≤ 1. Aceasta conditie pentru coeficientul de reflexie k(m) garanteaza ca radacinile lui A(z) vor fi in interiroul cercului unitate. Rezulta ca sinteza fltrului H(z) va fi stabila si - deci - metoda corelatiei determina stabilitatea filtrului cautat.

2. Descrierea programelor in cod Matlab

Programele folosite in cadrul laboratorului sunt prezentate in Tabelul 1. Ordinea de scriere este si ordinea de apelare. Anexa 9 contine detaliile fiecarui program.

Tabel 1 - Descrierea fisierelor utilizate

Nr.

Nume fisier program

Semnificatie

LPC_1_read_file.m

Citeste semnalul vorbire din fisier si-l organizeaza in cadre

LPC_2_find_LPC.m

Calculeaza coeficientii LPC pentru fiecare cadru

LPC_3_find_VUV.m

Calculeaza indicatorii pentru starile "Voice" si "Unvoice"

LPC_4_compression.m

Formateaza datele si scrie in fisier. Realizeaza partea finala a compresiei

LPC_5_decompression.m

Realizeaza decompresia

Functii apelate

lpcauto.m

Calculeaza coeficeintii predictiei cu ajutorul functiei de autocorelatie

f_detect_voice_AP.m

Clasifica cadrele in voice sau unvoiced pe baza criteriului puterii medii

f_detect_voice_LPC.m

Clasifica cadrele in voice sau unvoiced pe baza valorilor coeficientilor LPC

f_estimate_period.m

Estimeaza perioada semnalului din cadrele "voiced"

3. Desfasurarea lucrarii

1). Se parcurge codul sursa Matlab pentru identificarea operatiilor si a transformarilor utilizate.

2). Se ruleaza programle prezentate in tabelul 1. Se vizualizeaza si se interpreteaza variabilele intermediare importante (forma semnalului, caracterul V/U, distributia si valorilor coeficientilor LPC, forma refacuta a semnalului, gradul de distorsiuni calitative si cantitative.

3). Se interpreteaza rezultatele obtinute cu evidentierea portinunilor in care algoritmii lucreaza corect.

4). Se ruleaza setul de programe din tabelul 1, pentru cel putin 3 fisiere cu vorbire (barbat, femeie, copil, etc) Se asculta fisierele necomprimate si comprimate. Se cauta explicatii pentru diferentele calitative si cantitative observate.

5). Sa se calculeaza si sa se afiseze spectrele de putere ale semnalelor original si refacut. Comentati.

4. Tema pentru acasa

Sa se scrie codul Matlab pentru compresie si decompresie intr-un singur script (fisier), eventual cu o interfata grafica simplificata.



Inspirata din (Tamanna, 2000)



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1355
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved