Sisältö:
Veppipuhelimen tekniikkaa
Näytteistys
Koodekit
Viive
Yhteyskäytännöt
Ennen puheen siirtoa Internetissä ääni näytteistetään (digitoidaan), mikä
tapahtuu yleensä tietokoneen äänikortin avulla. Näin saadaan puhe digitaaliseen
muotoon ja voidaan käyttää erilaisia
koodekkeja
ja pakkaustapoja äänen
jatkokäsittelyyn. Yleensä tärkein vaatimus on saada siirrettevä puhe viemään
mahdollisimman vähän tilaa, mutta kuitenkin samalla säilyttää puheen
ymmärrettävyys. Nämä ominaisuudet pyritään saavuttamaan sopivalla koodekilla.
Internet puolestaan aiheuttaa siirtoon satunnaisia ja vaihtelevia viiveitä sekä
tiedon katoamista. Näin ollen tarvitaan erilaisia yhteyskäytäntöjä
(protokollia) näiden hallintaan. On olemassa paljon erilaisia standardeja,
jotka määrittelevät tarvittavat yhteyskäytännöt ja koodekit.
Puheen matka alkaa näytteistyksellä, jolloin tietokoneessa oleva äänikortti
ottaa mikrofoniin puhutusta signaalista näytteitä. Laadusta voidaan yleensä
tinkiä huomattavastikin, sillä esimerkiksi lankapuhelimen siirtämä taajuusalue
on vain 300 - 3 400 Hz. Tähän tasoon pyrittäessä noin 8 000 Hz
näytteenottotaajuus
riittää hyvin, sillä näytteenotton pitää tapahtua vähintään kaksinkertaisella
taajuudella näytteistettävän signaalin korkeimpaan taajuuteen verrattuna
(toisin sanoen jos halutaan toistaa signaalit esimerkiksi alueelta 0 - 4 000
Hz, niin näytteistys pitää tehdä 8 000 kertaa sekunnissa, eli 8 000 Hz
taajuudella). Yleensä laitetaan vielä pieni varmuusmarginaali
näytteistystaajuuden päälle, eli 0 - 3 400 hertsin signaalia ei näytteistetä
taajuudella 6 800 Hz vaan hieman suuremmalla kuten 8 000 Hz:llä.
Myöskin dynamiikasta voidaan tinkiä, esimerkiksi CD-soittimen
dynamiikka
on 16
bittiä yhtä näytettä kohden, kun taas tavallisen puheen siirtämiseen riittää
hyvin 8 bittiä, jolloin voidaan esittää 256 (2*2*2*2*2*2*2*2) eri
äänenvoimakkuustasoa. Kun tietokone ottaa näytteitä 8 000 Hz:n taajuudella, eli
8
000 kappaletta sekunnissa, ja jokaisen näytteen äänenvoimakkuustaso
määritellään 8 bitillä, niin tiedonsiirtotarve ilman pakkausta olisi 8 000 * 8
= 64 000 bittiä sekunnissa (reilut kuusi kilotavua sekunnissa).
Viereisessä kuvassa näkyy, miten äänen näytteistys periaatteessa tapahtuu.
Pystyakselilla ovat näytteistystasot ja vaaka-akselilla aika. Punainen viiva on
pala mikrofonista tullutta äänisignaalia. Vihreä alue on malli tietokoneen
tekemästä näytteistyksestä. Esimerkiksi toisena oleva näyte on yhdeksän
yksikköä korkea, joten sen binäärinen esitysmuoto olisi kahdeksan bitin
dynamiikalla (tarkkuudella)
0000 1001
. Näytteitä otetaan 64 000 kappaletta sekunnissa, eli yhden näyteviipaleen
paksuus on 1/64 000 sekuntia (noin 16 mikrosekuntia).
Koska puhedataa tulee 64 000 bit/s, ja koska tällaista tiedonsiirtokapasiteettia
on varsin harvalla käytettävissään puhuttaessa Internetin yli, täytyy tämä
näytteistämällä saatu data pakata.
Lisäksi jotkin vanhemmat äänikortit pystyvät ainoastaan digitoimaan tai
toistamaan ääntä kerrallaan. Tällaisella
half duplex
-äänikortilla täytyy siis puhua kuten radiopuhelimella, toinen odottaa hiljaa,
että toinen saa asiansa sanottua, ja puhuu vasta sen jälkeen. Tosin
esimerksiksi iäkkääseen Soundblaster 16 -äänikorttiin saa
full duplex
-ominaisuuden noutamalla valmistajan kotisivuilta uusimman ajurin.
Koodekit pakkaavat ja käsittelevät puhedataa, niin että se vie vähemmän tilaa.
Kansainvälinen telealan standardointikattojärjestö ITU (International
Telecommunications Union) onkin standardoinut useita eri puheen koodaustapoja.
Peruskoodekki G.711 (käyttää tekniikkaa nimeltään
PCM
, eli Pulse Code Modulation) vuodelta 1984 vaatii 64 000 bit/s
tiedonsiirtonopeuden, eikä se pakkaa puhedataa kovin tehokkaasti, ainoastaan
jakaa
dynamiikka
-alueen niin, että pienillä äänenvoimakkuuksilla saadaan
suurempi dynamiikka ja suurilla vastaavasti huonompi. G.711 käyttää juuri 8 000
Hz
näytteenottotaajuutta ja 8 bitin dynamiikkaa, kuten
edellisessä esimerkissä. Myöskin tavalliset ISDN-liittymät siirtävät
äänipuhelut G.711:llä koodattuna.
Puolta pienempään tiedonsiirtotarpeeseen päästään käyttämällä vuodelta 1990
olevan standardin G.726 (käyttää tekniikkaa nimeltään
ADPCM
, eli Adaptive Differential Pulse Code Modulation) mukaista koodekkia. Tämä
koodekki käyttää dynamiikkaan vain puolet PCM:n määrästä (eli neljä bittiä yhtä
näytettä kohden), mutta säilyttää silti lähes saman äänenlaadun. ADPCM:n
vaatima noin kolmen kilotavun sekuntivauhti alkaa olla jo useilla käytössä,
joten tämä kohtalaisen hyvälaatuinen peruskoodekki on varsin käyttökelpoinen.
Esimerkiksi 33 600 bit/s -modeemilla tämä yhteys jo toimii.
Nämä kaksi edellä olevaa
koodekkia
perustuvat itse äänen välittämiseen
mahdollisimman tarkasti vastaanottajalle, eli ne pyrkivät välittämään minkä
tahansa aaltomuodon. Näiden lisäksi on olemassa uuden tyyppisiä koodekkeja, ns.
puhekoodekkeja
(voice coders), jotka pyrkivät muodostamaan lähetettävästä puheesta vain
kuvauksen, josta vastaanottaja pystyy kokoamaan lähetetyn puheen. Toisin sanoen
ne yrittävät määritellä lähetettävälle puheelle parametrit ja lähettämään vain
ne (vrt. musiikin siirtäminen nuotteina). Tällä tavalla voidaan päästä hyvinkin
pieniin siirtokapasiteettivaatimuksiin, mutta toisaalta ääni kuulostaa
synteettiseltä. Tämä tekniikka on käytössä myös GSM:ssä, jonka
tiedonsiirtotarve on 13 000 bit/s.
Esimerkki uudesta puhekoodekista on G.729 vuodelta 1996. Se vaatii vain 8 000
bit/s
yhteyden ja lupaa silti paremman äänenlaadun kuin esim. GSM:ssä. Näin ollen se
toimisi jopa vanhalla 9 600 bit/s -modeemilla. Tosin G.729:n heikko puoli on,
että
se vaatii varsin paljon prosessoritehoa (esim. tehokas Pentium-PC).
Lisäksi on olemassa ns. hybridikoodekkeja, jotka käyttävät perinteisiä
aaltomuodon koodaustekniikkoita yhdessä uusien puhekoodekkien kanssa. Näillä
saadaan periaattessa siirrettyä luonnollisen kuuloinen puhe lähes puhekoodekin
vaatimalla tiedonsiirtokapasiteetilla.
Puheenlaadun lisäksi koodekeilla on toinenkin tärkeä ominaisuus,
viive
. Viive tarkoittaa sitä aikaa, joka tulee summana koodekkin kuluttamasta ajasta
(kerätää dataa yhtä pakettia varten), yhteysprotokollan (esim. RTP, Real Time
Protocol) vaatimasta käsittelyajasta ja Internetin siirtoviiveestä. Jos
koodekki käyttää pientä tiedonsiirtonopeutta ja suuria paketteja, kuten pieneen
tiedonsiirtokapasiteettiin tyytydyttäessä helposti joudutaan tekemään, niin
viive kasvaa helposti häiritseväksi. Esimerkiksi useiden satojen
millisekuntien viive haittaa puhumista jo selvästi tavalliseen lankapuhelimeen
verrattuna. PCM- ja ADPCM- koodekkien aiheuttama viive vain mikrosekunnin
murto-osia, kun taas G.729 aiheuttaa 10 millisekunnin viiveen. Tärkein viiveen
aiheuttaja on kuitenkin Internet, sillä yhteydestä riippuen viive naapurille
puhuttaessa voi olla n.200 ms (modeemi) tai n.20 ms (lähiverkko). Ruuhkaiset
ulkomaanyhteydet aiheutta myöskin paljon viivettä, joka johtuu suureksi osaksi
siitä, että siirrettävä puhe joudutaan puskuroimaan jopa satojen
millisekuntien ajalta suuren pakettien hukkumisprosentin vuoksi. GSM:n
käyttämässä koodekissa viive on 20 ms.
Jotta yhteys vastaajan puhelinohjelmaan syntyisi, täytyy molempien ohjelmien
käyttää samaa yhteyskäytäntöä,
protokollaa
. Tärkein standardi Internet-puhelimissa on ITU:n
H.323
. Se määrittelee miten yhdeyden ylläpito tapahtuu. Lisäksi käytetään
RTP-protokollaa, jonka tehtävä on laittaa jokaiseen koodekilta tulleeseen
lähtevään pakettiin aikaleima, järjestysnumero ja lähettäjän tunnus. Näin
vastaanottaja tietää, jos välillä on kadonnut pakettaja. Esimerkiksi puheen ja
videokuvan tahdistuksessa on tärkeä tietää, mistä kohdasta jatketaan kadonneen
paketin jälkeen. Myöskään väärässä järjestyksessä saapuvat paketit eivät pääse
sotkemaan toistettavaa ääntä. Standardoitut yhteyskäytännöt mahdollistavat sen,
että puheluja voi soittaa myös erilaisten tietokoneiden välillä ja eri
ohjelmilla.