220 likes | 360 Views
Ää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?
E N D
Ää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)
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 AkustiikkaaII.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
/ai/ III.b Puheen taajuussisältö • 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 kaistansisä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 • 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älinen12 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
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 V.e Aaltomuotokodekit SBC & ATC • 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 • 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
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 V.h Hybriidikoodekit