3. Digitalna obrada govora (PDF 4268KB)

6.9.2013.
SPIE09 Digitalna obrada zvučnih signala
Proces nastajanja govora u komunikaciji
03 Digitalna obrada govora
Ozren Bilan, viši predavač
1. Poruka u apstraktnom obliku pojavljuje se u mozgu
Digitalna obrada
govora
NEURALNA MREŽA
Govor je signal koji sadrži vremenski diskretnu informaciju. Temeljna namjena govora je
komunikacija. Govorni signal reprezentiramo tako da očuvamo sadržaj u obliku koji je
pogodan za prijenos, pohranu ili obradu. Može se prenijeti valni oblik (vrlo visoki protok) ili
parametri (niskim protokom) što donosi veliku uštedu količine podataka ali zahtjeva više od
1000 puta povedanu brzinu obrade. PCM 0.01, a CELP 13,5 MIPS.
Kodiranje govora počelo je 70-tih godina - sustavi sa reprezentacijom valnog oblika PCM
64 kbit/s i ADPCM 32 kbit/s.
Krajem 80-tih razvoj mobilnih komunikacija - sustavi s parametarskom reprezentacijom
JDC-VSELP, RCR STD-27B, RPE-LTP, CEPT 13 kbit/s, IS96 QCELP. PSI-CELP, Wide Band
Coders (75 do 400 b/s). Mobitel ne prenosi valni oblik govora nego sliku govornog trakta
2. poruka se pretvara u skup neuronskih
signala koji upravljaju postupkom
artikulacije (pomicanje jezika,
usnica, glasnica, itd.)
3. pomak artikulatora formira zvučni
signal koji sadrži informaciju izvorne poruke
1.
1.1.
1.2.
1.3.
1.4.
2.
3.
4.
5.
6.
7.
UVOD
Konti nuirani i diskretni signali i DSP
Ana liza u vremenskom i frekvencijskom području
DSP tra nsformacije
Projektiranje digitalnih FIR i IIR filtera
Zvučni signali visoke razlučivosti HD Audio
Digitalna obrada govora
Sa žimanje zvučnih datoteka
Pri mjena umjetnih neuralnih mreža na zvučne signale
Pri mjena Wavelet a nalize na zvučne signale
Ra zlike DSP i procesora
30 s a ti predavanja + 30 sati laboratorijskih vježbi
Svi MATLAB kodovi nalaze se u skripti LAB VJEŽBE DOZS
Zračni tlak iz pluda
O. Bilan
2
u pdf inačici nisu vidljive animacije
Elementi govora FONEMI
Primjene digitalne obrade govora
•
•
•
•
•
•
Govorom se prenosi vremenski diskretna informacija
nastaje spajanjem elemenata konačnog skupa simbola
Osnovni elementi govora se nazivaju FONEM ili GLAS
Svaki jezik ima različit skup fonema
(tipično 30 do 50 fonema)
• sustavi za dijalog čovjeka i računala,
• sustavi za transformacije govornog signala (promjena visine glasa, brzine
izgovora…)
• sustavi za pomod osobama oštedena vida, sluha ili govora,
• sustavi za poboljšanje kvalitete govora,
• analiza govora u svrhu dijagnostike raznovrsnih oboljenja
• hrvatski jezik ima 30 fonema i 30 grafema
• engleski jezik ima 45 fonema i 26 grafema
• mađarski ima 40 fonema i 40 grafema
O. Bilan
3
Znanstvena područja koja se bave govorom
O. Bilan
Klasifikacija fonema u hrvatskom jeziku
• Otvorni glasovi ili samoglasnici ili vokali
• Poluotvorni glasovi ili glasnici ili sonanti
• Zatvorni glasovi ili suglasnici ili konsonanti
Samoglasnici (vokali) su zvučni glasovi
• Otvorni glasovi ili samoglasnici ili vokali
• Poluotvorni glasovi ili glasnici ili sonanti
• Zatvorni glasovi ili suglasnici ili konsonanti
Studija pravila jezika i njihovog utjecaja na
ljudsku komunikaciju LINGVISTIKA
Studija i klasifikacija glasova u govoru FONETIKA
Poznavanje lingvistike i fonetike je od velikog
značaja kod sinteze i prepoznavanja govora
O. Bilan
kodiranje govora u svrhu učinkovitog prijenosa ili pohrane,
prepoznavanje govora, diktiranog ili prirodnog s vezanim izgovorom riječi,
prepoznavanje govornika,
prepoznavanje jezika,
sustav detekciju riječi,
sinteza govora
4
Na formiranje glasa utječe
položaj jezika
• položaj usana
• položaj čeljusti
• položaj resice
• otvor glasnica
• pritisak u pludima
Samoglasnici (vokali) su zvučni glasovi
prednji
ie
prednji dio jezika i prednje nepce
srednji
a
sredina jezika
stražnji
ou
stražnji dio jezika i stražnje nepce
dijele se i prema veličini otvora između jezika i nepca
• najviši ili najotvoreniji
a
• srednji
eo
• najniži ili najzatvoreniji i u
5
O. Bilan
6
1
6.9.2013.
Poluotvorni glasovi ili glasnici ili sonanti
• j l lj m n nj r v
• uslijed približavanja ili dodirivanja pojedinih organa otvor za prolaz zraka se sužava ili djelomično zatvara
• svi glasnici su također zvučni glasovi
• r može biti i samoglasnik
Slogovi
• Spajanjem glasova dobivaju se slogovi
• Slog je skup glasova koji se izgovara jednim izdisajem
Zatvorni glasovi ili suglasnici ili konsonanti
Frikativi
•
•
•
•
•
•
•
•
Količina ili kvantitet sloga
• vrijeme koje je potrebno da se slog izgovori
• određen je dužinom samoglasnika u slogu (muž / muževi)
• dodatni parametar koji se uzima u obzir pri sintezi temeljem
fonema
zvučni: v z ž
bezvučni: f s š h
Podjela glasnika i suglasnika prema mjestu tvorbe
dvousneni ili bilabijalni b p m zapreka su obje usne
usnenozubni ili labiodentalni f v donja usna i gornji zubi
zubni ili dentalni d t n c z s zubi i jezik
prednjonepčani ili palatalni j lj nj čć dž đ ž š jezik i prednje nepce
stražnjonepčani ili velarni k g h zadnji dio jezika i stražnje nepce
tekudi ili likvidni l r vrh jezika dodiruje prednje nepce
nosni ili nazalni m n resica je spuštena
piskavi ili sibilantni s z c stvara se piskav šum
Akcent pri izgovoru
• akcent je isticanje samoglasnika izgovarajudi ga vedom snagom
kratkosilazni brat, ginuti, govor, istina
dugosilazni budim, dragi, glad, meso
kratkouzlazni gora, loza, voda, pero
dugouzlazni glava, hvaliti, pitati, trava
Zračni tlak iz pluda
O. Bilan
7
Potrebna znanja za digitalnu obradu
govora
O. Bilan
8
Kodiranje govora
• nastanak govora
• vremenski diskretni signali i sustavi
• transformacije reprezentacija signala i sustava
• Što je kodiranje govora ?
Nije kriptografska zaštita nego
 z-transformacija
 Fourier-ova transformacija
 diskretna Fourier-ova transformacija
učinkovita digitalna reprezentacija
• Gdje se primjenjuje ?
• osnove digitalnih filtara FIR, IIR
• sempliranje
U svim sustavima temeljenim na:
digitalnom zapisu ili prijenosu.
Analogni sustavi se više ne koriste.
 teorem sempliranja
 decimacija sempliranog valnog oblika
 interpolacija sempliranog valnog oblika
