1. PUHEEN KOODAUS... 2

Samankaltaiset tiedostot
Puheenkoodaus. Olivatpa kerran iloiset serkukset. PCM, DPCM ja ADPCM

T DSP: GSM codec

puheen laatu kärsii koodauksesta mahdollisimman vähän. puhe pakkautuu mahdollisimman pieneen määrään bittejä.

Alla olevassa kuvassa on millisekunnin verran äänitaajuisen signaalin aaltomuotoa. Pystyakselilla on jännite voltteina.

AV-muotojen migraatiotyöpaja - ääni. KDK-pitkäaikaissäilytys seminaari / Juha Lehtonen

Kuulon malleihin perustuva audiokoodaus, osa II

Laskuharjoitus 4 ( ): Tehtävien vastauksia

Synteesi-analyysi koodaus

Digitaalinen audio & video I

Dynamiikan hallinta Lähde: Zölzer. Digital audio signal processing. Wiley & Sons, Zölzer (ed.) DAFX Digital Audio Effects. Wiley & Sons, 2002.

Johdanto tieto- viestintäteknologian käyttöön: Äänitystekniikka. Vfo135 ja Vfp124 Martti Vainio

Digitaalinen audio & video, osa I. Johdanto. Digitaalisen audion sovellusalueet. Johdanto. Taajuusalue. Psykoakustiikka. Johdanto Digitaalinen audio

Ongelma 1: Onko datassa tai informaatiossa päällekkäisyyttä?

Puhesynteesin perusteet Luento 4: difonikonkatenaatio

Kompleksiluvut signaalin taajuusjakauman arvioinnissa

Puheenkoodaus. koodekki toimii hyvin myös kohinaiselle puheelle (ja mielellään vielä musiikille ja muille yleisille signaaleille)

Digitaalinen audio & video, osa I

Digitaalitekniikan matematiikka Luku 1 Sivu 1 (19) Johdatus digitaalitekniikkaan

1. Määritä pienin näytelauseen ehdon mukainen näytetaajuus taajuus seuraaville signaaleille:

Digitaalinen Audio & Video I

Äänen laadun parantaminen puheensiirrossa keinotekoisella taajuuskaistan laajennuksella

Spektri- ja signaalianalysaattorit

KAISTANLEVEYDEN JA TEHON KÄYTÖN KANNALTA OPTIMAALINEN MODULAATIO TRELLISKOODATTU MODULAATIO (TCM)

Puhetie, PCM järjestelmä, johtokoodi

SGN-4200 Digitaalinen audio

Muuntavat analogisen signaalin digitaaliseksi Vertaa sisääntulevaa signaalia referenssijännitteeseen Sarja- tai rinnakkaismuotoinen Tyypilliset

ELEC-C Sovellettu digitaalinen signaalinkäsittely. Äänisignaalien näytteenotto ja kvantisointi Dither Oskillaattorit Digitaalinen suodatus

Kuvan pakkaus JPEG (Joint Photographic Experts Group)

1 Johdanto. Tiedonsiirron kaistanleveys kasvaa jatkuvasti, mutta kaistan tarve kasvaa vielä enemmän tarve kompressiotekniikoille

Flash AD-muunnin. Ominaisuudet. +nopea -> voidaan käyttää korkeataajuuksisen signaalin muuntamiseen (GHz) +yksinkertainen

1 Todellisia koodausjärjestelmiä: MPEG Audio 1 ja MPEG ensimmäinen sukupolvi. MPEG Audio 1 ja 2. Sisältö:

3 Ikkunointi. Kuvio 1: Signaalin ikkunointi.

Virheen kasautumislaki

Paavo Alku Aalto-yliopisto, Signaalinkäsittelyn ja akustiikan laitos 1. PUHESIGNAALIN OMINAISUUDET. 1.1 Johdanto

5 Akustiikan peruskäsitteitä

Åbo Akademi klo Mietta Lennes Nykykielten laitos Helsingin yliopisto

ELEC-C5070 Elektroniikkapaja (5 op)

Helsinki University of Technology Laboratory of Telecommunications Technology

Laskuharjoitus 2 ( ): Tehtävien vastauksia

Ohjelmistoradio tehtävät 4. P1: Ekvalisointi ja demodulaatio. OFDM-symbolien generoiminen

Ryhmätyö. Kalle Palomäki Signaalinkäsi5elyn ja akus8ikan laitos

5 Lineaarinen ennustus

SGN-4051 Puheenkoodaus

Puheen akustiikan perusteita Mitä puhe on? 2.luento. Äänet, resonanssi ja spektrit. Äänen tuotto ja eteneminen. Puhe äänenä

Juha Henriksson. Digitaalinen äänentallennus Dr. Juha Henriksson Finnish Jazz & Pop Archive

Tietoliikennesignaalit & spektri

Älypuhelinverkkojen 5G. Otto Reinikainen & Hermanni Rautiainen

Digitaalinen audio

1 Diskreettiaikainen näytteistys. 1.1 Laskostuminen. Laskostuminen

SGN-4010, Puheenkäsittelyn menetelmät Harjoitus 6, 18. ja

ELEC-C7230 Tietoliikenteen siirtomenetelmät

Mediaanisuodattimet. Tähän asti käsitellyt suodattimet ovat olleet lineaarisia. Niille on tyypillistä, että. niiden ominaisuudet tunnetaan hyvin

S Havaitseminen ja toiminta

Sisältö. Työn lähtökohta ja tavoitteet Lyhyt kertaus prosessista Käytetyt menetelmät Työn kulku Tulokset Ongelmat ja jatkokehitys

