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
© Copyright 2024 Paperzz