Hoe je stem getallen wordt, 8.000 keer per seconde
Pulscodemodulatie, of PCM, is de manier waarop een telefoon je stem in getallen omzet. De geluidschip van de telefoon meet de stroom uit de microfoon 8.000 keer per seconde, rondt elke meting af op een van 256 treden en schrijft hem op als 8 bits, samen 64.000 bits per seconde. Een internettelefoon verstuurt die getallen dan in pakketjes, en de telefoon aan de andere kant maakt er weer geluid van.
Paars: je stemLegenda
- Paars: je stem
Een gesprek met Finn · 8.000 metingen per seconde
Druk op Praten en probeer dan HD voice of zacht praten.Tik op Praten en probeer dan HD voice of zacht praten.
Anatomie van digitale spraak: twee duizendste seconde van je stem in de geluidschip van een telefoon, sterk vergroot, tussen jouw mobiel en die van Finn. De tekening is niet op schaal en laat maar een paar treden zien.
-
Volg één gesprek
Druk op Gesprek afspelen en kijk mee, of scrol naar beneden: de tekening volgt je stap voor stap. Met Zelf proberen, onder de tekening, voer je je eigen gesprek.Druk op Gesprek afspelen en kijk mee, of ga met Volgende stap voor stap verder. Met Zelf proberen, onder de tekening, voer je je eigen gesprek.
-
Stap 1 van 6
Je praat in je telefoon
Je stem duwt de lucht in kleine golven heen en weer, honderden keren per seconde. De microfoon in je telefoon maakt daar een elektrische stroom van die met je stem op en neer gaat. Op het paneel is de paarse lijn die stroom, twee duizendste seconde lang. De rail in het midden is stilte.
Waarom niet gewoon de stroom zelf versturen?
Bijna de hele 20e eeuw deden telefoonlijnen precies dat. Ze droegen een kopie van de stroom van het ene eind naar het andere, elk stuk draad voegde wat ruis toe, en elke versterker maakte de ruis luider, samen met je stem.
In 1938 vroeg Alec Reeves, een ingenieur in Parijs, octrooi aan op een andere manier: getallen versturen in plaats van de golf. Zijn doel was spraak die vrijwel zonder achtergrondruis aankomt. Een getal komt aan of niet, en ruis op de lijn verandert het niet.
Bronnen: US patent 2,272,070: Reeves, Electric signaling system (1942)
-
Stap 2 van 6
De chip meet hem 8.000 keer per seconde
De geluidschip van je telefoon meet de stroom op vaste momenten: 8.000 keer per seconde, elke 125 miljoenste seconde een meting. Elk koperen staafje is één meting, zo hoog als de stroom op dat moment. Tussen twee staafjes meet de chip niets. Dat heet samplen, en 8.000 per seconde is de samplefrequentie van de telefoon.
Waarom 8.000, en is dat genoeg?
In 1949 bewees de wiskundige Claude Shannon dat een golf zonder tonen boven een bepaalde frequentie volledig vastligt met metingen op het dubbele van die frequentie. Meet je vaker dan twee keer zo vaak als de hoogste toon, dan gaat er niets verloren.
Een telefoonlijn draagt geluid van 300 tot 3.400 hertz, de band die de ITU-T voor een telefoonkanaal vastlegt. 8.000 metingen per seconde dekken tonen tot 4.000 hertz, wat ruimte boven de band. Eerst haalt een filter de hogere tonen eruit: een toon boven 4.600 hertz moet er minstens 25 decibel zwakker uitkomen, anders zou hij terugkomen als een valse, lagere toon.
Bronnen: Proceedings of the IRE: Shannon, Communication in the presence of noise (1949); ITU-T G.712: transmission performance characteristics of pulse code modulation channels (2001); ITU-T G.711: pulse code modulation of voice frequencies (1988)
-
Stap 3 van 6
Elke meting wordt afgerond op een trede
De chip kan niet elke hoogte opschrijven. Hij rondt elke meting af op de dichtstbijzijnde van 256 treden, 128 boven de rail en 128 eronder, en de staafjes schuiven naar hun trede. Technici noemen dat afronden kwantisatie. Bij stilte liggen de treden dicht op elkaar, bij harde geluiden verder uit elkaar. Zo verliest een zachte stem bij het afronden even weinig als een harde.
Waarom liggen de treden niet op gelijke afstand?
Gelijke treden zouden bijna allemaal opgaan aan harde geluiden. Op de eerste digitale telefoonlijnen van het Bell System was het hardste geluid dat een kanaal aankon ongeveer 1.000 keer sterker dan het zachtste, en een compressor perste dat bereik samen in veel minder niveaus, in een bijna logaritmische verhouding.
De codec van een telefoon, zijn regels om geluid in getallen om te zetten, doet hetzelfde. De norm G.711 van de ITU-T, sinds 1972 de codec van telefoons, gebruikt een van twee regels: de A-wet of de μ-wet. Elk land koos er een. Tussen twee landen die verschillend kozen, draagt de lijn de A-wet, en het land met de μ-wet rekent om.
Bronnen: Bell System Technical Journal: the T1 carrier system (1965); ITU-T G.711: pulse code modulation of voice frequencies (1988)
-
Stap 4 van 6
Elke trede wordt 8 bits
Elke trede heeft een nummer, 0 tot 127 boven de rail of 0 tot 127 eronder, en de chip schrijft het op in 8 bits, enen en nullen. Het eerste bit zegt boven of onder de rail, de andere zeven hoe ver. Het display leest het vierde staafje uit: trede +86. 8 bits, 8.000 keer per seconde, is 64.000 bits per seconde.
Hoeveel is dat?
Een minuut van je stem is 480.000 bytes, ongeveer een halve megabyte, in elke richting. Die 64.000 bits per seconde zijn de snelheid van een telefoonkanaal sinds de norm G.711 van de ITU-T uit 1972.
De eerste digitale telefoonlijnen, de T1 van het Bell System uit 1962, gebruikten 7 bits per meting bij dezelfde 8.000 per seconde, en droegen 24 gesprekken tegelijk over paren koperdraad.
Bronnen: ITU-T G.711: pulse code modulation of voice frequencies (1988); Bell System Technical Journal: the T1 carrier system (1965)
-
Stap 5 van 6
160 getallen gaan in een pakketje
Een telefoon op het internet verstuurt niet elk getal apart. Elke 20 milliseconden stopt hij de laatste 160 getallen in één pakketje, zet het adres van Finn erop en verstuurt het. Dat zijn 50 pakketjes per seconde in elke richting.
Waarom niet elk getal apart versturen?
Elk pakketje heeft labels nodig: waar het heen gaat, waar het in het gesprek hoort en wanneer het geluid is opgenomen. Eén voor één verstuurd, zouden de labels meer wegen dan je stem. Het profiel van de IETF voor geluid over het internet zet standaard 20 milliseconden geluid in een pakketje, dus met G.711 draagt elk pakketje 160 bytes van je stem.
Langere pakketjes zouden minder ruimte aan labels kwijt zijn, maar hetzelfde profiel waarschuwt dat ze vertraging toevoegen en een verloren pakketje beter hoorbaar maken.
Bronnen: IETF RFC 3551: RTP profile for audio and video conferences (2003); IETF RFC 3550: RTP, a transport protocol for real-time applications (2003)
-
Stap 6 van 6
De telefoon van Finn maakt van de getallen weer geluid
De telefoon van Finn leest de getallen op volgorde en zet elk weer op zijn hoogte, 8.000 keer per seconde. Dan strijkt hij de treden glad tot een golf, de golf drijft de luidspreker aan, en Finn hoort je. De nieuwe golf lijkt sterk op de jouwe, maar is niet gelijk: het afronden laat kleine foutjes achter, een zachte ruis die technici kwantisatieruis noemen.
Waarom klinkt HD voice helderder?
Het meet twee keer zo vaak. De norm G.722 van de ITU-T uit 1988 neemt 16.000 metingen per seconde en draagt geluid van 50 tot 7.000 hertz, tegen 300 tot 3.400 op een telefoonlijn, in dezelfde 64.000 bits per seconde. Daarvoor splitst het het geluid in een lage en een hoge band en schrijft het alleen op hoeveel elke meting afwijkt van wat het verwachtte. Dat kost minder bits. Een pakketje van 20 milliseconden bevat dan 320 metingen in dezelfde 160 bytes. Druk onder de tekening op HD voice om de extra staafjes te zien.
Apps gaan nog verder. Opus, de codec van de IETF uit 2012, meet voor muziek tot 48.000 keer per seconde, maar codeert nooit geluid boven 20.000 hertz, de algemeen aanvaarde bovengrens van het menselijk gehoor.
Bronnen: ITU-T G.722: 7 kHz audio coding within 64 kbit/s (1988); IETF RFC 3551: RTP profile for audio and video conferences (2003); IETF RFC 6716: definition of the Opus audio codec (2012); Bell System Technical Journal: the T1 carrier system (1965)
Hoeveel metingen per seconde
Een codec is het geheel van regels waarmee een telefoon geluid in getallen omzet en weer terug. Hij heeft minstens twee metingen nodig voor elke golf van een geluid, dus de hoogste toon die hij draagt ligt net onder de helft van zijn tempo. Hoe meer metingen per seconde, hoe hogere tonen erdoor komen.
Metingen per seconde, per codec
300 tot 3.400 hertz is de band die de ITU-T voor een telefoonkanaal vastlegt. Het dubbele van de hoogste toon is de regel van Shannon uit 1949.
-
50 op een miljoen
De norm G.711 van de ITU-T laat de 8.000 metingen per seconde van een telefoon hoogstens 50 delen per miljoen voor- of achterlopen: 0,4 metingen per seconde.
ITU-T G.711: pulse code modulation of voice frequencies (1988)
-
100.000
In 1965 liepen al ongeveer 100.000 telefoonkanalen van het Bell System als getallen over T1-lijnen, drie jaar nadat Western Electric ze begon te maken.
Hoe het zo gekomen is
- 1938
Getallen in plaats van een golf
Alec Reeves, een ingenieur in Parijs, vraagt in Frankrijk octrooi aan op pulscodemodulatie. Het idee: de golf op vaste momenten meten, elke meting afronden op de dichtstbijzijnde waarde uit een vaste reeks en die als code versturen, zodat spraak vrijwel zonder achtergrondruis aankomt.
US patent 2,272,070: Reeves, Electric signaling system (1942)
- 1949
Het dubbele van de hoogste toon
Claude Shannon publiceert het bewijs dat een golf volledig vastligt met metingen op het dubbele van zijn hoogste frequentie. Harry Nyquist had in 1928 al op hetzelfde getal gewezen.
Proceedings of the IRE: Shannon, Communication in the presence of noise (1949)
- 1962
De eerste digitale telefoonlijnen
Western Electric begint T1 te maken voor het Bell System. Eén lijn draagt 24 gesprekken, elk 8.000 keer per seconde gemeten, elke meting in 7 bits.
- 1972
Eén codec voor de telefoons van de wereld
De ITU legt in Genève de norm G.711 vast: 8.000 metingen per seconde en 8 bits per meting, volgens de A-wet of de μ-wet.
ITU-T G.711: pulse code modulation of voice frequencies (1988)
- 1988
HD voice
De ITU legt in Melbourne de norm G.722 vast: 16.000 metingen per seconde, voor geluid van 50 tot 7.000 hertz, in dezelfde 64.000 bits per seconde.
- 2012
Een codec voor het internet
De IETF publiceert Opus, een codec voor gesprekken en muziek op het internet, van 8.000 tot 48.000 metingen per seconde.
Waar Voxbi in beeld komt
Voxbi, een cloudtelefooncentrale die in de Europese Unie wordt gehost, gebruikt HD-codecs in zijn apps, zodat gesprekken via wifi, 4G of 5G meer van je stem meenemen.
Bekijk het in Voxbi