Pianon äänten parametrinen synteesi

Kanavointi ja PCM järjestelmä

LARI KUMPU ADPCM:N KÄYTTÖ ÄÄNEN HÄVIÖTTÖMÄSSÄ PAKKAUKSESSA

Signaalien datamuunnokset. Digitaalitekniikan edut

Signaalien datamuunnokset

Kapeakaistainen signaali

Radioamatöörikurssi 2016

S Teletekniikan perusteet

ATTE VIRTANEN PUHEKOODEKKIEN ÄÄNENLAADUN MITTAAMINEN. Kandidaatintyö

SISÄLLYS - DIGITAALITEKNIIKKA

Dynaamiset regressiomallit

Koodausteoria, Kesä 2014

1. Perusteita Äänen fysiikkaa. Ääniaalto. Aallonpituus ja amplitudi. Taajuus (frequency) Äänen nopeus

1 Olkoon suodattimen vaatimusmäärittely seuraava:

Jukka Pätynen. Jukka, Jussi, Niklas, aiheassistenat 5: Tilaääni Prof. Ville Pulkki, Juhani Paasonen

SIGNAALITEORIAN KERTAUSTA 1

THE audio feature: MFCC. Mel Frequency Cepstral Coefficients

1 Määrittele seuraavat langattoman tiedonsiirron käsitteet.

TL5503 DSK, laboraatiot (1.5 op) Suodatus 2 (ver 1.0) Jyrki Laitinen

KOHINA LÄMPÖKOHINA VIRTAKOHINA. N = Noise ( Kohina )

Kuvan- ja videontiivistys. Mikko Nuutinen

Digitaalitekniikan matematiikka Luku 13 Sivu 1 (10) Virheen havaitseminen ja korjaus

PL 9/Siltavuorenpenger 5 A, Helsingin yliopisto etunimi.sukunimi@helsinki.fi

ÄÄNISYNTEESI TYÖKONESIMULAATTOREISSA

Signaalien generointi

JATKUVAN AWGN-KANAVAN KAPASITEETTI SHANNON-HARTLEY -LAKI

TL5503 DSK, laboraatiot (1.5 op) Audiosignaalit (ver 1.0) Jyrki Laitinen

Matlab-tietokoneharjoitus

nykyään käytetään esim. kaapelitelevisioverkoissa radio- ja TVohjelmien

Kohina. Havaittujen fotonien statistinen virhe on kääntäen verrannollinen havaittujen fotonien lukumäärän N neliö juureen ( T 1/ N)

Tietotekniikan valintakoe

11. kierros. 1. Lähipäivä

Uuden sukupolven HF-kommunikaatiotekniikka

Signaalien datamuunnokset. Näytteenotto ja pito -piirit

Dynamiikan hallinta Lähde: Zölzer. (1997). Digital audio signal processing. Wiley & Sons.

Helsinki University of Technology

Algebralliset menetelmät virheenkorjauskoodin tunnistamisessa

Luku 8. Aluekyselyt. 8.1 Summataulukko

AV-muotojen migraatiotyöpaja - video. KDK-pitkäaikaissäilytys seminaari / Juha Lehtonen

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

HUUDETUN PUHEEN ANALYYSI JA SYNTEESI

Kytkentäkentän teknologia

Tuntematon järjestelmä. Adaptiivinen suodatin

Matematiikan tukikurssi

Signaalit ja järjestelmät aika- ja taajuusalueissa

Modulaatio. f C. amplitudimodulaatio (AM) taajuusmodulaatio (FM)

Transkriptio:

SISÄLLYSLUETTELO 1. PUHEEN KOODAUS... 2 1.1 Puheen koodauksen lähtökohta... 2 1.1.1 Puhesignaalin ominaisuudet... 2 1.1.2 Muita puheen koodauksessa huomioon otettavia tekijöitä... 3 1.2 Koodaustekniikoita... 5 1.2.1 Aaltomuotokoodaus... 5 1.2.2 Vokoodaus... 5 1.2.3 Hybridikoodaus... 7 1.3 VoIP:ssa käytettäviä puheenkoodausstandardeja... 10 1.3.1 G.711... 10 1.3.2 G.728... 10 1.3.3 G.722... 11 1.3.4 G.723.1... 11 1.3.5 G.729A... 11 1.3.6 MPEG1 audio... 12 1.4 Lähdeluettelo:... 13 1

