Koduj, paczkuj, wysyłaj

Można to jednak zrobić. W artykule opiszę, jak skonstruowany jest system Voice over IP bazujący na specyfikacji H.323. Zanim jednak zacznę omawiać jego poszczególne podzespoły, nie zaszkodzi opowiedzieć o tym, czego potrzebują ludzie do w miarę komfortowego komunikowania się. Niejako przy okazji poznamy wymagania techniczne stawiane sieciom telefonicznym – zarówno tym klasycznym, jak i VoIP.

Wrzeszczący Nowak, szepczący Kowalski

No dobrze, czego zatem potrzebujemy do normalnego prowadzenia rozmowy? Czy wystarczy tylko słyszeć swojego interlokutora? Okazuje się, że nie. Stojąc twarzą w twarz, przekazujemy poza słowami mnóstwo informacji niewerbalnych: patrzymy rozmówcy w oczy (lub nie), gestykulujemy i wykonujemy inne, często nieuświadamiane sobie ruchy, nazywane popularnie mową ciała. Wszystkiego tego brakuje podczas rozmowy za pośrednictwem linii telefonicznej. Pozostają brzmienie głosu, jego modulacja i natężenie. Gdyby odebrać jeszcze te cechy wypowiadanym i słyszanym słowom, to okazałoby się, że prowadzenie konwersacji jest niezwykle trudne. Jeżeli rozmawiamy z Janem Kowalskim, to chcemy – najzupełniej nieświadomie – słyszeć baryton Jana Kowalskiego, a nie falset przechodzącego mutację Jerzego Nowaka.

Za barwę głosu odpowiada jego widmo, czyli charakterystyka częstotliwościowa. W systemach klasycznej telefonii przyjęto, że aby zidentyfikować rozmówcę na podstawie wypowiadanych przez niego słów, wystarczy przekazać dźwięki o częstotliwości nieprzekraczającej 3400 herców. Ten standard obowiązuje do dziś. Samą liczbę proponuję zapamiętać, bo jeszcze do niej wrócimy.

Poza timbrem głosu rozmówcy interesuje nas też to, czy wypowiada on słowa normalnym tonem czy też krzyczy albo ucieka się do konfidencjonalnego szeptu. Ludzkie ucho jest instrumentem dosyć czułym i dobrze radzi sobie z rozróżnianiem poziomów natężenia dźwięku. Dość powiedzieć, że podczas opracowywania standardu CD-Audio założono, iż człowiek potrafi wyróżnić kilkadziesiąt tysięcy poziomów głośności. Telefonia ma na szczęście mniejsze wymagania: ustalono, że abonenci po dwóch stronach linii zadowolą się dźwiękiem, którego natężenie różni się o niewiele ponad setkę poziomów.

Fatalny wynik obliczeń

Dwie podane wyżej liczby pozwolą nam na oszacowanie szerokości pasma niezbędnej do przeprowadzenia rozmowy telefonicznej. Możemy śmiało przyjąć, że wszystkie sieci łączności wykorzystują systemy transmisji cyfrowej. Głos abonenta jest próbkowany z określoną częstotliwością, po czym każda próbka zostaje zakodowana. Wymagana przepływność zależy więc od częstotliwości próbkowania oraz długości liczby opisującej każdą próbkę.

Aby zamienić analogowy sygnał głosowy na postać cyfrową, a później wiernie go odtworzyć, niezbędne jest próbkowanie z częstotliwością co najmniej dwukrotnie większą niż częstotliwość sygnału próbkowanego. Wynika to z tzw. twierdzenia Shannona. Jak wspomniałem, najwyższa częstotliwość transmitowanego głosu wynosi 3400 Hz. Wystarczyłoby więc zastosować częstotliwość próbkowania o wysokości 6800 Hz. W praktyce jednak jest ona większa i wynosi 8 kHz.

Ile bitów potrzeba do zapisania każdej próbki? To zależy od tego, ile poziomów natężenia dźwięku powinni rozróżniać abonenci. Nieco wcześniej była mowa o niewiele ponad setce. W efekcie każda próbka składa się z ośmiu bitów.

Osiem tysięcy próbek na sekundę razy osiem bitów na próbkę daje 64 kb/s. Taka przepływność sieci jest wymagana do przeprowadzenia jednej rozmowy telefonicznej. Nie ma co ukrywać – to bardzo dużo. W klasycznych sieciach telefonicznych z komutacją łączy można sprostać takim wymaganiom. Na czas rozmowy zestawia się oddzielne łącze o przepływności 64 kb/s “należące” tylko do dwóch abonentów. W sieciach pakietowych najczęściej jest inaczej – każdy wie, że w Internecie właściwie nic nikomu się nie przydziela.

Nie wszystko potrafię!

Gdyby systemy VoIP do zestawienia pojedynczej rozmowy rzeczywiście potrzebowały pasma o szerokości kilkudziesięciu kilobitów, to technika pakietowego przesyłania głosu jeszcze długo nie wyszłaby poza intranety. To, że wyszła, zawdzięcza… niedoskonałości ludzkiego aparatu mowy.

Krtań i struny głosowe mają pewne ograniczenia. Pomińmy fakt, że nie można wydać za ich pomocą dźwięków o dowolnych częstotliwościach. Znacznie bardziej istotne jest to, że człowiek nie potrafi przejść w dowolnie krótkim czasie od szeptu do wrzasku albo od rejestrów najwyższych do najniższych. To spostrzeżenie doprowadziło do powstania całej gamy predykcyjnych kodeków głosu, czyli takich, które “przewidują” postać następnej próbki i podają tylko informację o tym, w jakim stopniu zmieniła się ona w porównaniu z poprzednią. Wspomniane kodeki są o tyle wygodne, że pozwalają zmniejszyć zapotrzebowanie na pasmo transmisyjne do kilkunastu kilobitów na sekundę. Korzystamy z nich, prowadząc rozmowy w sieciach GSM.

Podobny zestaw kodeków przygotowano na potrzeby systemów VoIP. Najważniejsze z nich prezentujemy w tabelce “Kodowanie danych w sieciach pakietowych”. Jak widać, zapotrzebowanie na pasmo nie przekracza 8 kb/s. Rzecz jasna mniejsza ilość przekazywanych informacji oznacza, że sygnał dźwiękowy będzie gorszej jakości. Okazuje się jednak, że nadal jest on do zaakceptowania. Ale wydajniejsze metody kodowania nie rozwiązują wszystkich problemów związanych z transmisją głosu.

Więcej:bezcatnews