Puheen pakkaaminen

Wikipediasta
Tämä on arkistoitu versio sivusta sellaisena, kuin se oli 11. marraskuuta 2022 kello 21.02 käyttäjän Ipr1 (keskustelu | muokkaukset) muokkauksen jälkeen. Sivu saattaa erota merkittävästi tuoreimmasta versiosta.
Siirry navigaatioon Siirry hakuun

Puheen pakkaaminen eli puheen koodaus on menetelmä, jolla puhetta pyritään siirtämään tai tallentamaan käyttäen mahdollisimman vähän siirto- tai tallennuskapasiteettia. Menetelmä tai laite, jolla puhe pakataan tai koodataan ja pakkaus puretaan, on nimeltään puhekoodekki. Kehittyneissä puheen pakkaamismenetelmissä mallinnetaan ihmisen äänijänteitä sekä muita puheenmuodostuksen mekanismeja.

Puheenkoodausmenetelmiltä vaaditaan muutamia keskeisiä ominaisuuksia. Pakatun puheen tulisi olla:

  • ymmärrettävää
  • tunnistettavaa
  • luonnollista

Puhekoodekin toteutuksen tulisi tekniikaltaan olla myös:

  • yksinkertainen
  • vaatia vähän resursseja (prosessointiteho, kaistavaatimus jne.)
  • virheensietokykyinen
  • nopea

Puhekoodekit perustuvat joko äänen aaltomuodon käsittelyyn tai puheen mallintamiseen (engl. source codec) tai näiden molempien yhdistelmään.

Aaltomuotokoodekit

Aaltomuotokoodekkeihin kuuluu muun muassa PCM (Pulse Code Modulation)-koodaus, jota käytetään puheen välittämisessä digitaalisessa puhelinverkossa. ITU:n G.711-standardi määrittelee kaksi erilaista logaritmista koodausta digitaalisille signaaleille, pulsseille, A-lain ja µ-lain. G.711 käyttää joko bittinopeutta 64 kb/s tai 56 kb/s. Aaltomuotokoodekit pyrkivät mallintamaan alkuperäistä äänisignaalia mahdollisimman tarkasti ottamatta kantaa sen sisältöön. Ne ovat myös hyvin yksinkertaisia. Toisaalta, koska aaltomuotokoodekit vaativat paljon tietoliikennekaistaa, niille syötettävä äänisignaali täytyy ensin suodattaa sopivaksi: G.711-koodekit sopivat puhelinlaatuisen äänen eli taajuusalueen 300–3 400 Hz välittämiseen vaatimattomalla dynamiikalla (niiden teoreettinen maksimi on 36 dB). ADPCM eli G.726 sovittaa dynaamisesti koodauksen käyttämän arvoalueen sopivaksi. G.726 tarvitsee puhelinlaatuisen äänen välittämiseen vain 32 kb/s.

Aaltomuotokoodekkeja:

  • ITU G.711 (64 kb/s)
  • ITU G.726 (32 kb/s
  • ITU G.727 (16–40 kb/s)

Mallinnuskoodekit

Edellistä tehokkaampi tapa pakata puhetta on mallintaa äänilähde ja yrittää tuottaa alkuperäistä muistuttava ääni mallin käyttämien parametrien avulla. Koska äänen alkuperäistä aaltomuotoa ei tallenneta vaan ainoastaan sen tuottamiseen käytettävät parametrit, vaadittava tiedonsiirtokapasiteetti on erittäin pieni. Ymmärrettävää puhetta pystytään välittämään jo 2,4 kb/s kaistalla. Pakattu ääni kuulostaa kuitenkin metalliselta ja epäluonnolliselta.

Ensimmäinen tähän menetelmään perustunut puheenpakkausmenetelmä oli nimeltään Vocoder (engl. VOice CODER), jonka kehitti Homer Dudley AT&T:n Bell Labsissa 1930-luvulla. Vocoder oli analoginen, sen äänimallissa oli kymmenen eri taajuuksille viritettyä kaistanpäästösuodinta, herätteenä käytettiin pulssioskillaattoria tai kohinaa. Kaikista pelkästään mallinnukseen perustuvista koodekeista voidaan joskus käyttää yleisnimitystä vocoder.

Puheenkoodauksessa 1970-luvulta alkaen käytetyt digitaalisen mallinnuksen menetelmät perustuvat kaistanpäästösuodattimien sijaan lineaariennusteeseen, ja niistä käytetään lyhennettä LPC (Linear Prediction Coding).

Tunnetuin nykyisin käytetyistä mallinnuskoodekeista on LPC-10.

Hybridikoodekit

Hybridikoodekit yhdistävät toisiinsa mallinnuksen ja aaltomuotokoodauksen ominaisuudet. Hybridikoodekit pyrkivät säilyttämään alkuperäisen signaalin ymmärtämiselle tärkeät osat (esimerkiksi formantit) muuttumattomina mutta syntetisoimaan loput. Tunnetuin hybridikoodekeissa käytettävistä algoritmeista on nimeltään CELP (Codebook Excited Linear Prediction). Sillä pystytään tuottamaan ymmärrettävää puhetta alle 5 kb/s kaistalla.

CELP perustuu AbS-malliin (Analysis by Synthesis): eri parametrien tuottamaa ääntä verrataan pakattavaan ääneen ja pyritään löytämään niille arvot, jotka tuottavat pienimmän keskineliövirheen. Kaikkien mahdollisten parametrien kokeilu vaatii kuitenkin liikaa resursseja, joten CELP:tä on kehitetty lukuisia eri variantteja. Tärkein näistä on nimeltään Algebraic CELP eli ACELP.

Hybridikoodekkeja:

GSM 06.60 (AMR) 4,75–12,2 kb/s ACELP
FS-1016 4,8 kb/s CELP
ITU G.723.1 6,3 kb/s ACELP
5,3 kb/s MP-MLQ
3GPP TS 26.171 (AMR-WB) 6,6–23,85 kb/s ACELP
ITU G.722.2
ITU G.729 8,0 kb/s ACELP
GSM 06.60 EFR 12,2 kb/s ACELP
GSM 06.10 FR 13 kb/s RPE-LTP

Käyttökohteet

Puheen pakkaamista sovelletaan etenkin matkapuhelinverkoissa (GSM), VoIP-puheluissa sekä podcasteissa. Käyttökohteen mukaan käytetään erilaisia koodekkeja. Esimerkiksi Opus on käytössä VoIP-verkossa ja se on syrjäyttänyt aiemman Speex-koodekin. Uusia koodekkeja ovat Googlen Lyra.

Katso myös

Aiheesta muualla