Sanna Lähde 1. PUHEEN KOODAUS Puheen koodauksen perusperiaate on hyvin yksinkertainen. Analoginen puhesignaali suodatetaan, näytteistetään, kvantisoidaan ja koodataan. Koodaus voi kuitenkin tapahtua useilla eri tavoilla käyttötarpeesta riippuen. Siirtotien nopeus ja siirrettävän puheen laatuvaatimukset määräävät, kuinka tehokasta koodausta on käytettävä. Teoriassa on mahdollista päästä hyvinkin alhaisiin bittinopeuksiin puheen pysyessä vielä ymmärrettävänä. Teoreettisena alarajana voidaan pitää 50 bit/s, jos puheen normaaliksi nopeudeksi oletetaan 10 foneemia (symbolia) sekunnissa ja kunkin foneemin informaatiosisällön tallentamiseen katsotaan riittävän 5 bittiä. [1] Tällaisen puheen laatu ei tietenkään vastaa nykyaikaisilta puheensiirtojärjestelmiltä vaadittavaa laatua. Tehokkaimmat koodekit toimivat nykyään vähintään 2 kbit/s nopeudella. Ymmärtämällä paremmin puhesignaalin rakennetta voidaan tehostaa puheen koodausta. Puhesignaalin ominaisuuksia hyödyntämällä voidaan päästä jopa 50:1 kompressioon.[2] Koodekkien suunnittelussa on tämän lisäksi otettava huomioon mm. puheelta vaadittava laatu, kaistanleveys ja koodekin aiheuttama viive. Eri koodaustekniikoita ja tarpeita yhdistämällä kehitetään jatkuvasti uusia koodekkeja, joista parhaiksi koetut on myös standardoitu. H.323 ja SIP tukevat useita koodekkiratkaisuja, joista yleisimmät on kuvattu myöhemmin tässä dokumentissa. 1.1 Puheen koodauksen lähtökohta Puheen koodauksen tavoite on siirtää puhetta paikasta toiseen mahdollisimman tehokkaasti ottaen huomioon puheen laadulle ja muille ominaisuuksille asetetut vaatimukset. Puhesignaalin hienorakenteen tunteminen on tässä tärkeää. Samoin on ymmärrettävä ihmisen korvan toimintaa sekä sen kykyä tunnistaa ja ymmärtää puhetta. 1.1.1 Puhesignaalin ominaisuudet Puheen tunnistaminen ja kielellisen viestin ymmärtäminen on monimutkainen prosessi. Tutkijat eivät ole vielä päässeet selvyyteen siitä, miten ihmisen korva käsittelee puhesignaalia. Tiedetään kuitenkin, että ihmisen kuuloelin pystyy suorittamaan sekä spektri- että aika-analyysin kuulemastaan puheesta. [3] Tämä antaa syyn analysoida myös puhesignaalia niin taajuus- kuin aika-alueessa. Toinen tärkeä näkökulma on soinnillisten ja soinnittomien äänteiden esiintyminen puheessa. Soinnillisilla äänteillä kuten vokaaleilla spektrin huiput esiintyvät säännöllisin välein taajuusasteikolla ja äänen hienorakenne on siis harmoninen. Tätä voidaan käyttää hyväksi puheen koodauksessa tallentamalla tieto vain tärkeimmistä taajuuskomponenteista. 2

Äänteitä, joiden spektrillä ei ole harmonista rakennetta, kutsutaan soinnittomiksi. Monet konsonantit kuten f ja k ovat soinnittomia äänteitä. Voisi luulla, että tällaisen kohinaa muistuttavan äänen koodaus vaatisi paljon enemmän bittejä kuin soinnillisilla äänteillä. Yllättävää kyllä, päättely on virheellinen. On nimittäin todettu ihmisen korva tunnistaa soinnittomat äänteet vain spektrin verhokäyrän perusteella eikä signaalin tarkka tallentaminen muilta osin ole tarpeellista. Näin soinnittomien äänteiden tallentaminen on itse asiassa mahdollista alemmalla bittinopeudella kuin soinnillisten. Luonnollisessa puheessa soinnilliset ja soinnittomat komponentit esiintyvät monesti toisiinsa sekoittuneina. Äänteiden rajat eivät ole selviä, ja soinnillisissakin segmenteissä voi esiintyä paljon soinnitonta kohinaa puhujan puhetyylistä riippuen. Esimerkiksi kuiskaus on lähes kokonaan soinnitonta, vaikka mukana olisi periaatteessa soinnillisia äänteitä. Pelkkää soinnillinen-soinniton -jakoa käyttävät koodekit eivät tämän takia pysty koodaamaan luonnollista puhetta kovin tehokkaasti. [1] 1.1.2 Muita puheen koodauksessa huomioon otettavia tekijöitä Kuten edellä todettiin, puhekoodekit suunnitellaan usein tiettyä käyttötarkoitusta varten. Koodekeilla on tiettyjä ominaisuuksia, joita voidaan muuttaa kuhunkin sovellukseen sopiviksi. Tällaisia ominaisuuksia ovat bittinopeus, subjektiivinen äänen laatu, laskennan vaatima kapasiteetti, viive, herkkyys siirtovirheille sekä signaalin kaistanleveys. [1] 1.1.2.1 Bittinopeus ja subjektiivinen äänen laatu Bittinopeus on valittava sellaiseksi, että äänen laatu on riittävä systeemin sallimissa kapasiteettirajoissa. Bittinopeuden riittävyyttä voidaa arvioida parhaiten subjektiivista äänen laatua mittaamalla. Mittaamista varten on laadittu useita testejä, joissa koehenkilöt arvioivat puheen ymmärrettävyyttä ja virheettömyyttä. Ehkä tärkein näistä testeistä on MOS (mean opinion score), joka pyrkii kuvaamaan puheen laatua kokonaisuutena. Tässä yhteydessä on myös tehtävä päätös siitä, halutaanko vain puheen toistuvan kunnolla vai otetaanko myös muun tyyppiset äänet huomioon. Esimerkiksi musiikin siirtäminen asettaa koodekille aivan toisenlaisia vaatimuksia kuin puhe.[1] 1.1.2.2 Laskennan monimutkaisuus ja muistin koko Koodekin laskennan monimutkaisuus ja muistin koko vaikuttavat merkittävästi sen hintaan ja tehonkulutukseen. Puhekoodekin on pystyttävä toimimaan reaaliajassa, joten yksittäisen ääninäytteen vaatima laskenta on suoritettava sitä vastaavan ajan kuluessa. Taloudellisuussyistä koodekin vaatima algoritmi pitäisi siitä huolimatta saada mahtumaan yhdelle DSPsirulle. Tämä asettaa selvän rajan algoritmien monimutkaisuudelle. Koodekin suorituskykyä kuvataan käsitteen MIPS (million instructions per second) avulla. Se kertoo, kuinka monta miljoonaa käskyä sekunnissa koodekki tai oikeastaan sen sisältämä DSP-siru pystyy suorittamaan. 3

