Äänen koodaus tietoliikenteessä Puhekoodekit Roman Kossarev Ohjaaja: Keijo Haataja Kuopion Yliopisto
Esitelmän Sisältö Johdanto Akustiikkaa Psykoakustiikkaa Ääniaallon digitointi Puhekoodekit Yhteenveto
I.a Johdanto Miksi äänenkoodaus? eräs siirrettävän tiedon muoto, jonka määrä koko ajan kasvussa digitaalississa lankapuhelin-, tieto-, mobiili- ja muissa langattomissa verkoissa (Bluetooth) digitaalisuus vaatii digitointia, ADC-muunnosta (ja takaisin analogiseksi DAC-muunnoksella) digitoitu ääni vaatii suuria bittimääriä tehokas (rajoitetun) siirtokaistan käyttö edellyttää pakkausta (koodekit)
Koodekki = codec – COding/DECoding I.b Johdanto Koodekki = codec – COding/DECoding koodaus – signaali muunnetaan uuteen muotoon purku – signaali palautetaan alkuperäiseen muotoon Puhe on äänen eräs laji Puhe-elimistö tuottaa, kuulojärjestelmä vastaanottaa Akustiikaltaan eroaa esim. musiikista On turha koodata mitä ei kuulla
II Akustiikkaa II.a Ääni Äänen kulku: Lähde – väliaine – vastaanottaja Väliaineen värähtelyä / paineen vaihtelua
II.b Ääniaalto Äänes (puhdas ääni, yksi taajuus) a amplitudi äänen voimakkuus äänenpainetaso 0 dB kuulokynnys 30 dB katuhäly 85 dB vahinko 130 dB kipuraja (suihkukone) dB on logaritminen f taajuus = 1/T 1 Hz = 1/s korva havaitsee 20-20000 Hz
II.c Seosäänet koostuvat monesta eri taajuudesta 300 Hz 500 Hz kaikki ympäristöäänet ovat seosääniä Fourier-muunnoksella saadaan selville seosäänen taajuussisältö
III.a Psykoakustiikkaa taajuustasoesitys aikatasoesitys
III.b Puheen taajuussisältö /ai/ Taajuusalue Luonnolliselta kuulostava puhe: 50-7000 Hz riittävä alue on jo 200-3300 Hz Mitä taajuuksia? aaltomuoto ja taajuussisältö riippuvat äänteen (kirjaimen) tyypistä: soinnillinen vokaali ja konsonantti (m, n, d, r, l, j) soinniton konsonantti (s, h) eksploosioäänne (p, t, k,) Resonanssialueet (formantit) energiahuippuja ääniaallossa jokaisellä äänteellä oma ominaisformanttikuvio (parametrit ovat kuitenkin suhteellisia)
III.c Peittoilmiö (maskaus) ilmiö, jossa voimakkaampi signaali, peittäjä (masker), peittää (saa kuulumattomaksi) toisen heikomman (peitettävän, eng. maskee) signaalin, joka on tapreeksi lähellä peittäjää taajuustasossa: Esim yhtäaikaispeitto taajuustasossa: ylläoleva peittäjä peittää esim. 20 dB/700 Hz –testisignaalin (punaisella).
III.d Peittoilmiö Miksi peittoilmiö tapahtuu? Kahden siniääneksen taajuuksien lähestyessä toisiaan niiden resonanssikohdat korvan simpukassa menevät päällekkäin molemmat osuvat samojen aistinsolujen viritysalueelle Kun äänekset tulevat saman kriittisen kaistan sisälle, korvalla on suuria vaikeuksia erottaa molempia ääniä, heikompi peittyy Pienillä taajuksilla (50-700 hZ) kaistan leveys 100 Hz 700 Hz:stä ylöspäin kasvaa tasaisesti ja saavuttaa 2000 Hz 10 kHz kohdalla Taajuuksien pitää olla siis yli kriittisen kaistan päässä toisistaan, jotta äänekset kuultaisiin erillisinä Yhtäaikaispeiton (simultaneous masking) lisäksi esiintyy esi- ja jälkipeittoa:
IV.a Ääniaallon digitointi (ADC) Näytteistys (sampling) otetaan näytteitä N kertaa sekunnissa Näytteenottotaajus on siten Fs = 1/N Nyquistin teoreeman mukaan näytteenottotaajuudella Fs voidaan näytteistää korkeintaan Fs/2 taajuutta olevia ääneksiä Jos taajuudeltaan Fs/2 korkeammat äänekset pääsevät näytteistykseen, tapahtuu alinäytteistymistä eli laskostumista esim. Fs = 100 kHz yli 50 kHz taajuudet summautuvat alemmille taajuuksille laskostuneen X-akselin mukaisesti yleisiä näytetaajuuksia: 48000 Hz (äänistudio) 44100 Hz (CD) 8000 Hz (puhelin)
IV.b Ääniaallon digitointi (ADC) Näytteistyksen jälkeen saadaan diskreettiaikainen mutta jatkuva-arvoinen jännitesarja Kvanttisointi: analogisignaalin näytteisiin liitetään lukuja, jotka vastaavat erillisiä signaalitasoja (amplitudiarvoja) tuo kvanttisointivirheen, ks. b) mitä enemmän tasoja, sitä pienempi virhe mutta tasot täytyy numeroida ja näin käyttää enemmän bittejä jokainen bitti parantaa signaalikohina-suhdetta 6 dB:llä lineaarikvanttisoinnissa esim. 16 bit – SNR: 16 * 6 = 96 dB (aika hyvä) Kvanttisointitasojen suhde jatkuvaan amplitudiarvoon: lineaarinen epälineaarinen differentiaalinen
V.a Puhekoodekit 3 päätyyppiä: aaltomuotokoodekit vokooderit joukon vanhimmat, yksinkertaisimmat ja bittinälkäisimmät vokooderit synteettistä puhetta alhaisilla bittivirroilla hybriidikoodekit vokooderi + luonnollisen puheen approksimointi äänenlaatua suht. alhaisilla bittivirroilla monimutkaisia
V.b Aaltomuotokoodekit - PCM ei käytetä hyväksi tietoa äänen tuottotavasta sopivat muunkin kuin puheen koodamiseen yksinkertaisin on PCM pulssikoodimodulaatio: keksitty jo v.1937 näytteistys 8 kHz lineearinen, tasavälinen 12 bitin kvanttisointi syntyvä bittivirta: 12 * 8000= 96000 bps Q-virhe max = ½ Q-väli PCM olettaa, että voimakkaiden signaalien todennäköisyys on sama kun heikkojen todellisuudessa jakauma ei ole tasainen: käytetään erisuuruisia välejä!
V.c Aaltomuotokoodekit – A-law PCM käytetään Euroopassa lankapuhelinverkoissa (ETSI) 8000 Hz * 8 bittiä/näyte = 64 kbps epätasavälinen kvanttisointi logaritminen siirtofunktio: A = 87,6 eniten merkitsevä bitti – polarisuus bitit 7-5 – Q-välin numero bitit 4-1 – diskreettisignaalin arvo Q-välin sisällä seuraava askel – ennustus!
V.d Aaltomuotokoodekit – CVSD ollaan hetkessä t äänenpaine muuttuu aina joko ylös- tai alaspäin hetkellä t+1 voidaan ennustaa x(t+1) ja kvanttisoida ainoastaan ennustuksen ja x(t+1) saapuneen sigaalin eron, kvanttisointi on tällöin differentiaalista jos kvanttisointi on 1-bittistä, tapahtuu kulmakertoimen ylikuormitus: siksi säädetään kvanttisointiaskelta dynaamisesti (1-2): Continously Variable Slope Delta Modulation CVSD = Jatkuvasti Muuttuvan Kulmakertoimen Deltamodulaatio lankapuhelinverkon äänenlaaatua 12 – 32 kbps -bittivirroilla
V.e Aaltomuotokodekit SBC & ATC Sub-Band Coding – SBC käyttää äänen taajuustasoa jaetaan puhe taajuuskaistoihin jokainen kaista koodataan erikseen taajuskaistojen leveydet seuraavat kriittisten kaistojen leveyksiä (100-2000 Hz) taajuuskäsittelyn takia suurempi koodausviive 16-32 kbps Adaptive Transform Coding - ATC tehdään FFT ja lasketaan jokaiselle siniäänekselle kerroin mikäli äänes sijoittuu äänten kannalta tärkeään alueeseen, koodataan se tarkemmin vähemmän tärkeät äänekset koodataan vähemmän bittejä käyttäen lankapuhelimen äänenlaatua @ 16 kbps
V.f Vokooderit LPC http://www.spiritcorp.com/1200_bps_vocoder.html puhetta voidaan myös koodata synteesin avulla linear predictive coding LPC selvitetään värähtelyn jakso T = 1/f valitaan järjestelmän heräte soinnillisuuden mukaan V/UV V: äänestä vastaava impulssisarja UV: valkoinen kohinta selvitetään äänenvoimakkuus G etsitään H(z)-puheväylän mallin parametrit (lineaariyhtälöryhmä) esim. Spiritin suljettu LPC-pohjainen toteutus 1.2 kbps: http://www.spiritcorp.com/1200_bps_vocoder.html
V.g Hybriidikoodekit Analysis-by-Synthesis Abs koodekit eroa vokooderiin siinä, että on useampi kuin 2 herätetyyppiä puhe jaetaan 20 ms-pituisiin ikkuonoihin, ja jokaiselle ikkunalle määrätään suotimen paarametrit virhe syntetisoidun ja todellisen puhe-segmentin välillä minimoidaan näin löydetään paras puhe-herätteen approksimaatio, joka myös lähetetään
V.h Hybriidikoodekit Code-Excited Linear Prediction CELP toimii kuten AbS, paitsi herätteet valitaan koodikirjasta löydetty heräte maustetaan LPC-suotimen parametreilla ja lähetetään ohjausdatana dekooderi vastaanottaa ohjausdatan ja syöttää sen synteesisuodattimeen synteesisuodatin ”matkii” puhetta käyttäen lineaarista ennustusta yksinkertainen ohjaussignaali siis tuottaa puhetta lankapuhelinverkon äänenlaatua @ 4.8 -16 kbps GSM-koodekki on myös hybriidikoodekki lyhyt- ja pitkäjaksoisella ennustuksella ennustuskertoimet lasketaan ja siirretään 13 kbps
VI Yhteenveto