O. Bilan
9
O. Bilan
10
Sustavi za prijenos, pohranu i obradu govora
Količina informacije u govoru
Temeljni problem teorije informacija je potrebna brzina prijenosa
informacije
Kako predstaviti (reprezentirati) govorni signal ?
• očuvanje sadržaja poruke govornog signala
gruba procjena je vezana uz fizička ograničenja pomicanja artikulatora
tipična brzina govora iznosi 10 fonema u sekundi
za kodiranje fonema dovoljno je 6 bita
za prijenos govorne informacije je dovoljno oko 60 bita/s
• takva reprezentacija ne smije štetiti sadržaju govorne poruke
Stari telefonski
sustav
• donja granica stvarnog informacijskog sadržaja govora je mnogo viša
• navedena procjena ne uključuje identitet govornika, emocionalno
stanje, brzinu izgovora, glasnodu, itd.
O. Bilan
• reprezentacija govornog signala u obliku koji je
pogodan za prijenos, pohranu ili obradu
11
CENT
RALA
PARICA
MREŽA
CENT
RALA
Sta ndardna frekvencija sempliranja telefonskog kanala
je 8 KHz, a ograničenje frekvencijske širine pojasa je
zbog a ntialias filtera u centralama za maksimalnu širinu
poja sa je W =3400 Hz.
PROPUSNI POJAS TELEFONSKOG KANALA OGRANIČEN JE IZMEĐU
f min = 300 Hz i fmax = 3000 Hz, SA UKUPNOM KORISNOM ŠIRINOM
POJASA OD W = 2700 Hz.
O. Bilan
12
2
6.9.2013.
Kriteriji usporedbe codec-a
Karakteristike govora važne za kodiranje
•
• brzina, izlaz, bitrate (bit/s)
• kvaliteta
– objektivna mjerila (klasične metode, izobličenje signala i SNR, nisu dobra mjerila za ljudsku percepciju
rekonstruiranog signala)
– subjektivna mjerila (često važnija od objektivnih!)
• kašnjenje
– algoritamsko kašnjenje u koderu na izvoru - koliko traje kodiranje
– kod dekodiranja - koliko traje dekodiranje?
– sinkronizacija s ostalim medijima u višemedijskoj aplikaciji
• otpornost na gubitke
– važno za prijenos preko mreže
• primjena na ostale zvukove koji nisu govor, npr. fax i modemske signale, te glazbu
• složenost sklopovlja i programa
• cijena izvedbe
Ovisnost kvalitete i brzine kodera
Izvor govora: ljudski govorni organi
– Zrak iz pluda prolaskom kroz govorne organe
(dušnik, grkljan, glasnice, šupljine usta i nosa) stvara glas
• zvučni glasovi (zrak izaziva titranje glasnica)
• bezvučni glasovi (nema titranja glasnica)
– Frekvencijski odziv 60 Hz -8 kHz, dinamički raspon 40 dB
• Prijamnik: ljudski slušni organi
– Čujno područje 20Hz –20 kHz, dinamički raspon 120 dB
– Za razumljivost najvažnije 2 -5 kHz(500-2000Hz)
– Kvaliteta se ocjenjuje subjektivno
– Anomalija: efekt maskiranja: jedan zvučni signal prekriva drugi (ovisno o
relativnima glasnodama i frekvencijama)
O. Bilan
MOS Mean Opinion Score
13
O. Bilan
Subjektivna mjerila kvalitete
14
Objektivne metode
Novije objektivne metode temelje se na poznavanju ljudskog slušnog sustava –
računaju izobličenje zvučnog signala s percepcijskim težinskim faktorima. Ideja je:
izobličenja koje uho više čuje imaju vedi težinski faktor od onog manje primjetnog
ili neprimjetnog
Opda ocjena kvalitete -mišljenje korisnika
• Mean Opinion Score (MOS)
• Degradation MOS (DMOS)
Perceptual Evaluation of Speech Quality (PESQ)
Ocjena razumljivosti govora
• dijagnostički testovi s parovima riječi koje slično zvuče, 90% točnost
smatra se toll quality
• Dynamic Rhyme Test (DRT) – 96 parova engleskih riječi, npr. dune/tune,
chair/care, moon/noon, .. slušateljima se nudi popis i pita ih se koju riječ su čuli
O. Bilan
15
•
•
•
•
ITU-T preporuka P.862
metoda procjene subjektivne kvalitete govornih kodeka
algoritam predviđa subjektivnu ocjenu kvalitete degradiranog uzorka govora
izlaz iz algoritma je procijenjena vrijednost MOS
Perceptual Evaluation of Audio Quality (PEAQ)
•
•
ITU-R preporuka BS.1387
algoritam za procjenu kvalitete audia
O. Bilan
16
Reprezentacija govora: valni oblik ili parametri ?
Temelji konstrukcije codeca
Svojstvo govornog signala: veda je vjerojatnost nastajanja manjih
vrijednosti nego vedih vrijednosti
– Uniformna kvantizacija nije optimalna
– Mora se točnije kodirati manje vrijednosti od vedih jer nelinearna
kvantizacija daje bolju kvalitetu uz jednak broj bita po uzorku
Postoji visoka korelacija između uzastopnih uzoraka i uzastopnih okvira
– Uklanjanjem redundancije u signalu sažima se zapis
Potrebna brzina prijenosa (bit/s) = cijena
Temeljem poznavanja svojstava govora, tj. fizioloških karakteristika
govornog trakta, može se napraviti model
– Parametri modela se računaju na temelju stvarnih uzoraka
– Prenose se samo parametri, a govor se rekonstruira (sintetizira) na
temelju modela
– Najnoviji koderi (MPEG-4 SA) ideju šire i na druge zvukove
O. Bilan
17
O. Bilan
18
3
6.9.2013.
Sustavi sa reprezentacijom
valnog oblika signala
•
•
•
•
PCM G.711
ADPCM G.721,
G.726, G.727
pojavili se početkom 70-tih godina
složenost analognih centrala postala je prevelika i prijetila je zagušenjem sustava
Najznačajniji standardi su PCM (64 kbit/s) i ADPCM (32 kbit/s)
Vedina uredskih telefonskih instalacija je i danas temeljena na tim standardima
codec = coder + decoder
uređaj koji kodira i dekodira, odnosno komprimira i dekomprimira, audio i video
•
kodere standardizira međunarodno tijelo za standardizaciju telekomunikacijskog sektora ITU-T
(The Telecommunication Standardization Sector of the International Telecommunication Union) oznake
G.711 (PCM)
G.721, G.726, G.727 (ADPCM)
•
•
•
to su algoritmi koji nastoje valni oblik govornog signala što bolje reprezentirati i prenijeti na prijemnu
stranu
ne koriste činjenicu specifičnih svojstava govornog signala,
koderi se mogu koristiti i za prijenos složenijih signala (npr. muzike).
O. Bilan
19
O. Bilan
A-krivulja (Europa)
μ-krivulja (SAD, Japan)
Razlika je u
ovom dijelu
povedat demo
• Prednosti:
– jednostavan
– visoka kvaliteta (MOS 4.3)
– malo kašnjenje (1 uzorak)
• Nedostaci:
– 64 kbit/s vrlo visok protok (skup)
– nema mehanizme za kontrolu i ispravljanje
pogrešaka pa nije dobar za internetsku
telefoniju
• Primjena:
ved desetljedima u uporabi u fiksnoj
telefonskoj mreži
A-krivulja (Europa)
μ-krivulja (SAD, Japan)
μ-krivulja
(SAD, Japan)
A-krivulja (Europa)
O. Bilan
21
Kompandiranje
Digitalni protok je vrlo važan u telekomunikaciji jer je upravo proporcionalan cijeni
prenošenog signala. Ušteda bita je ušteda troškova. Kompandiranje je uobičajena
tehnika reduciranja digitalnog protoka audio signala.
Osnovi princip: smanjuje se broj kvantizacijskih razina.
Razlog: najglasniji zvuk iznosi 120 dB, a to je milijun puta veda amplituda od najtišeg
zvuka 0 dB. Uho ne razlikuje razine između zvukova čija je razlika razina manja od 1 dB,
tj. 12% razlike amplitude. Zbog toga postoji samo 120 različitih razina glasnode koje
uho detektira unutar logaritamske skale amplituda od jednog milijuna vrijednosti.
Ako su kvantizacijske razine raspodijeljene jednoliko, moramo koristiti 12 bitova za
kakvodu telefonskog govora.
O. Bilan
22
Kompandiranje se izvodi na tri načina:
1.
analogni signal propustimo kroz nelinearni sklop prije linearnog 8 bitnog ADC,
2.
primijenimo 8 bitni ADC s koracima nejednake veličine ili
3.
koristimo linearni 12 bit ADC s digitalnom look-up tablicom (ulaz 12 bit, izlaz 8 bit).
Svaka od tri opcije treba istu nelinearnosti ali na različitim mjestima: analogni sklop, ADC
ili digitalni sklop.
Za kompandiranje se koriste skoro dva identična standarda: µ255 u Americi i A krivulja u
Europi i ostalom svijetu. Obje koriste logaritamsku nelinearnost, jer takva ovisnost
linearizira ovisnost ljudskog uha. U obliku jednadžbe µ255 i A krivulja određene su:
Učinimo li kvantizaciju nejednolikom, tako da se prilagodimo karakteristici ljudskog
sluha, potrebno je samo 8 bitova.
Rješenje je intuitivno:
• ako su signali niskih razina
kvantizacijski intervali moraju biti mali;
• ako su signali visokih razina
kvantizacijski intervali moraju biti vedi.
20
Slika prikazuje grafove jednadžbi za ulaznu varijablu, x, između -1 i +1, što na izlazu daje varijablu
koja također poprima vrijednosti između -1 i +1. Jednadžbe obrađuju samo pozitivne ulazne
vrijednosti, a dijelovi krivulje negativnih ulaznih vrijednosti nalaze se iz simetrije.
Slika (a), pokazuje kako su krivulje µ255 i A vrlo slične. Jedina značajna razlika je u blizini izvorišta jer
je µ255 glatko zaobljena, dok A prelazi u pravac pa je računala mnogo lakše obrađuju.
Realizacija tabličnih nelinearnosti vrlo je teška zadada za analognu elektroniku. Jedan od postupaka
koji se koristi je logaritamski odnos struje i napon uzduž PN spoja diode i dodatni sklopovi
kompenzacije temperaturnog pomaka. Najvedi broj sklopova za kompandiranje koristi različitu
strategiju: aproksimiraju nelinearnost pravcima. Tipični pristup je aproksimacija logaritamske krivulje
sa 16 ravnih odsječaka. A-krivulja je jednostavnija za obradu računalom.
Kao i svi integrirani sklopovi, kompanderi se sastoje od sofisticiranih i zaštidenih unutrašnjih shema.
PCM A-krivulja (Europa) i μ-krivulja (SAD, Japan)
Uzorkovanje na 8 kHz, nelinearna kvantizacija
po logaritamskoj karakteristici prema A-krivulji
(Europa) ili μ-krivulji (SAD, Japan).
A-krivulja jednostavnija za obradu računalom
PCM
Pulsno kodna modulacija PCM je
najednostavniji oblik skalarne
kvantizacije. Svaki uzorak se
zaokružuje na najbližu vrijednost
diskretnog skupa, kako smo
pokazali.
Jednolika PCM sastoji se od niza
jednoliko udaljenih diskretnih
vrijednosti gdje je korak između
svake
razine
kvantizacije
konstantan.
Valni oblik aproksimira se
kvantiziranjem govornih uzoraka
prioje prijenosa. PCM ima visoku
kvalitetu govora ali vrlo velike
brzine protoka.
Primjeni li se nejednoliki korak
kvantizacije
logaritamskim
kvantizerom postiže se velika
ušteda jer se sa samo 7-8 bitova
može postidi karakteristika 12
bitnog
kvantizera.
Primjeri
logaritamskog kvantizera su μ
krivulja i A krivulja koje demo
opisati. Postupak se naziva
kompandiranje.
za
za
za
Jednadžbe µ i A kompandiranja. Jednadžba opisuje nelinearnosti za µ255 krivulju
kompandiranja. Konstanta µ, ima vrijednost 255, odakle i dolazi ime ovog standarda. Za
A krivulju kompandiranja, konstanta A, ima vrijednost 87.6.
Jednoliki i logaritamski kvantizer
O. Bilan
23
O. Bilan
24
4
6.9.2013.
µ i A-krivulja kompandera
DPCM
Usporedit demo eksponencijalni signal bez sažimanja i sažet µ-krivuljom, pa prikazati rezultate i izvesti
zaključak kada su veda izobličenja i zašto.
Sukcesivni uzorci govornog signala su vrlo korelirani pa razlika susjednih uzoraka ima
manju varijancu od izvornog signala. Kodiramo li razliku susjednih uzoraka, možemo
koristiti manje bitova, a dobiti istu kvalitetu kao pri kodiranju cijelog signala. DPCM
kvantizira razliku susjednih uzoraka, umjesto izvornog signala. Istovremeno DPCM koristi
short-time prediktor kako bi se dodatno smanjio protok.
60
Izvorni signal
Kompandirani signal
Mu = 255; % parametri kompandera s mi-krivuljom
sig = -4:.1:4;
sig = exp(sig); % eksponencijalni signal koji se kvantizira
V = max(sig);
Pri tome nastaju mehanizmi granularnog šuma i preopteredenja nagiba (slope overload). Adaptivna Diferencijalna PCM
je proširenje prethodnog postupka uz adaptivnu veličinu koraka i adaptivnu predikciju, a opisuje je ITU-T norma G.726.
50
40
Posebni slučaj DPCM kvantizira razliku tekude vrijednosti signala i njegove prethodne vrijednosti koraka. Onda je
prediktor y(k) = x(k-1). Prikazana je primjena postupka. Program kodira signal pile, dekodira ga i grafički prikazuje izvorni
i dekodirani signal. Puna plava linija je izvorni signal, a crtkana crvena linija predstavlja dekodirani signal. Na kraju se
računa srednji kvadrat greške izvornog i dekodiranog signala što u biti predstavlja izobličenje signala. Srednji kvadrat
greške iznosi 0,03 što pokazuje učinkovitost postupka.
30
% 1. Kvantiziraj intervalima jednake širine bez kompandera.
[index,quants,distor] = quantiz(sig,0:floor(V),0:ceil(V));
20
10
% 2. Koristi istu particiju i koder ali sažmi
% prije kvantizacije, a ekspandiraj nakon
compsig = compand(sig,Mu,V,'mu/compressor');
[index,quants] = quantiz(compsig,0:floor(V),0:ceil(V));
newsig = compand(quants,Mu,max(quants),'mu/expander');
0
distor2 = sum((newsig-sig).^2)/length(sig);
[distor, distor2] % prikaži oba srednja kvadrata izobličenja.
plot(sig); % prikaz izvornog signala plavo
hold on;
plot(compsig,'r--'); % prikaz kompandiranog signala crveno
grid;
legend('Izvorni signal','Kompandirani signal','Location','NorthWest')
ans =
0.5348
0.0397
bez kompandera s kompanderom
0
10
20
30
40
50
60
70
80
Izlaz pokazuje da su izobličenja manja pri postupku
kompandiranja. Razlog tome je što su intervali jednake širine
prikladniji za logaritam signala, a neprikladni su za govorni
signal. Slika pokazuje način promjene signala postupkom
kompandiranja.
>> compressed = compand(1:5,87.6,5,'a/compressor')
expanded = compand(compressed,87.6,5,'a/expander')
compressed =
3.5296 4.1629 4.5333 4.7961 5.0000
expanded =
1.0000 2.0000 3.0000 4.0000 5.0000
>> compressed = compand(1:5,255,5,'mu/compressor')
expanded = compand(compressed,255,5,'mu/expander')
compressed =
3.5628 4.1791 4.5417 4.7997 5.0000
expanded =
1.0000 2.0000 3.0000 4.0000 5.0000
Primjer koji ilustrira činjenicu
da kompresor i ekspander
izvode inverzne operacije
O. Bilan
25
90
predictor = [0 1];
% y(k)=x(k-1)
partition = [-1:.1:.9];
codebook = [-1:.1:1];
preopteredenje nagiba
t = [0:pi/50:2*pi];
x = sawtooth(3*t); % Izvorni signal
% Kvantiziramo x pomodu DPCM.
encodedx =
dpcmenco(x,codebook,partition,predictor);
% rekonstrukcija x iz moduliranog signala
decodedx =
dpcmdeco(encodedx,codebook,predictor);
plot(t,x,t,decodedx,'r--'); grid;
legend('Izvorni signal','Dekodirani
signal','Location','NorthOutside');
distor = sum((x-decodedx).^2)/length(x)
% izobličenje srednji kvadrat greške
distor =
0.0327
ADPCM
•
•
•
–nema algoritamskog kašnjenja
–prenosi i modemske i fax signale bez degradacije
•
primjena: kudni bežični telefon - norma DECT
(Digital European Cordless Telephony)
primjena i u širokopojasnom koderu;
preporuka ITU-T G.722Wideband (7 kHz) audio codec by Subband
ADPCM (SB-ADPCM)
– nije oformljen svjetski standard jer je svatko imao vlastiti sustav. Najvažniji su:
• sjeverno američki standard IS54 VSELP
• 1989 TIA (Telecommunication Industry Association) brzina prijenosa 7.95 kbit/s
nastavak…
–64 (56,48) kbit/s
–primjena: ISDN aplikacije, telekonferencija
O. Bilan
27
Prvi sustavi s parametarskom reprezentacijom
•
•
•
•
japanski standard JDC-VSELP
standardiziran od strane RCR (Research and Development Center for Radio
Systems) pod oznakom RCR STD-27B
europski standard GSM, RPE-LTP koder
1987 Groupe Special Mobile of CEPT 13 kbit/s
– svi navedeni sustavi su posebno prilagođeni govornom signalu,
– visoka učinkovitost sažimanja ostvarena na račun činjenice da govorni
signal u sebi sadrži značajnu količinu redundantne (nebitne) informacije
– UŠTEDA u brzini prijenosa
O. Bilan
28
Noviji parametarski koderi govornog signala
početkom 90 godina
• želja za udvostručenjem broja telefonskih kanala prepolovljenom brzinom prijenosa uz
očuvanje kvalitete (Half Rate, HS Coders)
• ili povedanje kvalitete uz istu brzinu prijenosa (Enhanced Full Rate, EFR Coders)
primjer takvih kodera:
• half-rate GSM standard ETSI-TCH-HS, 1994, brzine prijenosa od 5.6kbit/s.
• novi sjeverno-američki standard, IS96 QCELP
• novi japanski standard JDC Half-Rate PSI-CELP koder brzine prijenosa od 3.45 kbit/s
Noviji koderi govornog signala
• dodatna učinkovitost sažimanja temeljem povedanja kompleksnosti kodiranja
• zbog konkurencije danas je naglasak na kvaliteti reproduciranog signala
• brzina prijenosa je sekundarna
• teži se proširenjem spektralnog pojasa s 3.5 kHz na 7 kHz, tzv. Wide Band Coders
razdvajanjem bitne informacije od nebitne, te opisom nebitnog dijela
modelom, a kvantizacijom, kodiranjem i prijenosom samo bitnog dijela
O. Bilan
Krajem 80-tih godina dodatni zamah razvoju postupaka učinkovitog kodiranja govornog
signala dao je razvoj mobilnih komunikacija
Kod mobilnih sustava, cijena kanala je direktno proporcionalna korištenoj brzini prijenosa
presudna važnost mobilnih sustava - učinkovito sažimanje
Prvi sustavi s parametarskom reprezentacijom
• značajan problem mobilnih digitalnih komunikacija
- nepouzdanost i mala kvaliteta prijenosnog kanala
- velika vjerojatnost pogreški u prijenosu, kao i povremeni totalni prekidi kanala.
• zbog toga nastaje potreba za algoritmima koji su imuni na probleme u prijenosu
• zahtjev na jednostavnost i malu potrošnju električne energije
nedostaci:
–visoka brzina (postoje bolja rješenja na manjim brzinama), osjetljiv na gubitke
•
26
Prvi sustavi s parametarskom reprezentacijom
 osim tipične brzine od 32 kbit/s, ovisno o broju bita za kodiranje greške,
norma specificira i brzine 40 kbit/s (5 bita), 24 kbit/s (3 bita), 16 kbit/s (2
bita)
•
prednosti:
•
O. Bilan
29
O. Bilan
30
5
6.9.2013.
Parametarska reprezentacija
Koderi temeljeni na modelu
• Govorni signal je predstavljen modelom, a ne valnim oblikom!
• Model je opisan parametrima.
• Parametri modela se određuju vremenski kratkotrajnim postupcima.
• Parametri se kvantiziraju, kodiraju i pretvaraju u digitalni niz željene brzine
prijenosa.
• Na dekoderu se provodi obrnuti postupak.
Parametarska reprezentacija
• Pogreške parametarske reprezentacije:
– uslijed neusuglašenosti modela i stvarnog fizikalnog procesa,
– uslijed pogrešaka prilikom estimacije parametara modela,
– uslijed kvantizacijskih pogrešaka parametara.
• Povedanje kvalitete
– Hibridnim postupcima
O. Bilan
Ideja:
koder i dekoder imaju isti parametarski model govornog trakta
 Parametri modela se računaju za okvire uzoraka govora ~20ms
 Dekoderu se prenose parametri modela, a ne uzorci govora
pa se govor sintetizira na odredištu
 Princip analize/sinteze
• postižu se vrlo male brzine
• prvi koderi, npr. LPC-10, su bili lošije kvalitete, razvijeni za
sustave ograničene namjene, npr. robotika, sigurna telefonija
• noviji koderi, npr. CELP na malim brzinama postižu dobru
kvalitetu, ali su računski složeniji
31
O. Bilan
32
Najznačajniji organ formiranja govora su glasnice. Ponašaju se kao
mehanički oscilator, a osciliraju uslijed struje zraka iz pluda kroz glotis.
Frekvenciju titranja određuje pritisak zraka iz pluda na ulazu u glasnice i
napetost glasnica kojim upravlja govornik. Periodičkim titranjem, glasnice
formiraju periodičku struju zraka koja prolazi kroz vokalni trakt.
Ako su glasnice potpuno opuštene, nede dodi do oscilacija i struja zraka iz
pluda de neometano prolaziti kroz vokalni trakt.
Vokalni trakt spektralno mijenja pobudni signal - ponaša se kao filtar.
Kako geometrija cijevi orgulja određuje visinu i spektralni sastav signala,
tako geometrijski oblik vokalnog trakta određuje spektralne komponente
signala koje se pojačavaju ili prigušuju.
Orgulje imaju mnogo cijevi nepromjenjive geometrije, a vokalni trakt ima
samo jednu cijevi, čiji se oblik mijenja zavisno o položaju artikulatora.
Pored karakteristika pobudnog signala vokalnog traka, na formiranje glasa
utječu i položaj jezika, usana, čeljusti i resice.
prisjetimo se:
LARINGOSKOPIJA:
gore desno NORMALAN POLOŽAJ GLASNICA
dolje desno ZA VRIJEME ZVIŽDANJA,
lijevo 140 Hz, 83 dB
Proces nastajanja govora
Model mora biti blizak sa fizikalnim procesom
nastajanja govornog signala. 70-tih godina
istraživani su akustički modeli govora:
• proces nastajanja signala,
• širenje kroz vokalni trakt,
• zračenje na usnicama i
• širenje zvučnog vala otvorenim prostorom.
Vokalni trakt se sastoji od: ždrijela, usne šupljine,
jezika, nepca, zubi, usne, resice i nosne šupljine. Ne
sadrži nosnu šupljinu (nazalni trakt), ali obzirom da
nazalni trakt sudjeluje u formiranju nekih glasova
ubrajamo ga u vokalni trakta. Pluda govornika pod
djelovanjem mišida potiskuju zrak kroz vokalni trakt
O. Bilan
33
Pitch, harmonik i formant
Zaključujemo: govor nastaje pobudnim signalom kojeg mijenjaju rezonancije koje su posljedica
promjena oblika vokalnog, nazalnog i faringealnog trakta. Pobudni signal mogu biti glotalni impulsi
koji nastaju periodičnim otvaranjem i zatvaranjem glotisa (kažemo nastaju zvučni glasovi),
kontinuiranim zračnim protokom (kažemo nastaju bezvučni glasovi) ili istovremenom kombinacijom.
Periodična komponenta glotalne pobude određena je fundamentalnom ili osnovnom frekvencijom
F0 (Hz) koju nazivamo pitch - određen je percipiranom fundamentalnom frekvencijom.
Rezonantne frekvencije vokalnog, oralnog i faringealnog trakta nazivamo formanti.
U spektru govora, pitch se pojavljuje kao vrlo uski vrh fundamentalne frekvencije i harmonika, dok se
formanti pojavljuju kao široki vrhovi anvelope ili ovojnice spektra.
• Okvir s 30-ms zvučnog govora (dolje) i njegov spektar (prikazan kao magnituda FFT).
• Harmonici su označeni H1, H2, H3, itd.; formanti su F1, F2, F3, itd., a F0 (Hz) je pitch
• Spektralna ovojnica je samo pogodnost prikaza, a implicitno se pojavljuje samo pri FFT
F0, H1, H2, H3
Periodogram Power Spectral Density Estimate
0
-10
Power/frequency (dB/Hz)
-20
-30
-40
-60
-80
F1, F2, F3
0
0.1
0.2
0.3
0.4
0.5
Frequency (Hz)
O. Bilan
O. Bilan
0.6
0.7
0.8
0.9
34
Pojam zvuk podrazumijeva vibracije koje uzrokuju nastanak zvučnih valova. Oni se šire titranjem
čestica medija. Temelj za opisivanje nastanka i širenja zvuka u vokalnom traktu su zakoni fizike. U
prvom redu osnovni zakone očuvanja mase, očuvanja količine gibanja i očuvanja energije zajedno
sa zakonima termodinamike i mehanike fluida koji se primjenjuju na zrak.
Zrak je osnovni medij širenja zvuka kod govora, a pripada grupi stlačivih fluida niske viskoznosti.
Fizikalnim principima postavlja se skup parcijalnih diferencijalnih jednadžbi koje opisuju gibanje
zraka u govornom sustavu.
Formulacija i rješenje diferencijalnih jednadžbi je iznimno složena osim ako ne uvedemo
pojednostavljenje oblika vokalnog trakta. Akustička teorija uzima u obzir:
• vremensku promjenjivost oblika vokalnog trakta
• gubitke zbog toplinske vodljivosti i viskoznog
trenja na stjenkama vokalnog trakta
• mekoda stjenke vokalnog trakta
• zračenje zvuka na usnama
• akustička veza usne i nosne šupljine
• izvor zvuka u vokalnom traktu.
a) Model vokalnog trakta;
b) Odgovarajuda funkcija površine poprečnog presjeka A(x,t)
c) Model i aproksimacija
-50
-70
GLOTIS
aproksimacija
1
35
O. Bilan
36
6
6.9.2013.
Vremenski diskretni model Izvor–Sustav
Model sa spojenim cijevima
Utjecaj oblika glotalnog pulsa, vokalnog trakta i zračenja
na usnicama se združuje u filtru H(z).
Simulacija presjeka govornog trakta
Govor se može modelirati kao izlaz iz linearnog,
vremenski promjenjivog sustava pobuđenog
kvaziperiodičnim nizom impulsa
(za vrijeme zvučnog govora),
ili
slučajnim šumom
(za vrijeme bezvučnog govora)
Presjek govornog trakta
3
2
korijen(S)
1
0
-1
-2
-3
Nedostaci opisanog modela
0
0.1
0.2
0.3
0.4
0.5
x
0.6
0.7
0.8
0.9
Izlazni spektar
60
50
40
30
20
10
0
-10
0
0.5
1
1.5
2
2.5
3
3.5
4
f
O. Bilan
Model formiranja govornog signala
1
simulacija govora
zvučni tlak (dB)
Oblik vokalnog trakta može se modelirati skupom
cijevi, čiji presjek varira od glasnica do usnica. Uz
relativno mali broj cijevi postiže se aproksimacija
akustičke prijenosne funkcije. Takav pojednostavljeni
model omogudio je određivanje analitičkih rješenja
odziva za zadanu pobudu i zadan oblik vokalnog
trakta.
Svaki glas ima karakteristični skup cijevi, koji
aproksimira oblik vokalnog trakta
• U slučaju da su dužine svih cijevi jednake, tada je
vrijeme širenja zvučnog vala kroz svaki segment
jednako.
• Takav model se može opisati u vremenski diskretnoj
domeni bez gubitka točnosti zbog sempliranja
• Period sempliranja mora biti jednak dvostrukom
vremenu širenja kroz jednu cijev.
4.5
4
• Problem vremenske promjene parametara govornog
trakta je jače izražen kod eksplozivnih glasova (b p d t g k)
• Model koristi diskretni sustav bez nula, što nije dovoljno
za nazalne glasove (m n), a stvara i manje probleme kod
frikativa (zvučni: v z ž; bezvučni: f s š h)
• Metoda izmjene zvučni/bezvučni nije dovoljna za zvučne
frikative (v z ž) pa se moraju koristiti složeniji modeli
• razmak pobudnih impulsa mora biti cjelobrojni
višekratnik perioda sempliranja T.
Analizirat demo stvarne govorne signale…
Jednostavni model formiranja govora
x 10
37
O. Bilan
38
Analiza govorne datoteke
Uvod u analizu govornih signala
Zvučnu datoteku sada.wav koju smo snimili na vježbi 1. učitat demo u Adobe Audition, pa u MATLAB.
Dijagram pokazuje zvučni glas a pri izgovoru riječi sada u programu Adobe Audition. Pri govoru vrlo lako
možemo razlikovati zvučne i bezvučne glasove. Ako pri izgovoru postavimo ruku na grlo, lako demo pri
izgovoru zvučnih glasova, osjetiti titranje glasnica. Ako ne osjedamo titranje glasnica, izgovaramo
bezvučne glasove.
Pogledom na valni oblik možemo identificirati fundamentalnu frekvenciju: riječ je o zvučnom glasu.
Ako fundamentalnu frekvenciju ne možemo identificirati, jer signal nalikuje na šum, riječ je o
bezvučnom glasu.
Zvučni signal čovjek može čuti. Ljudsko uho prima
promjene tlaka i prosljeđuje ih u korteks na daljnju
obradu. Učitat demo u Matlab stereo datoteku 16 bit,
Fs=8000Hz, sada.wav. U datoteci se tri puta ponavlja
izgovor riječi SADA. Datoteka je dvokanalna, a signal
je samo u lijevom kanalu.
>> [sada,fs]=wavread('sada.wav');
Možemo pogledati veličinu datoteke i broj kanala
>> size(sada)
ans =
49505
2
Uzet demo samo lijevi kanal
>> left=sada(:,1);
Prikazat demo relativnu jačinu signala
>> time=(1/8000)*length(left);
t=linspace(0,time,length(left));
plot(t,left)
xlabel('vrijeme (s)');
ylabel('relativna jačina signala')
39
Informacije o zvučnoj datoteci "sada.wav":
Trajanje = 6.18813 sekundi
Frekvencija sampliranja = 8000 uzoraka/s
Rezolucija broj bitova = 16 bitova/uzorku
Ukupan_broj_uzoraka = 396 040 000
4
40
Valni oblik "sada"
x 10
2
Amplitude
fileName='sada.wav';
[y, fs, nbits]=wavread(fileName);
fprintf('Informacije o zvučnoj datoteci "%s":\n',
fileName);
fprintf('Trajanje = %g sekundi\n', length(y)/fs);
fprintf('Frekvencija sampliranja = %g uzoraka/s\n', fs);
fprintf('Rezolucija broj bitova = %g bitova/uzorku\n',
nbits);
Ukupan_broj_uzoraka=length(y)*fs
[sada,fs]=wavread('sada.wav');
figure;
waveFile='sada.wav';
y=sada(:,1);
[y, fs, nbits]=wavReadInt('sada.wav');
subplot(2,1,1)
time=(1:length(y))/fs;
plot(time, y);
axis([min(time), max(time), -2^nbits/2, 2^nbits/2]);
grid;
xlabel('Vrijeme (s)');
ylabel('Amplituda'); title('Valni oblik "sada"');
frameSize=512;
index1=1.342*fs;
index2=index1+frameSize-1;
line(time(index1)*[1, 1], 2^nbits/2*[-1 1], 'color', 'r');
line(time(index2)*[1, 1], 2^nbits/2*[-1 1], 'color', 'r');
subplot(2,1,2);
time2=time(index1:index2);
y2=y(index1:index2);
plot(time2, y2, '.-');
axis([min(time2), max(time2), -2^nbits/2, 2^nbits/2]);
grid;
xlabel('Vrijeme (s)');
ylabel('Amplituda'); title('Valni oblik "a" u "sada"');
0
-2
1
2
3
Time (seconds)
Valni oblik "a" u "sada"
4
x 10
4
5
6
2
Amplitude
Nacrtat demo valni oblik zvučnog izgovora slova a u riječi
sada. Koristimo funkciju.
0
-2
1.344
1.346
1.348
1.35
1.352
1.354
Time (seconds)
1.356
1.358
1.36
1.362
1.364
Izgovoreno slovo a ima
period ponavljanja
Period slova a se ponavlja
4
Valni oblik "sada"
x 10
2
Amplituda
Ako želimo doznati dodatne informacije o datoteci
upisat demo
O. Bilan
1
0
-1
-2
1.1
1.2
1.3
1.4
1.5
1.6
Vrijeme (s)
4
Valni oblik "a" u "sada"
x 10
2
1
Amplituda
O. Bilan
0
-1
-2
-3
1.344
1.346
1.348
1.35
1.352
1.354
Vrijeme (s)
1.356
1.358
1.36
1.362
1.364
U povedanom dijelu grafičkog prikaza vrlo lako možemo identificirati fundamentalne
periode slova a. Međutim,
• glotalni impulsi periodično se mijenjaju (shimmer), a
• period nije konstantan (jitter).
O. Bilan
42
7
6.9.2013.
Nacrtat demo valni oblik zvučnog izgovora slova s u riječi sada. Koristimo funkciju.
[sada,fs]=wavread('sada.wav');waveFile='sada.wav';
y=sada(:,1);
[y, fs, nbits]=wavReadInt('sada.wav');
subplot(2,1,1)
time=(1:length(y))/fs;
plot(time, y); axis([min(time), max(time), -2^nbits/2, 2^nbits/2]);
xlabel('Vrijeme (s)'); ylabel('Amplituda'); title('Valni oblik "sada"');
frameSize=512;
index1=1.147*fs;
index2=index1+frameSize-1;
line(time(index1)*[1, 1], 2^nbits/2*[-1 1], 'color', 'r');
line(time(index2)*[1, 1], 2^nbits/2*[-1 1], 'color', 'r');
subplot(2,1,2);
time2=time(index1:index2);
y2=y(index1:index2);
plot(time2, y2, '.-'); axis([min(time2), max(time2), -inf inf]);
xlabel('Vrijeme (s)'); ylabel('Amplituda'); title('Valni oblik "s" u "sada"');
Slovo s nema perioda i
nalikuje na slučajni šum.
O. Bilan
43
Zvučni signali predstavljaju vremensku promjenu 32-bit DXD 32 bit floating point 352.8 kHz.
zvučnog tlaka kontinuirano po amplitudi i po 64-bit profesionalni sustavi
vremenskoj promjeni signala. Prije nego signal Dakle, svaki uzorka je predstavljen cijelim brojem
pretvorimo u vremenski diskretni oblik kako bi ga od 8 ili 16 bita. Međutim, u MATLABu, svi zvučni
pohranili u računalu, moramo analizirati neke signali su normalizirani na decimalne brojeve
karakteristike.
unutar područja [-1, 1] za lakšu obradu. Ako se pri
Frekvencija sempliranja: broj uzoraka u sekundi, radu hodemo vratiti na izvorne cjelobrojne
jedinica Hz. Što je broj uzoraka vedi bolja je vrijednosti potrebno je pomnožiti decimalne
kvaliteta signala ali povedavaju se i zahtjevi za vrijednosti s 2^nbita/2, gdje je nbita broj bita
memorijskim prostorom. Uobičajene frekvencije rezolucije sustava.
sempliranja pri obradi zvučnih signala su:
Broj kanala: U Matlabu imamo mono za
8 kHz: kvaliteta govora za telefoniju i igračke
jednokanalnu obradu i stereo za dva kanala.
16 kHz: kvaliteta za prepoznavanje govora
Posebnim programima mogude je višekanalno
snimanje i obrada zvučnih signala.
44.1 KHz: CD kvaliteta
Pogledajmo datoteku izgovora riječi sada.
96 -192 kHz HD kvaliteta
size(sada) ans =
49505
2
352.8 kHz DXD
2,8 – 5,6 MHz DSD64 – DSD128 naduzorkovanje Trajanje = 6.18813 sekundi
64 -128 puta 44.1 kHz rekv. na 1 bit
Frekvencija sampliranja = 8000 uzoraka/s
Rezolucija broj bita: broj bitova koji koristimo pri Rezolucija broj bitova = 16 bitova/uzorku
predstavljanju svakog uzorka signala. Uobičajene Ukupan_broj_uzoraka = 396 040 000
rezolucije su:
Frekvencija sempliranja je 8 KHz, a rezolucija je 16
8-bit: područje od 0 do 255 ili -128 do 127.
bita ili 2 bajta. Traje 6.188 s, a ukupni broj uzoraka
16-bit: područje od -32768 do 32767.
je 396 040 000. Veličina zvučnih datoteka je vrlo
velika bez sažimanja.
24-bit HD
O. Bilan
44
Filtriranje govorne datoteke
Analiza govornih signala - kepstar
Učitat demo stereo datoteku 16 bit, Fs=8000Hz,
sada.wav. U datoteci se tri puta ponavlja riječ SADA, a
signal je samo u lijevom kanalu. Filtrirat demo je filtrom
pomične srednje vrijednosti
•
•
•
•
[sada,fs]=wavread('sada.wav');
waveFile='sada.wav';
x=sada(:,1);
[x, fs, nbits]=wavread(waveFile);
wavplay(x, fs); % reproduciramo izvornu datoteku
pause
% parametri filtera
a = [1];
b = [1, 1, 1, 1, 1]/5;
y = filter(b, a, x);
% crtamo vremenski prikaz
time = (1:length(x))/fs;
subplot(2,1,1);
plot(time, x); title('Izvorni signal x[n]');
grid;
subplot(2,1,2);
plot(time, y); title('Filtrirani signal y[n]');
grid;
wavplay(y, fs);
% reproduciramo filtriranu datoteku
Naučit demo način određivanja osnovne frekvencije dijela govornog signala iz njegovog spektra
Naučit demo način procjene osnovne frekvencije dijela govornog signala iz njegovog valnog oblika
Naučit demo način procjene frekvencije formanta iz dijela govornog signala
Uočit demo probleme pri određivanju fundamentalne frekvencije i određivanju frekvencije formanta
Temeljni problem estimacije fundamentalne frekvencije je određivanje frekvencije ponavljanja iz
određenoga dijela signala. Problemi nastaju zbog toga što:
•
•
•
•
S
A
D
svi signali nisu periodični
oni koji su periodični mijenjaju fundamentalnu frekvenciju za vrijeme promatranja,
signali mogu sadržavati šum u obliku periodičnih signala drugih fundamentalnih frekvencija
signali periodični u intervalu T su periodični i u intervalu 2T, 3T itd, pa je potrebno odrediti
najkradi periodični interval ili najvišu fundamentalnu frekvenciju
• signali konstantne fundamentalne frekvencije mogu se mijenjati na drugi način u intervalu
analize.
Pouzdani način procjene dominantne fundamentalne frekvencije dugih, čistih, stacionarnih
govornih signala je primjena kepstra. Predstavlja Fourierovu analizu logaritma amplitude spektra
signala. Ako logaritamski amplitudni spektar sadržava mnogo pravilno udaljenih harmonika, tada
de Fourierova analiza spektra pokazati vršnu vrijednost koja odgovara udaljenosti harmonika, a to
je fundamentalna frekvencija. U stvari spektar signala obrađujemo kao neki drugi signal tražedi
periodičnost u signalu spektra. Pri radu koristit demo datoteku sada.wav ili six.wav koju smo snimili
uz pomod MATLAB.
A
O. Bilan
Učitamo datoteku u putanju Matlaba i naredbom stem, kako bi dobili apscisu u indeksima
uzoraka, odredimo segment samoglasnika i.
[x,fs]=wavread('six.wav');
stem (x)
Podatkovnim kursorom očitat demo indekse slova i između 10000 i 11810 uzorka signala
46
Tražimo indeks vršne vrijednosti kepstra između 1 i 20ms, a onda pretvaramo u frekvenciju u Hz,
naredbom:
[c,fx]=max(abs(C(ms1:ms20)));
fprintf('Fx=%gHz\n',fs/(ms1+fx-1));
0.5
0.4
0.3
0.2
0.1
0
-0.1
-0.2
S
-0.3
-0.4
-0.5
0
I
0.5
1
K S
X= 11929
Y= -0.4776
1.5
2
2.5
3
3.5
4
x 10
% izdvajamo dio samoglasnika i iz
ukupnog signala
[x,fs]=wavread('six.wav', [10000
11810]);
ms1=fs/1000; % maksimalna
govorna Fx na 1000Hz
ms20=fs/50; % minimalna govorna
Fx na 50Hz
%
% crtamo valni oblik
t=(0:length(x)-1)/fs; % vrijeme
trenutka sampliranja
subplot(3,1,1);
plot(t,x);
legend('Valni oblik signala');
xlabel('Vrijeme (s)');
ylabel('Amplituda');
%
% radimo fourierovu transformaciju
signala propuštenog kroz
Hammingov prozor
Y=fft(x.*hamming(length(x)));
%
% crtamo spektar s dnom na
5000Hz
hz5000=5000*length(Y)/fs;
f=(0:hz5000)*fs/length(Y);
subplot(3,1,2);
plot(f,20*log10(abs(Y(1:length(f)))+
eps));
O. Bilan
legend('Spektar');
xlabel('Frekvencija (Hz)');
ylabel('Magnituda (dB)');
%
% kepstar je DFT log spektra
C=fft(log(abs(Y)+eps));
%
% crtamo graf između 1ms
(=1000Hz) i 20ms (=50Hz)
q=(ms1:ms20)/fs;
subplot(3,1,3);
plot(q,abs(C(ms1:ms20)));
legend('Kepstar');
xlabel('Kvefrencija (s)');
ylabel('Amplituda');
Kepstar je najbolje koristiti
• ako se fundamentalna frekvencija ne mijenja prebrzo,
• ako nije previsoka i
• kada nema mnogo šuma u signalu.
Loša strana primjene kepstra je što zahtijeva računalno zahtjevnu obradu u frekvencijskom području.
47
O. Bilan
48
8
6.9.2013.
Estimacija fundamentalne frekvencije u vremenskom području
Kepstrumom tražimo periodičnost u logaritmu spektra
signala gdje je percepcija pitcha snažno povezana s
periodičnošdu samog valnog oblika. Jedan od načina
direktne estimacije fundamentalne frekvencije iz
valnog oblika je primjena autokorelacije. Funkcija
autokorelacije na dijelu signala pokazuje nam kako se
valni oblik korelira sam sa sobom u području različitih
kašnjenja. Za očekivati je de se periodični signal vrlo
dobro korelira sam sa sobom za neko malo kašnjenje i
za kašnjenje proporcionalno višestrukom cjelobrojniku
pitch perioda. Slijededi program crta funkciju
autokorelacije za dio govornog signala:
subplot(2,1,1);
plot(t,x);
legend('Valni oblik');
xlabel('vrijeme (s)');
ylabel('Amplituda');
%
% proračun autokorelacije
r=xcorr(x,ms20,'coeff');
%
%nacrtaj funkciju autokorelacije
d=(-ms20:ms20)/fs; % vrijeme kašnjenja
subplot(2,1,2);
plot(d,r);
legend('Autokorelacija');
xlabel('Kašnjenje (s)');
ylabel('Korelacijski koeficijenti');
% izabiremo dio samoglasnika
[x,fs]=wavread('six.wav',[ 10000 11810]);
ms20=fs/50; % minimalna govorna Fx na 50Hz
%
%nacrtaj valni oblik
t=(0:length(x)-1)/fs; % vrijeme uzimanja uzoraka
O. Bilan
ms2=fs/500 % maksimalna frekvencija govora Fx na 500Hz
ms20=fs/50 % minimalna frekvencija govora Fx na 50Hz
% tražimo područje koje odgovara pozitivnom kašnjenju
r=r(ms20+1:2*ms20+1)
[rmax,tx]=max(r(ms2:ms20))
fprintf('rmax=%g Fx=%gHz\n',rmax,fs/(ms2+tx-1));
ms2 = 88.2000
ms20 = 882
r=
1.0000
0.9903
0.9654….
0.2526
0.2404
rmax = 0.8603
tx = 127
rmax=0.860256
Fx=205.882Hz
49
Estimacija frekvencije formanata
Estimacija frekvencije formanta predstavlja mnogo teži problem od estimacije fundamentalne
frekvencije. Problem je u tome što su frekvencije formanta svojstva sustava vokalnog trakta pa se ne
mjere nego se trebaju izvesti iz govornog signala.
Oblik spektra pobude vokalnog trakta vrlo snažno djeluje na spektralnu ovojnicu pa se ne može jamčiti
da de se sve rezonancije vokalnog trakta pojaviti u obliku vrhova promatrane spektralne ovojnice niti da
de svi vrhovi spektralne ovojnice biti rezonancije vokalnog trakta. Najvažnije metoda estimacije
frekvencije temeljena je na modeliranju govornog signala pri kojemu pretpostavljamo da ga je generirao
posebni tip izvora i filtera.
Ovakvu analizu nazivamo source-filter separation, a u slučaju estimacije frekvencije formanata
interesira nas samo frekvencija rezonancije. Kako bi odredili najbolji sustav koristimo analizu koju
nazivamo Linearna predikcija.
Linearna predikcija modelira signal kao da je generiran signalom minimalne energije i propušten kroz
rekurzivni IIR filter. Ovu ideju pokazat demo primjenom LPC kako bi odredili najbolji IIR filter iz dijela
govornog signala, a zatim demo nacrtat frekvencijski odziv filtra.
O. Bilan
51
% uzimamo sekciju samoglasnika
[x,fs]=wavread('six.wav',[ 10000 11810]);
% resampliranje na 10,000Hz (opcija)
x=resample(x,10000,fs);
fs=10000;
%
% nacrtaj valni oblik
t=(0:length(x)-1)/fs; % vrijeme uzimanja
uzoraka
subplot(2,1,1);
plot(t,x);
legend('Valni oblik');
xlabel('Vrijeme (s)');
ylabel('Amplituda');
%
% Linearni predikcijski filter
ncoeff=2+fs/1000;
% pravilo za estimaciju formant
a=lpc(x,ncoeff);
%
%crtamo frekvencijski odziv
[h,f]=freqz(1,a,512,fs);
subplot(2,1,2);
plot(f,20*log10(abs(h)+eps));
legend('LP Filter');
xlabel('Frekvencija (Hz)');
ylabel('Pojačanje (dB)');
50
Kako bi odredili frekvencije formanata iz filtera,
potrebno je odrediti lokacije rezonancija koje tvore
filter. Koeficijente filtera obrađujemo kao polinom i
rješavamo korijene polinoma.
Program određuje frekvencije formanata iz
niskopropusnog filtera:
O. Bilan
52
S(z) i E(z) su Z transformacije govornog i pobudnog signala (ekscitacije), a p je red predikcije.
Pretpostavlja se da je pobudni signal modela LP sekvenca pravilnih impulsa (čiji se period T0 i
amplituda σ može podešavati ili bijelog Gausovog šuma, čija se varijanca σ2 može prilagoditi što
implicitno određuje odlučivanje zvučnog/bezvučnog signala.
327.4
1979.9
2461.8
3715.8
4232.3
Filter 1/Ap(z) nazivamo filter sinteze, a Ap(z) predstavlja inverzni filter. Ponekad se označava kao
LPC model (linearno prediktivno kodiranje) jer se najviše koristi za kodiranje govora.
Jednadžba implicitno dovodi do koncepta linearne predikcije govora koji glasi
Ponovit demo postupak s izgovorom iste riječi drugog govornika:
O. Bilan
O. Bilan
1960, Fant je predložio linearni model generiranja govora, source-filter model. Temeljen je na
pretpostavci potpuno odvojenog glottisa i vokalnog trakta. Ovaj model doveo je autoregresivnog
(AR) ili linearnog prediktivnog (LP) modela; Rabiner i Shafer 1978. On opisuje govor s(n) kao izlaz
s(n) filtera 1/A(z) sastavljenog samo od polova, pobuđenog signalom e(n):
Izlaz programa:
Formant 1 frekvencija
Formant 2 frekvencija
Formant 3 frekvencija
Formant 4 frekvencija
Formant 5 frekvencija
Opisani pristup autokrelacijskom funkcijom daje najbolje
rezultate kada signal ima niski pravilan pitch i kada se
spektralni sadržaj signala ne mijenja prebrzo. Na
autokorelacijsku metodu može štetno djelovati pogrešan
izbor dva perioda pitcha, kao i periodičnost signala koja je
posljedica rezonancije formanta. To je posebno izraženo na
ženskim glasovima gdje F1 može biti niže frekvencije od Fx.
LP linearni prediktivni model govora
% odredi frekvencije rješenjem korijena polinoma
r=roots(a); % odredi korijene polinoma
r=r(imag(r)>0.01); % traži korijene > 0Hz do fs/2
ffreq=sort(atan2(imag(r),real(r))*fs/(2*pi));
% pretvori u Hz i sortiraj
for i=1:length(ffreq)
fprintf('Formant %d frekvencija %.1f\n',i,ffreq(i));
end
Formant 1 frekvencija
Formant 2 frekvencija
Formant 3 frekvencija
Formant 4 frekvencija
Formant 5 frekvencija
Vršna vrijednost autokorelacije nalazi se pri nultom kašnjenju i pri kašnjenju za ± 1 period, ± 2
perioda, itd. Fundamentalnu frekvenciju možemo pokušati odrediti traženjem vršne vrijednosti u
intervalu kašnjenja koje odgovara normalnom području pitcha pri govoru, recimo 2ms(=500Hz) i
20ms (=50Hz). Npr:
Svaki uzorak govora možemo odrediti kao težinsku sumu
p prethodnih uzoraka, uvedan za doprinos pobude:
289.2
2310.6
2770.9
3489.9
4294.8
ZVUČNI/BEZVUČNI
ZVUČNI
BEZVUČNI
Vidi slide 36.
53
9
6.9.2013.
Rezidualni predikcijski signal e(n) predstavlja
izlaz inverznog filtera pobuđenog govornim signalom.
Estimacijski algoritam linearne predikcije LP
U praksi je najvedi problem zadanom signalu odrediti najbolji skup predikcijskih koeficijenata koji
minimizira greške modela kada su minimalne čujne razlike izvornog signala i onog dobivenog
modelom.
Vrijednosti LP parametara možemo procijeniti poznavanjem:
• pitch perioda T0,
• pojačanja σ,
• položaja prekidača zvučni /bezvučni glas i
• predikcijskih koeficijenata {ai}.
Inverzno filtriranje govora
Princip estimacije autoregresivnog (AR) ili linearnog prediktivnog (LP) modela je izbor elemenata
skupa {a1,a2,...ap}, koji minimiziraju očekivanje E(e2(n)) rezidualne energije:
Ako je s(n) stacionaran, onda se može pokazati da de sintetički govor s(n) proizveden LP modelom
primjenom specifičnog skupa predikcijskih koeficijenata pokazati istu spektralnu ovojnicu kao s(n).
Iako govor zvuči periodično, u praksi je to vrlo rijetko, pa određivanje pitch perioda i zvučnosti
predstavlja vrlo težak problem. Prisjetimo se izvedene analize:
periodi glotalnih impulsi periodično se mijenjaju (shimmer) dok sam period nije konstantan (jitter).
Valni oblik govora otkriva samo filtrirane glotalne impulse dok same impulse ne možemo uočiti. Zbog
toga je procjena točne vrijednosti T0 posebno složena. Pored toga, govor nije nikad potpuno zvučan
ved postoje dodatne komponente šuma koje otežavaju određivanje pitch. Zbog toga su razvijeni mnogi
postupci točnog određivanja T0.
Procjena σ i predikcijskih koeficijenata izvodi se istovremeno i neovisno o procjeni T0. Za zadani
govorni signal s(n), određivanje vrijednosti {ai } koeficijenata modela rezultira rezidualnim
predikcijskim signalom e(n):
Bududi da pobuda LP modela (impulsi ili bijeli šum) imaju ravnu ovojnicu spektra, to znači da de
frekvencijski odziv filtera sinteze biti približno prilagođen ovojnici spektra s(n) i da de ovojnica
spektra LP reziduala biti približno ravna. Drugim riječima,
inverzno filtriranje dekorelira govor.
Razvoj kriterija minimalnog kvadrata greške (LMSE least mean squared error) vodi nas na Yule-Walker
sustav linearnih jednadžbi. Nakon rješenja sustava (vidi vježbe) slijedi da je optimalna vrijednost σ
jednaka:
modelu nije cilj imitacija točnog valnog oblika govora, nego ovojnice spektra.
To je temeljeno na ideji po kojoj je uho mnogo osjetljivije na amplitudni nego na fazni spektar.
O. Bilan
55
O. Bilan
56
LP obrada u praksi
Koderi linearne predikcije
Bududi da je govor nestacionaran signal, LP model se primjenjuje na govorne okvire tipične dužine 30 ms s
preklapanjem od 20 ms. Unutar okvira od 30 ms pretpostavlja se da je signal stacionaran zbog inercije
artikulirajudih mišida.
Uzorci govora se najčešde filtriraju 30 ms dugim Hammingovim prozorom. Tako se sprječavaju prvi uzorci u
okviru da izrazom e2(n) daju preveliku težinu jednadžbi, jer se ne mogu točno predvidjeti.
Autokorelacijski koeficijenti Φxx(k) (k =0...p) procjenjuju se ograničenim brojem uzoraka (najčešde 240
uzoraka za 30 ms govora pri fs=8kHz). Red predikcije p (koji je jednak broju polova u filteru sinteze
sastavljenom od samih polova) bira se tako da rezultirajudi filter sinteze ima dovoljno stupnjeva slobode kako
bi kopirao ovojnicu spektra ulaznog govornog signala.
Bududi da približno postoji jedan formant po kHz frekvencijske širine pojasa govora, potrebno je najmanje 2B
polova. B je frekvencijska širina pojasa u kHz, tj. ½ fs, polovina frekvencije sempliranja. Obično se dodaju još
dva pola kako bi modelirali valni oblik glotalnih perioda. To je određeno empirijski jer onda govor dobiven
LPC postupkom zvuči mnogo bolje.
Za aplikacije temeljena na telefoniji koje rade s fs=8kHz opisani postupak daje p=10. Jednadžbu možemo
riješiti algoritmom inverzne matrice ali u praksi se to ne primjenjuje nego se koristi Levinson–Durbin
algoritam. On je mnogo brži jer uzima u obzir posebnu strukturu tzv. Toeplitzove matrice kojoj su jednaki svi
elementi na dijagonali paralelni s glavnom dijagonalom. Predikcijske koeficijente {ai} konačno računamo za
svaki okvir svakih 10–20 ms. Opisani postupak je približan nema dovoljnu točnost za praskave ili eksplozivne
foneme b, d, g, p, t, k.
Opisani LPC sistem analize–sinteze primijenjen je u NATO LPC10 standardu (NATO, 1984), koji se koristio za
satelitski prijenos govorne komunikacije do 1996. Omogudavao je kodiranje govora s vrlo niskim protokom
do 2400 bit/s (s okvirima širine 22.5 ms, a svaki okvir se kodira s 54 bita: 7 bitova za pitch i zvučno/nezvučno
odlučivanje, 5 bitova za pojačanje i 42 bita za predikcijske koeficijente. Sustav je sličan onom za mobitele.
Napredni LP koderi, kao CELP, poboljšavaju kodiranje predikcijskih koeficijenata na 30 bita. U praksi se
predikcijski koeficijenti ne koriste u proračunatom obliku nego se pretvaraju u oblik koji nakon kvantizacije
rezultira vrlo stabilnim filterima.
Broj bita LPC10 bira se tako da ne unose čujne artifakte na LPC generirani govor. Primjer LPC govora je realni
primjer tipičnog LPC10 govora.
Očito je da opisani koder sadrži ograničenja slabog binarnog modela pobude. Zvučni frikativi (v,z,ž, f,s,š,h) ne
mogu se adekvatno modelirati jer istovremeno imaju karakteristike zvučnih i bezvučnih fonema. LPC10
koder osjetljiv je i na učinkovitost algoritma detekcije zvučnog/bezvučnog kao i procjenu F0. Ženski glasovi s
višom frekvencijom F0 ponekad rezultiraju drugim harmonikom u centru prvog formanta što dovodi do
pogreške procjene F0 jer se drugi harmonik uzima za F0.
Jedan od načina poboljšanja kvalitete LPC govora je smanjenje opteredenja LPC pobude što omogudava
preciznije modeliranje reziduala predikcije e(n), pomodu pobude e(n).
Propuštanje reziduala kroz filter sinteze 1/A(z) dobivamo izvorni govor (što je obrnuti slučaj od opisanog).
Propustom predikcijskog reziduala
kroz filter sinteze
dobiva se izvorni govorni signal
Obrada govora temeljena na okvirima
širine 30 ms i pomaknutim 10 ms
Blok dijagram LPC sustava govorne analize i sinteze
O. Bilan
57
Bishnu S. Atal
koautor MPE i CELP kodera
Uloga ovog filtere je smanjenje doprinosa formanata
pri procjeni ukupne greške. Frekvencijski odziv filtera
može se podesiti na bilo koju vrijednost između
svepropusnog odziva ( γ=1) i odziva inverznog filtera
(γ = 0), a tipično se podešava na γ = 0.8.
O. Bilan
58
CELP koder code-excited linear prediction
Multipulse Excited MPE dekoder
Prvi pristup
primjene analize sintezom bio je
postupak Multipulse Excited (MPE; Atal i Remde 1982)
korištenjem zatvorene petlje pri procjeni osobina
pobude. MPE pobudu karakterizira položaj i
amplituda određenog broja impulsa po okviru
(najčešde 10 impulsa u 10 ms).
Sustav ne treba pitch estimaciju i odlučivanje o
zvučnom/bezvučnom. Položaj impulsa i amplitude
biraju se iterativno kako bi se minimizirala energija
greške modela predstavljena razlikom izvornog i
sintetiziranog govora.
Greška se filtrira perceptualnim filterom prije
računanja energije:
O. Bilan
Multipulse Excited MPE dekoder
Estimacija MPE pobude u petlji analize sintezom MPE kodera
59
CELP koder (code-excited linear prediction Schroeder i Atal, 1985)
dodatno razrađuje ideju kodiranja govora analize sintezom tako što
primjenjuje vektorsku kvantizaciju VQ za sekvencu pobude. Ovim
pristupom koder bira jednu sekvencu pobude iz unaprijed
određenog stohastičkog popisa kodova codebook svih mogudih
sekvenci. Prema slici dekodera (koji raspolaže istim popisom kodova)
prosljeđuje se samo indeks izabrane sekvence.
Iako je najniža razina kvantizacije pri skalarnoj kvantizaciji 1 bit po
uzorku, VQ omogudava decimalne vrijednosti bitova. Tako npr. ako
istovremeno kvantiziramo dva uzorka 1-bitnom knjigom kodova
rezultat de biti 0.5 bita po uzorku. Tipične vrijednosti u praksi s 10bitnim kodnim knjigama i vektorima od 40, rezultiraju sa samo 0.25
bita po uzorku.
Zbog velike varijabilnosti govornih okvira koja je posljedica promjena
glotalne pobude i vokalnog trakta, VQ vektorski kvantizirani govorni
okviri mogudi su samo uz primjenu vrlo velikih baza kodova
(codebook).
Veličina ideje CELP kodera je u tome što se izvodi VQ na LP
rezidualnim sekvencama. Kako smo pokazali LP rezidual pokazuje
ravnu spektralnu ovojnicu pa se mogu koristiti vrlo male baze
kodova. Zbog toga CELP možemo shvatiti kao adaptivnu vektorsku
kvantizacijsku shemu govornih okvira gdje adaptaciju izvršava filter
sinteze.
CELP uzima u obzir i periodičnost zvučnog govora kako bi poboljšao
učinkovitost prediktora. Tzv. long-term prediktor filter nalazi se u
kaskadi s filterom sinteze što poboljšava učinkovitost popisa kodova
codebook. Najednostavniji long-term prediktor sastoji se od
promjenjivog kašnjenja s prilagodljivim pojačanjem
O. Bilan
60
10
6.9.2013.
Simulacija: Analiza govorne datoteke
Nakon MPE i CELP kodera razvijeni su brojni drugi koderi koji su koristili isti princip
analize sintezom. U cilju poboljšanja kvalitete kodera i daljnjeg smanjenja broja bita.
Učitat demo zvučnu datoteku sada.wav ili Matlab datoteku speech.wav, poslušat demo je i prikazat demo je.
Datoteka je semplirana 8 kHz u rezoluciji 16 bita.
speech=wavread('speech.wav');
plot(speech)
xlabel('vrijeme (uzorci)'); ylabel('Amplituda');
sound(speech,8000);
Najpoznatiji su
•
•
MELP mixed-excitation linear prediction; McCree i Barnwell, 1995 i
HVXC harmonic and vector excitation coding; Matsumoto 1997.
0.6
1996, LPC-10 je zamijenjen MELP koji je postao američki savezni standard za kodiranje
pri 2.4 kb/s.
izabiremo zvučni i
0.4
0.2
0.1
0
-0.1
-0.2
Paint
-0.3
1996, ovaj FR full-rate koder zamijenjen je poboljšanim full-rate EFR koderom koji
predstavlja inačicu CELP nazvan ACELP algebarski-CELP, Salami 1998. EFR koder ima
brzinu protoka 11.2 kb/s i bolju kvalitetu od FR kodera pri 13 kb/s.
Inačica ACELP kodera standardizirana je od ITU-T kao G.729 za rad pri brzini 8 kb/s.
Najnovije generacije kodera za mobilnu telefoniju temeljene su na CELP principu i rade
pri brzinama 4.75 do 11.2 kb/s.
O. Bilan
-0.4
0
the
1000
2000
c
3000
ircuit
4000
s
5000
6000
7000
8000
9000
vrijeme (uzorci)
Datoteke ima 9000 uzoraka koji traju 1,1 s. Lako uočavamo vremenski položaj četiriju samoglasnika na
dijagramu jer imaju više amplitude. Samoglasnik e je centriran oko uzorka 3500. U ovom obliku valni oblik
govora nije čitljiv ni ekspertnim fonetičarima. Sadržaj informacije ovog valnog oblika je skriven.
Kako bi ga otkrili vizuelno, potrebno je prikazati spektrogram signala. Izabrat demo širokopojasni
spektrogram, određujudi širinu okvira na 5 ms ili 40 uzoraka i hammingov vremenski otvor. Širokopojasni
spektrogram koristi vrlo mali broj uzoraka, a tipični broj je manji od lokalnog perioda pitcha. Takvim
načinom analize formanti se otkrivaju mnogo točnije.
Naredba specgram(speech,512,8000,hamming(40)) dat de nam spektrogram.
61
Kao što očekujemo zvuk je približno periodičan (period=65 uzoraka, tj., 80 ms; fundamentalna
frekvencija = 125 Hz). Međutim, to je samo prividno jer se u stvarnosti ni jedna sekvenca uzoraka ne
nalazi više od jednog puta u okviru. Analizirat demo spektralni sadržaj ovog govornog okvira tako što
demo nacrtati periodogram u 512 točaka primjenom normalizirane frekvencijske osi što odgovara Fs/2 ,
tj., 4000 Hz.
specgram(speech,512,8000,hamming(40))
4000
3500
3000
2500
Frequency
bezvučni segment
0.3
Amplituda
Od 1992 do 1996 GSM global system for mobile communication usvojio je inačicu
MPE pod imenom RPE-LPC regular pulse excited; Kroon 1986 uz neke nadopune. Govor dijeli
u okvire 20 ms, svaki se kodira s 260 bita pa je ukupni protok 13 kb/s.
3500:3739 4500:4739
0.5
Periodogram Power Spectral Density Estimate
0
2000
periodogram(input_frame,[],512);
1000
500
0
20
20.1
20.2
20.3
20.4
20.5
20.6
20.7
20.8
20.9
21
Time
Na ovom dijagramu pitch periodi prikazani su u obliku okomitih linija. Bududi da je širina okvira pri
analizi vrlo uska, neki okviri upadaju na vrhove, a neki na minimume pitch perioda, pa se
pojavljuju kao tamnije ili svjetlije okomite linije. Formanti, koji predstavljaju rezonancije vokalnog
trakta, pojavljuju se kao tamne i šire vodoravne pruge. Iako njihovu frekvenciju nije lako točno
izmjeriti, fonetičari promatranjem spektrograma mogu pročitati stvarno izgovorene riječi. To
jasno pokazuje: formanti su vrlo dobri indikatori temeljnog govornog zvuka.
Sinteza Linearnom predikcijom 30 ms zvučnog govora
Izdvojit demo okvir od 30 ms ili 240 uzoraka iz zvučnog dijela govorne datoteke i prikaza demo ga vremenski:
input_frame=speech(3500:3739);
plot(input_frame);
Power/frequency (dB/rad/sample)
-10
1500
-20
-30
-40
-50
-60
-70
-80
0
0.1
0.2
0.3
0.4
0.5
0.6
Normalized Frequency ( rad/sample)
0.7
0.8
0.9
1
Fundamentalna frekvencija ponovno se pojavljuje oko 125 Hz. Procjena položaja formanta je prema
vrhovima ovojnice spektra na ± 300, 1400 i 2700 Hz. Pokazat demo LP model 10. reda za prikazani
zvučni okvir. Dobivamo koeficijente predikcije (ai) i varijancu rezidualnog signala (sigma_square).
[ai, sigma_square]=lpc(input_frame,10);
sigma=sqrt(sigma_square);
0.3
Parametar estimacije unutar LPC naziva se algoritam Levinson–Durbin. Odabiremo koeficijente FIR
filtera A(z) tako da pri propustu ulaznog okvira u A(z), izlazni signal, kojeg nazivamo predikcijski rezidual,
ima minimalnu energiju. Može se pokazati da tako dobivamo filter s antirezonancijama kad god se u
ulaznom okviru nalazi formant. To je razlog zbog kojeg filter A(z) nazivamo inverzni filter. Nacrtat demo
njegov frekvencijski odziv u 512 točaka i superponirat demo ga odzivu filtra sinteze 1/A(z).
0.25
0.2
0.15
0.1
0.05
0
-0.05
-0.1
-0.15
0
50
100
150
200
O. Bilan
250
63
O. Bilan
64
[HI,WI]=freqz(ai, 1, 512);
[H,W]=freqz(1,ai, 512);
plot(W,20*log10(abs(H)),'-',WI,20*log10(abs(HI)),'--');
Drugim riječima, postupkom LPC automatski se prilagođavaju polovi filtra sinteze u okolišu unutar
jedinične kružnice na kutovima koji su izabrani tako da imitiraju rezonancije formanata
Ne primjenjujemo prozor filter prije LP analize. Frekvencijski odziv filtera 1/A(z) podudara se sa
amplitudnom ovojnicom spektra signala u okviru. Superponirajmo ovaj frekvencijski odziv na
periodogram samoglasnika
zplane(1,ai);
1
0.8
0.6
Imaginary Part
0.4
0.2
10
0
-0.2
-0.4
-0.6
-0.8
-1
-3
periodogram(input_frame,[],512,2)
hold on;
plot(W/pi,20*log10(sigma*abs(H)));
hold off;
-2
-1
0
Real Part
1
2
3
Primjenimo li inverzno filtriranje ulaznog okvira dobit demo predikcijski rezidual.
Periodogram Power Spectral Density Estimate
-30
Power/frequency (dB/rad/sample)
-35
LP_residual=filter(ai,1,input_frame);
plot(LP_residual)
periodogram(LP_residual,[],512);
-40
-45
-50
-55
-60
-65
-70
-75
F1, F2, F3, F4
O. Bilan
0
0.1
0.2
0.3
0.4
0.5
0.6
Normalized Frequency ( rad/sample)
0.7
0.8
0.9
1
Priodogram pokazuje tzv. jednostrani periodogram, koji ima dvostruke vrijednosti dvostranog
periodograma u [0, Fs/2]. Kako bi prisilili prikaz realne vrijednosti dvostranog periodograma u [0, Fs /2],
postavljamo Fs = 2.
Usporedit demo spektar dobivenog reziduala s izvornim spektrom. Novi spektar je približno ravan, a fini
spektralni detalji identični su onima u okviru analize. Pitch i harmonici su potpuno sačuvani. Očito je da
primjenom filtera sinteze na ovaj predikcijski rezidual rezultiralo u samom okviru analize (jer je filter
sinteze inverzan od inverznog filtra).
65
O. Bilan
66
11
6.9.2013.
output_frame=filter(1, ai,LP_residual);
plot(output_frame);
periodogram(gain*excitation,[],512);
LPC model modelira predikcijski rezidual zvučnog govora u obliku niza impulsa s promjenjivim
periodom pitcha i amplitude. U promatranom okviru idealna LPC pobuda je sekvenca impulsa
odijeljenih s 64 nule pa tako pretpostavljamo period od 65 uzoraka.
Signal pobude množimo s faktorom pojačanja tako da mu se varijanca (snaga) izjednači s
rezidualnim signalom.
excitation = [1;zeros(64,1); 1; zeros(64,1); 1; zeros(64,1); 1; zeros(44,1)];
gain=sigma/sqrt(1/65);
plot(gain*excitation);
Iz odziva je vidljivo da se LPC pobuda razlikuje od predikcijskog reziduala. Međutim, spektar
pokazuje neke sličnosti s rezidualom: ravnu anvelopu i harmonički sadržaj koji odgovara F0.
Najveda razlika je u tome što je spektar pobude nadharmoničan usporedimo li ga s rezidualnim
spektrom. Primjenit demo filter sinteze kako bi proizveli umjetno e.
synt_frame=filter(gain,ai,excitation);
plot(synt_frame);
O. Bilan
67
O. Bilan
68
Sinteza Linearnom predikcijom 30 ms bezvučnog govora
periodogram(synt_frame,[],512);
Isti postupak možemo primijeniti na bezvučni okvir pa možemo usporediti dobivene spektre. Prvo
demo ekstrahirati jedan bezvučni okvir i prikazat demo ga grafički. Iz dijagrama vidimo, kako smo i
očekivali, da ne postoji periodičnost.
input_frame=speech(4500:4739);
plot(input_frame);
Pogledat demo spektralni sadržaj govornog okvira. Bududi da obrađujemo signale šuma koristimo
usrednjeni periodogram kako bi procijenili gustodu spektra snage iako je tako frekvencijska
rezolucija nešto lošija nego običnim periodogramom. MATLAB funkcija pwelch računa
periodogram u osam podokvira s 50% preklapanja.
pwelch(input_frame);
Iako je rezultirajudi valni oblik bitno različit od izvornog zbog činjenice da LP model ne uzima u
obzir spektar faze izvornog signala, dobivena ovojnica spektra je identična. Fini harmonički
detalji također se razlikuju jer je sintetički okvir nad-harmoničan u usporedbi s izvornim
signalom
O. Bilan
69
Primijenit demo LP model 10. reda i sintetizirat demo novi okvir. Sinteza se izvodi s filtriranjem
okvira Gaussovog bijelog šuma s filterom sastavljenim od samih polova sa standardnom
devijacijom podešenom na predikcijsku rezidualnu standardnu devijaciju.
0.04
0.03
0.02
0.01
0
-0.01
-0.02
Različit valni oblik
-0.03
-0.04
0
50
100
150
200
250
pwelch(synt_frame);
Welch Power Spectral Density Estimate
-30
-35
Power/frequency (dB/rad/sample)
Sintetički valni oblik na slici nema
zajedničkih uzoraka s izvornim valnim
oblikom. Međutim, ovojnica spektra
promatranog okvira vrlo je slična izvornoj,
što je dovoljno izvornom i sintetičkom
signalu da se percipiraju kao isti obojeni
šum. Iako obje promatrane gustode snage
spektra imaju identične oblike ne treba
očekivati sličnost u detaljima.
70
Zaključak
Sintetički bezvučni LPC govor (gore valni oblik, dolje gustoća spektra snage)
[ai, sigma_square]=lpc(input_frame,10);
sigma=sqrt(sigma_square);
excitation=randn(240,1);
synt_frame=filter(sigma,ai,excitation);
plot(synt_frame);
O. Bilan
-40
-45
-50
Sintetički valni oblik na slici nema zajedničkih uzoraka s izvornim valnim oblikom.
Međutim, ovojnica spektra promatranog okvira vrlo je slična izvornoj, što je dovoljno
izvornom i sintetičkom signalu da se percipiraju kao isti obojeni šum.
Iako obje promatrane gustode snage spektra imaju identične oblike ne treba očekivati
sličnost u detaljima bududi da samo LPC model može reproducirati glatku ovojnicu
spektra izvornog signala.
Svaki mobilni uređaj pri radu svakih 20 ms rješava linearni sustav s 10 jednadžbi s 10
nepoznanica kako bi postavio temelj procjene modela linearne predikcije YuleWalkerovim jednadžbama.
Parametri koje jedan mobitel šalje drugom predstavljaju koeficijente vokalnog trakta
koji opisuju frekvencijski odziv i koeficijente izvora koji opisuju rezidualni signal.
Koeficijenti vokalnog trakta usko su povezani s geometrijskom konfiguracijom
vokalnog trakta u svakom okviru trajanja 10 ms. Iz toga proizlazi zanimljiv zaključak:
mobilni uređaji ne prenose govor nego opis slike vokalnog trakta koji proizvodi govor.
-55
-60
0
0.1
0.2
0.3
0.4
0.5
0.6
Normalized Frequency ( rad/sample)
0.7
0.8
0.9
1
Ovojnice spektra vrlo slične
Usporedba karakteristika i složenosti algoritama kodiranja govora
Brzina izražena u MIPS milijuna instrukciju u sekundi ovisi o tipu procesora
O. Bilan
71
O. Bilan
72
12
6.9.2013.
Rekapitulacija kodeci
Koderi zvuka u frekvencijskoj domeni
G.7xx: Audio (Voice) Compression Protocols (CODEC)
G.711, G.721, G.722, G.726, G.727, G.728, G.729)
• Koderi zvuka u frekvencijskoj domeni nisu ograničeni samo na govor
• Imaju dobra svojstva za sve zvučne signale, posebno za glazbu (mp3).
(biti de prikazani kratko, a više informacija u poglavlju 04_Sažimanje zvučnih datoteka).
– Koriste pod-pojasno kodiranje (podjela na frekvencijske pod-pojase prije kodiranja)
• Koriste efekt maskiranja
– uz jaki signal na nekoj frekvenciji uho ne može čuti slabiji signal na bliskoj frekvenciji
– osim u zadanom trenutku, maskiranje ima vremenski utjecaj prije i poslije jakog signala
codec, coder + decoder =
uređaj koji kodira i dekodira, odnosno komprimira i dekomprimira, audio i video
G.7xx, uključujudi G.711, G.721, G.722, G.726, G.727, G.728,
G.729, je skup ITU-T standarda za sažimanje i dekompresiju
zvučnih signala.
Primarno se koriste za telefoniju gdje postoje 2 algoritma: μkrivulja i A-krivulja (Europa i ostatak svijeta). Oba su
logaritamska, a drugi je pogodniji za obradu računalom.
G.7xx skup protokola sastoji se od:
G.711 - Pulse code modulation (PCM) govornih frekvencija u kanalu 64
kb/s.
G.721 - 32 kbit/s adaptive differential pulse code modulation (ADPCM)
G.722 - 7 kHz audio-kodiranje unutar 64 kb/s
G.722.1 – Kodiranje s 24 i 32 kb/s za hands-free rad sustava s malim
gubitcima
G.722.2 – Širokopojasno kodiranje govora pri 16 kb/s primjenom
adaptivnog multi-rate širokopojkasnog sustava (AMR-WB)
G.726 - 40, 32, 24, 16 kbit/s adaptivna diferencijalna PCM (ADPCM)
G.727 - 5-, 4-, 3- i 2-b/uzorku adaptivna difrencijalna PCM (ADPCM)
G.728 – Kodiranje govora 16 kb/s primjenom low-delay code excited
linear prediction
G.729 – kodiranje govora 8 kb/s primjenom konjugirane strukture
algebarske - codeexcited linear-prediction (CS-ACELP)
7373
O. Bilan
O. Bilan
74
MATLAB prikaz kodiranja MPEG-1 Layer-3 (MP3)
Osnovni zvučni percepcijski koder MPEG
Sažimanje se bolje uočava na preklopljenim valnim oblicima
• MPEG Moving Picture Expert Group
(ISO/IEC JTC1/SC29/WG11)
Shema kodera
• MPEG-1
– Dva audio kanala
– fs = 44.1 kHz (isto kao CD), 32 kHz, 48 kHz (kao DAT)
– Brzine od 8-16 kbit/s do 320 kbit/s
– MPEG Audio Layer I, II, III: kodiranje rastude složenosti
– percepcijsko kodiranje
•
–
–
–
–
Shema dekodera
MPEG-2
Isti osnovni koder kao MPEG-1
Pet audio kanala + niskofrekventni kanal
Uz MPEG-1 još i fs = 16 kHz, 22.05 kHz, 24 kHz
AAC Advanced Audio Codec, dodan kasnije
Ako analiziramo signale na gornjim slikama uočavamo sljedede:
Graf prikazan crno pokazuje izvorni zvučni signal u WAV formatu, a drugi graf crveno pokazuje rezultat
simulacije u Matlabu koji je pohranjen u WAV formatu jer Matlab ne radi sa MP3 formatom. To je razlog
što su u mapi obje datoteke jednake veličine (31 kB).
Na drugoj slici možemo vidjeti simulaciju gubitaka prilikom MP3 sažimanje. Zvučni detalji koji su uočljivi na
prvoj slici, a koji vremenski kratko traju, sažimanjem su izglađeni.
• MPEG-4
– AAC, dva kodera za govor, strukturirani zvučni signal...
Učinak je izraženiji na bezvučnim glasovima (s), nego na zvučnim (a, i). To su detalji koje ljudsko uho ne
čuje ili čuje veoma slabo pa se ti detalji pri sažimanju gube. (vidi: VJEŽBE i Sažimanje zvučnih datoteka)
O. Bilan
75
O. Bilan
76/76
13