Sanna Lähde Tyypillisesti koodekkien MIPS-arvot vaihtelevat muutamasta MIPS:stä muutamiin kymmeniin.[1] 1.1.2.3 Viive Koodekin viive muodostuu algoritmiviiveestä, laskentaviiveestä, multipleksointiviiveestä sekä siirtoviiveestä. Algoritmiviive johtuu kehyksen varastoimisesta ennen prosessoinnin aloittamista. Algoritmiviive on vähän yli yhden kehyksen vaatima aika. Laskentaviive on varsinaisen laskennan vaatima aika, yleensä vähän alle yhden kehyksen kesto.laskentaviive vaihtelee jonkin verran käytettävän algoritmin mukaan.[11] Multipleksointiviive ja siirtoviive ovat yleensä yhteensä yhden kehyksen pituisia. Kokonaisviive vaihtelee melko paljon eri koodekkiratkaisujen välillä, sillä kehyksen pituus vaihtelee suuresti ratkaisusta riippuen. ITU:n 16 kbit/s standardi G.728 esimerkiksi on suunniteltu ympäristöihin, joissa kaikua ei ole kokonaan poistettu; sen kehyksen pituus on vain 0,625 ms. Sen sijaan 13 kbit/s GSM-standardissa kaiku on oletettu poistetuksi ja kehyksen pituus on 20 ms. Näin myös kokonaisviive vaihtelee muutamasta millisekunnista kymmeniin millisekunteihin.[1] Taulukko. VertailuG.728-standardin ja GSM-standardin kokonaisviiveestä. G.728-standardi GSM-standardi Algoritmiviive noin 0,625 ms Noin 20 ms Laskentaviive Alle 0,625 ms Alle 20 ms Multipleksointi- ja siirtoviiveet Noin 0,625 ms Noin 20 ms Viiveet yhteensä Noin 2 ms Noin 60 ms 1.1.2.4 Herkkyys siirtovirheille Koodekin herkkyys siirtovirheille on hyvin kriittinen ominaisuus monissa systeemeissä. Puhe ei ole herkkä pienille virheille, mutta datan siirrossa yksikin bitti voi merkitä paljon. Tämän takia siirretyt bitit luokitellaan yleensä kahteen luokkaan virheherkkyyden mukaan, siis puhe- ja datasiirto omiksi luokikseen[1]. 1.1.2.5 Kaistanleveys Puhesignaalin kaistanleveys voidaan rajoittaa noin 10 khz:iin vaikuttamatta sen havaitsemiseen. Yleensä puhesignaalin kaistanleveys on kuitenkin paljon kapeampi, tyypillisesti 4 khz. Vaikka laajakaistaisia puhekoodekkeja määritelty (esim. ITU:n G.722), ne eivät ole vielä päässeet yleistymään, sillä koodekit ovat monesti yhteydessä kapeakaistaiseen, tavalliseen puhelinverkkoon.[1] 4

1.2 Koodaustekniikoita Puheenkoodausalgoritmit voidaan jakaa kolmeen luokkaan: [4] aaltomuotokoodaus vokoodaus hybridi-koodausalgoritmit 1.2.1 Aaltomuotokoodaus Aaltomuotokoodauksessa pyritään koodaamaan alkuperäinen aaltomuoto niin tarkasti kuin mahdollista. Aaltomuotokoodekit eivät käytä hyväkseen tietoa puhesignaalin ominaisuuksista vaan koodaavat kaikkea ääntä samalla tavalla. Tästä monipuolisuudesta seuraa, että bittinopeudet ovat monesti suuria. Yksinkertaisin aaltomuotokoodaustekniikka on PCM. Kun PCM:ssä käytetään hyväksi epätasavälistä 8-bittistä kvantisointia (A-laki tai µ-laki) 8 khz:n näytteistyksellä, päästään hyvään puheen laatuun bittinopeudella 64 kbit/s. PCM-koodauksessa kukin näyte koodataan itsenäisesti seuraavista tai edeltävistä näytteistä välittämättä. DPCM (differential pulse code modulation) käyttää hyväksi peräkkäisten näytteiden korrelaatiota. Suurella todennäköisyydellä peräkkäisten näytteiden ero on pieni ja näytteen arvo voidaan ennustaa jollakin tarkkuudella edellisestä näytteestä. Voidaan esimerkiksi ennustaa, että seuraava näyte on sama kuin edellinen. Seuraavassa näytteessä koodataan vain näytteiden välinen ero. Näin tarvitaan vähemmän bittejä kuin koodattaessa koko näyte, tavallisesti 4 bittiä riittää. [5]. ADPCM (adaptive differential PCM) on kuten DPCM, mutta siinä kvantisointiaskeleen koko muuttuu puheen tehon mukaan. ADPCM saavuttaa tyypillisesti 2:1 kompression A- ja µ-lakiin verrattuna. [5] Ennustetun näytearvon laskeminen ja kvantisointiaskeleen adaptoituminen signaalin mukaan vaihtelee eri koodekeissa. ADPCM on tärkeä puheenkoodaustekniikka, jonka pohjalle on luotu useita standardeja. Esimerkiksi ITU-T:n suositukset G.721, G.722, G.723, G.726 ja G.727 perustuvat ADPCM:ään. [4] 1.2.2 Vokoodaus Jotkin koodausmetodit on suunniteltu varta vasten puheen koodaamiseen. Käyttämällä puhesignaalin rakennetta kuvaavia malleja voidaan saavuttaa hyviä tuloksia puheen koodauksessa. Tällaiset koodausmetodit eivät kuitenkaan toimi hyvin muille kuin puhesignaaleille. Vokoodauksessa (voice + coding) puhe koodataan puhesignaalia tai ääntöväylää kuvaavien parametrien avulla. Parametrien koodaus ei vaadi 5

Sanna Lähde niin paljon kapasiteettia kuin aaltomuodon koodaus, joten vokooderit toimivat melko pienillä bittinopeuksilla. Kuvassa 1 on esitetty vokooderien käyttämä yksinkertainen puheentuottomalli. Soinnilliset äänteet mallinnetaan vastaavina perustaajuuksina, ja soinnittomien äänteiden esittämisessä käytetään kohinageneraattoria. Kytkin valitsee sopivan herätteen ja ajan mukaan parametrejaan muuttava suodatin kuvaa ääntöväylää. Soinnillisiin ja soinnittomiin jakautuvassa mallissa on heikkoutensa. Puhetta ei aina voida jaotella soinnilliseen ja soinnittomaan. Äänen korkeus soinnillisissa äänteissä ei myöskään ole puheessa vakio, vaan vaihtelee jonkin verran ajan funktiona. Tämä ominaisuus saa joskus vokooderien välittämän puheen kuulostamaan keinotekoiselta. [4] Ääntöväylän ominaisuuksia voidaan kuvata useilla eri tavoilla. Se voidaan esittää taajuusspektrinä (kanavavokooderi), kuvaamalla vain tärkeimmät spektrikomponentit (formanttivokooderi) tai käyttämällä hyväksi lineaariprediktion (LPC) avulla laskettuja kertoimia (LPC-vokooderi). [4] Soinnilliset herätteet Ääntöväylää kuvaava suodatin Puhe Soinnittomat herätteet Soinnillinen /soinniton -kytkin Kuva 1: Vokooderin puheentuottomalli Lineaariprediktiota käyttävä koodekki (LPC) johtaa ääntöväylää kuvaavan suodattimen ajan mukana muuttuvat parametrit mallintamalla ääntöväylän spektrin muotoa eri syötteillä. Parhaiten mallia noudattavat parametrit siirretään, ja dekooderi generoi niiden perusteella alkuperäistä puhesignaalia jäljittelevän signaalin. Suodattimen parametrit päivitetään tavallisesti 20 30 ms välein. [4] Lineaariprediktio mallintaa signaalin aaltomuotoa nimensä mukaan lineaarisesti. M:nnen asteen lineaariprediktiossa näyte esitetään M:n edeltävän näytteen x(n-i) kombinaationa. Ennustettu arvo x (n) saadaan yhtälöstä 6

M x ( n) = α x( n i) i= 0 jossa α i on summan painokerroin. [6] i 1.2.3 Hybridikoodaus Hybridikoodekit yhdistävät aaltomuotokoodekkien ja vokoodereitten ominaisuuksia ja pyrkivät koodaamaan puhetta yhä tehokkaammin. Monimutkaisempien algoritmien avulla päästään varsin korkealaatuiseen puheen koodaukseen. Hybridikoodekit käyttävät hyväkseen samankaltaista puheentuottomallia kuin vokooderitkin. Mallin herätesignaali ei kuitenkaan hybridikoodauksessa ole yksinkertaisesti soinnillinen tai soinniton, vaan puheen kuvaamisessa käytetään tarkempaa mallia. Hybridikoodekkien bittinopeus asettuu vokoodereiden hyvin alhaisen bittinopeuden ja aaltomuotokoodekkien suuren bittinopeuden välille. Tavallisessa LPC-koodauksessa ääntöväylää kuvataan suodattimella, jossa on pelkkiä napoja. Hybridikoodauksessa käytetään tämän käänteissuodatinta, suodattimessa on siis pelkkiä nollia. Kun puhesignaalia suodatetaan tällaisella käänteisellä LPC-suodattimella, lyhyen aikavälin korrelaatiot puhesignaalin sisällä saadaan tehokkaasti poistettua, ja jäljelle jää kohinaa muistuttava signaali, ns jäännössignaali. Jos puhe on soinnillista, jäännössignaalissa on piikit formanttitaajuuksilla, mutta soinnittoman puheen jäännössignaalissa ei ole nähtävissä mitään rakennetta. Tällaisen koodauksen perusidea on esitetty kuvassa 2. Jos tällä tavalla muodostettu jäännössignaali suodatetaan alkuperäisellä (pelkkiä napoja sisältävällä) LPC-suodattimella, saadaan alkuperäinen puhesignaali. Vaikka jouduttaisiin käyttämään kvantisointia, puhesignaalista saadaan silti lähes alkuperäisen kaltainen. Tällä menetelmällä saadaankin suunniteltua korkealaatuisia puhekoodekkeja, kun kvantisointi on tehokasta. [4] Input Käänteinen Käänteinen suodatin suodatin Jäännössignaalin Jäännössignaalin Erosignaali kvantisointi kvantisointi Kvantisoitu jäännössignaali Kvantisoidut kertoimet Kertoimien Kertoimien määritys määritys Suodattimen kertoimet Kertoimien Kertoimien kvantisointi kvantisointi Kuva 2. LPC-algoritmiin ja jäännössignaalin kvantisointiin perustuva hybridikoodausmalli 7

Sanna Lähde 1.2.3.1 Erilaisia hybridikoodausratkaisuja Yksinkertaisin tapa suunnitella hybridikoodekki on käsitellä jäännössignaalia tavallisena aaltomuotona ja kvantisoida se suoraan. Tällaista koodaustapaa kutsutaan nimellä APC (adaptive predictive coding). Koska jäännössignaali on kohinan kaltaista, peräkkäisten näytteiden välillä ei ole korrelaatiota ja koodaus on varsin tehotonta. APC:n variaatio on RELP (residual excited linear predictive coding). Siinä jäännössignaali alipäästösuodatetaan ennen koodausta. Näin näytteiden määrä vähenee, ja koodauksessa tarvitaan vähemmän bittejä. Kun APC:n tai RELP:n bittinopeutta vähennetään lähelle 8 kbit/s, jäännössignaalin esittäminen käy epätarkaksi ja puheen laatu huononee nopeasti. Tätä pienemmillä bittinopeuksilla tarvitaan erittäin monimutkaista ja tarkkaa esitystä herätesignaalille, jotta puheen dekoodaus olisi tehokasta. MPLPC (multipulse LPC) koodekki käyttää epäsäännöllistä vaihtelevaamplitudisten pulssien sarjaa puheentuottomallin suodattimen herätteenä. Soinnillisten ja soinnittomien herätteiden välille ei tehdä eroa, vaan samantyyppistä herätettä käytetään kuvaamaan kaikkia puhesegmenttejä. Kuvasta 3 nähdään MPLPC-koodekin perusrakenne. Heräte johdetaan analysis-by-synthesis proseduurilla, jossa sisäänmenoa ja syntetisoitua puhetta verrataan ja heräte johdetaan minimoimalla virhe kahden signaalin välillä. Minimointi tapahtuu etsimällä ne pulssien paikat ja amplitudit, jotka tuottavat pienimmän kokonaisvirheen kussakin tutkittavassa näytejaksossa (pituus yleensä 20 80 näytettä). Optimaalisten pulssin paikkojen ja amplitudien laskeminen on erittäin monimutkainen matemaattinen ongelma. Tästä syystä on kehitetty vähemmän optimaalisia metodeja, jotka laskevat paikan ja amplitudin kullekin pulssille erikseen. MPLPC-koodekit toimivat varsin laajalla nopeusalueella, tyypillisesti välillä 8 kbit/s ja 16 kbit/s. Puhe + + - Virheen Virheen minimointi minimointi Puhetta kuvaavan pulssisarjan parametrit Siirrettävät parametrit LPC-kertoimet LPCsuodatin LPCsuodatin LPCanalyysi LPCanalyysi LPCkertoimet Herätteen Herätteen muodostus muodostus Monipulssiheräte Kuva 3. MPLPC-koodekin perusrakenne MPLPC-koodekkia voidaan parantaa ottamalla huomioon puheessa esiintyvät pitkän aikavälin korrelaatiot ja optimoimalla havaittavaa puheen laatua. LPC-suodattimen kertoimia painotetaan puhesignaalissa pitkällä aikavälillä todettujen korrelaatioiden perusteella. Virheen minimoinnissa 8

otetaan huomioon havaittu puhesignaalin särö pelkän mekaanisen laskennan asemesta. Näin puheen parametrit voidaan kuvata pienemmällä bittimäärällä kuin alkuperäisessä koodekissa. Säännöllisellä pulssiherätteellä toimiva RPE-LPC-koodekki (regular-pulseexcited) on variaatio MPLPC-koodekista. Siinä herätesignaalin pulssit sijaitsevat tasavälein. Koodauksessa valitaan kullekin pulssille sopiva herätevektori kvantisoituine apmlitudiarvoineen. Nämä tiedot välitetään dekooderille, joka generoi niiden perusteella alkuperäisen puhesignaalin. CELP- (code-excited linear prediction) ja SELP- (stochastic excited linear prediction) koodekit perustuvat MPLPC:n tavoin analysis-by-synthesis - tekniikkaan. LPC-suodatin, pitkän aikavälin ennustaminen ja havaitsemiseen perustuva painottaminen toimivat kuten MPLPCkoodekissa. Ero monipulssikoodekin ja CELP-koodekkien välillä on herätefunktio. Monipulssikoodekin pulssit korvataan koodekin sisältämästä koodikirjastosta saatavalla herätesekvenssillä. Koodekki valitsee koodikirjaston sekvensseistä optimaalisen; siis sen sekvenssin joka tuottaa pienimmän virheen alkuperäisen puhesignaalin ja syntetisoidun signaalin välille. Koodikirjasto on tallennettuna myös dekooderiin, joten pelkän kirjaston tiettyä herätettä vastaavan indeksin ja herätesignaalin vahvistuskertoimen siirtäminen riittää puhesignaalin dekoodaamiseen. CELP-koodekki kuten monipulssikoodekkikaan ei tee eroa soinnillisen ja soinnittoman puheen välille, vaan kaikkia puhesegmenttejä kuvaava herätesignaali määritetään samalla tavalla. ITU-T:n suositus G.728, joka on yksi H.323:n hyväksymistä suosituksista, käyttää muunnelmaa CELP:stä. CELP-koodekin perusrakenne käy ilmi kuvasta 4. Puhe + - Havaintoon perustuva Havaintoon perustuva painotus painotus Virheen Virheen minimointi minimointi Koodikirjaston indeksi LPC-kertoimet Ennustusparametrit LPCsuodatin LPCsuodatin Pitkän aikavälin Pitkän aikavälin ennuste ennuste Koodikirjasto Koodikirjasto Pitkän aikavälin Pitkän aikavälin kertoimien määritys kertoimien määritys LPCanalyysi LPCanalyysi LPCkertoimet Ennustusparametrit Kuva 4. CELP-koodekin perusrakenne Aika-alueessa toimivien koodausalgoritmien lisäksi on olemassa myös taajuusalueen algoritmeja. Esimerkkeinä mainittakoon SBC (subband coding), ATC (adaptive transform coding) ja MBE (multiband excitation). 9

Sanna Lähde Taajuusaluekoodekkeja käytetään yleensä laajakaistaisissa audiokoodekeissa. Yksi tärkeimmistä standardeista tällä alueella on ITU- T:n suositus G.722. [4] 1.3 VoIP:ssa käytettäviä puheenkoodausstandardeja Kaikissa H.323-terminaaleissa pitää olla audiokoodekki. Niiden pitää pystyä koodaamaan ja dekoodaamaan puhetta ITU-T:n suosituksen G.711 mukaan. Niiden täytyy ymmärtää sekä A-lakia että µ-lakia. Tämän lisäksi terminaalit voivat tukea suosituksia G.722, G.728, G. 729, MPEG1 audio ja G.723. [7] Seuraavassa esitellään lyhyesti kaikki edellämainitut audiokoodekkisuositukset. Näiden lisäksi SIP tukee monia suosituksia, kuten G.711, GSM ja DVI4. 1.3.1 G.711 ITU-T:n suositus G.711 on pulssikoodimodulaatioon (PCM) perustuva puheenkoodaussuositus taajuuksille 300 Hz 3400 Hz. Sitä käytetään digitaalisessa puhelinverkossa. Näytteenottotaajuus on 8 khz ja 8-bitin koodekin siirtonopeus on siten 64 kbit/s. G.711 määrittelee kaksi erilaista logaritmista koodauslakia, jotka tunnetaan nimillä A-laki ja µ-laki. A-laki on käytössä Euroopassa ja µ-laki Amerikassa sekä Japanissa. Näiden paloittain lineaaristen lakien avulla 14 bitin puhenäyte voidaan koodata 8 bitillä. Logaritmista kvantisointia käyttämällä saavutetaan alhaisempi signaali-kohinasuhde kuin lineaarisella kvantisoinnilla noin 35 db. [9] G.711 on ensimmäinen standardoitu digitaalinen audiokoodausratkaisu. A- laki ja µ-laki ovat helppoja toteuttaa, mutta kompressiosuhde on heikko. Tehokkaampi audiokoodausratkaisu on esitetty suosituksessa G.728. [8], [6] 1.3.2 G.728 Suosituksen G.728 tarkoituksena on siirtää puhetta yhtä korkealaatuisesti kuin G.711 käyttämällä vain neljännes sen siirtonopeudesta, siis 16 kbit/s. Toinen tavoite oli pystyä käytämään sitä maailmanlaajuisesti, mikä johti vaatimukseen alhaisesta viiveestä. Ensimmäinen G.728-sovellus oli käytössä videopuhelimessa. [9] G.728 perustuu melko monimutkaiseen LD-CELP-algoritmiin taajuusalueella 300 3400 Hz. G.728-koodekki analysoi A- tai µ-lailla koodattua puhetta viiden näytteen ryhmissä. Analysis-by-synthesis tekniikalla optimoidaan alkuperäisen puhesignaalin ja syntetisoidun signaalin välinen virhe mahdollisimman pieneksi. Koodikirjasto sisältää 1024 erilaista vektoria, joista valitaan paras kuvaamaan alkuperäistä puhesignaalia. [6] G.728:n suorituskykyä on tutkittu laajasti. Se pystyy toistamaan tehokkaasti myös signaaleja, jotka sisältävät paljon taustamelua. Se kestää hyvin satunnaisia bittivirheitä, paremmin kuin G.711. [9] 10

1.3.3 G.722 Ymmärrettävän puheen siirtämiseen riittää suosituksen G.711 tarjoama taajuuskaista 300 3400 Hz, mutta korkealaatuiselle audiosignaalille tämä ei ole tarpeeksi. ITU-T:n suositus G.722 määrittelee laajakaistaisen 50 Hz 7 khz koodaussuosituksen korkealaatuisen puheen ja äänen siirtämiseen. Siirtonopeus on 64 kbit/s. Suosituksen G.722 laajakaistakoodekkia käytetään ensisijaisesti tele- ja videokonfferensseissa. Kun laajakaistakoodekkia on testeissä verrattu puhelinkaistalla toimiviin koodekkeihin, 7 khz:n kaistaa on aina pidetty parempana. [9] G.722 käyttää jaetun kaistan adaptiivista differentiaalista kvantisointialgoritmia, joka perustuu ADPCM:ään. 8 khz:n taajuuskaista on jaettu kahteen yhtä leveään alikaistaan. Alikaistojen koodauksessa käytetään erilaisia adaptiivisia differentiaalisia kvantisointilakeja. Korkeampi kaista koodataan aina käyttämällä 2 bittiä/näyte, siis 16 bit/s. Siirtomuodosta riippuen alempi kaista koodataan joko 4, 5 tai 6 bitillä/näyte. Vastaavat bittinopeudet ovat 32, 40 ja 48 kbit/s.tällainen koodaus on mahdollista, koska puhesignaalin informaatiosisältö (energia) alemmilla taajuuksilla on suurempi kuin suurilla taajuuksilla. [8], [6] 1.3.4 G.723.1 G.723.1 luotiin 1990-luvun alussa ja perustuu ADPCM-tekniikkaan. Se on tarkoitettu matalabittinopeuksisiin videopuhelimiin, ja toimii bittinopeuksilla 5,3 ja 6,4 kbit/s. G.723.1 on hyvä esimerkki niistä valinnoista, joita joudutaan tekemään bittinopeuden, laadun, kompleksisuuden ja viiveen välillä. G.723.1:n kehyksen pituudeksi valittiin 30 ms, joten sen viive on myös korkea. Noin 16 MIPS ja 2200 sanaa RAM:ia tarvitaan toteuttamaan G.723.1-koodekki. G.723.1-koodekin objektiivinen laatutaso on hyvä. Se saavuttaa kaikki äänen laadulle asetetut vaatimukset, musiikin ja hyvin paljon hälyä sisältävän äänen siirtoa lukuunottamatta. [11] 1.3.5 G.729A Suosituksen G.729 tarkoituksena oli luoda 8 kbit/s laadukas puhekoodekki langattomia sovelluksia varten. Koska langattomaan käyttöön tarkoitetun koodekin piti olla yksinkertainen, päädyttiin lopulta 10 ms kehyskokoon. Näin koodekin kokonaisviiveeksi tuli 25 ms.alkuperäiset G.729-toteutekset käyttivät 20 MIPS ja 300 sanaa RAM:ia. MIPS-arvo on noin 30-35 prosenttia pienempi kuin G.728, mutta RAM:n käyttö on noin 1000 sanaa suurempi. Langattomuuden takia koodekin täyty kestää hyvin myös satunnaisia bittivirheitä sekä kehyksen menetyksiä. Testien mukaan tässä on onnistuttu. G.729 Annex A eli lyhyesti G.729A sisältää joitakin parannuksia alkuperäiseen G.729-koodekkiin verrattuna. Kuten G.729, se perustuu CS- ACELP-algoritmiin (conjugate structure algebraic code excited linear prediction). Algoritmimuutoksilla on kompleksisuutta saatu vähennettyä 11

Sanna Lähde jopa 50 %. Annex A suunniteltiinkin alun perin sovelluksiin, joissa G.729:n ja G.923.1:n monimutkaisuus toisi lisäongelmia.[11], [12] 1.3.6 MPEG1 audio Noin kymmenen vuotta sitten alettiin pohtia, miten saataisiin aikaan koodekki, joka ymmärtäisi samanaikaisesti sekä puhetta että kuvamuotoista dataa. Marraskuussa 1992 ISO:n alaisuudessa toimiva MPEG (Moving Pictures Expert Group) onnistui luomaan yhteisen standardin äänelle ja videolle. Syntyi IS-11172 eli MPEG1-standardi. MPEG1-Audio-standardi on osa MPEG1-standardia. Sen avulla on mahdollista koodata 1-2 kanavaa bittinopeuksilla 32 kbit/s (mono) 448 kbit/s (stereo). Koodaamisessa voidaan käyttää kolmea eritasoista algoritmia, joiden näytteenottotaajuudet ovat 32, 44,1 ja 48 khz. Koodauksessa otetaan huomioon havaittu äänen laatu, mikä tehostaa koodausta.[13] 12

1.4 Lähdeluettelo: [1] P. Kroon and W.B. Kleijn, Speech coding and Synthesis, Chapter 1 An Introduction to Speech Coding (editors: W.B. Kleijn and K.K. Paliwal), pp. 1-44, Elsevier Science Publ., Amsterdam, the Netherlands 1995 [2] I.G. Moffat, A.G. Davis, A.W. O Neill, The Internet telephone a new paradigm, Advances in Interactive Voice Technologies for Telecommunication Services, 1997 [3] B. C. J. Moore, An Introduction to the Psychology of Hearing. London: Academic Press, 1989. [4] I. Boyd, Speech coding for telecommunications, Electronics & Communication Engineering Journal, Vol. 4, Issue 5, pp. 273-283, 1992. [5] Igor Tesija, An overview of video conferencing technology, standards and applications, 1998 http://cn.carnet.hr/arhiva/1998/980518mipro/itesija.html [6] Kalle Palomäki, Master s Thesis Warped linear predictive audio coding in a video conferencing application, Helsinki University of Technology, Faculty of Electrical and Communications Engineering, 1998. [7] Equivalence, The Open H323 Project, 1998, 1999, 2000 http://www.openh323.org/standards.html [8] ITU-T Recommendation G.711, 1988. Pulse code modulation (PCM) of voice frequencies. [9] P. Kroon and W.B. Kleijn, Speech coding and Synthesis, Chapter Speech coding standards (editor: R.V. Cox), pp. 49-77, Elsevier Science Publ., Amsterdam, the Netherlands 1995 [10] ITU-T Recommendation G.728, 1992. Coding of speech at 16 kbit/s using low-delay code exited linear prediction (LD-CELP). [11] Richard V. Cox, Three New Speech Coders from the ITU Cover a Range of Applications, IEEE Communications Magazine, pp. 40 47, 1997. [12] R. Salami, C. Laflamme, B. Bessette, J.-P. Adoul, Description of ITU- T Recommendation G.729 Annex A: reduced complexity 8 kbit/s CS- ACELP coder, IEEE international conference on Acoustics, Speech and Signal Processing, 1997 [13] J.B. Rault, Y.F. Dehery, M. Lever, The ISO/MPEG Audio MISICAM family, IEEE Colloquium on MPEG-2 What it is and What it isn t, 1995 13