Transmisja mowy Analogowa (para miedziana, radio, walkie-talkie, CB) Modulacje: amplitudowa (AM), częstotliwościowa (FM), fazowa (PM) Wysokie zapotrzebowanie na pasmo (np. AM df>2f) Niska sprawność energetyczna i SNR, przesłuchy, echo Cyfrowa (ISDN, GSM, VoIP, DRB, DVB, Tetra, ) Wysoka skuteczność, pojemność Opóźnienia, fluktuacje opóźnień (Jitter) Małe przepływności bitowe i wysoka jakość Zblokowane szumy transmisji (kanału BERR), straty pakietów Szumy (artefakty) przetwarzania i kodowania, echo Równanie Shannona: (prędkość transmisji dla zadanego pasma i SNR) S C bit / s BHz log 2 N RMS RMS Kodowanie mowy Koder (encoder) + dekoder (decoder) = Codec Dostosowanie sygnału do toru transmisyjnego Zachowanie wymagań użytkownika VoIP GSM PCM Analog
Tor transmisyjny echo szum otoczenia słaby sygnał preprocessing ramkowanie kwantyzacja kompresja szum kanału spadek mocy straty pakietów mieszanie pakietów opóźnienie, Jitter rekonstrukcja postprocessing Nadawca Koder Kanał transmisyjny Dekoder Odbiorca Sygnał mowy Zakodowany pakiet Sygnał mowy Wymagania dla transmisji i kodowania Stałe opóźnienie, małe opóźnienie Opóźnienia transmisji Opóźnienia przetwarzania (kodeka, ramkowania) Brak echa i przesłuchów Zachowanie treści, barwy, prozodii, dynamiki i cech osobniczych mowy, w każdym języku Zachowane pasmo, zachowane harmoniczne, DTMF Brak szumów / obecność szumów Małe straty pakietów, właściwa kolejność pakietów mniejsze i stałe opóźnienia Rozproszenie informacji możliwa rekonstrukcja po stracie pakietu, bitu Niskie przepływności bitowe -> duża pojemność systemu Łatwość implementacji (koszt energetyczny) 2
Voice over IP Specyfika transmisji w sieciach IP Warstwa transportowa: TCP, UDP Duży i wymagający rynek Duża liczba możliwych konfiguracji systemu Dlaczego VoIP? -> cena, dostępność, uniwersalność Problemy - QoS, opóźnienie i Jitter struktura i parametry sieci, kontenerowanie, nagłówki Kodeki VoIP Dobrze skalowalne Nadmiarowe FEC ang. Forward Error Correction MDC ang. Multiple Description Coding Kodeki: ilbc, ISAC (np. w Skype), ITU-T G.7, ITU-T G.723, ITU-T G.726-9, ITU-T G.722, Speex, Rodzaje kodeków Bit-rate Szerokopasmowe > kbps > Wąskopasmowe stały zmienny przełączany Metoda kodowania Kodowanie przebiegu (ang. waveform coders), np. PCM Kodowanie parametryczne, konieczny model sygnału, np. LP Hybrydowe, np. CELP (analysis-by-synthesis) Wielomodalne Standardy: ITU, ANSI, ETSI, DoD, RCR (JP) Np. w GSM 2G, 3G, 4G, 4-24kbps, >8kHz Half-Rate - 5.6 kbps VSELP (Vector-Sum-Excited LP), std. GSM-HR Full-Rate - 3 kbps RPE-LTP (Regular Pulse Excitation Long Term LP) Enhanced FR 2.2 kbps ACELP (Algebraic Code-Excited LP) Adaptive Multi-Rate 4.75-2.2 kbps (ACELP) AMR-WideBand 6.6-23.85 (ACELP), HD Voice, G.722.2 http://en.wikipedia.org/wiki/list_of_codecs#voice http://en.wikipedia.org/wiki/comparison_of_audio_codecs 3
Miary jakości transmisji i kodowania mowy (QoS, QoE, Intelligibility) Oceny subiektywne - przez użytkownika $$$ - najważniejsze MOS (ang. Mean Opinion Score), ITU-T Recommendation P.8 Różne scenariusze pomiarów Oceny obiektywne (np. RMSE) Powtarzalne, porównywalne, tanie, szybkie Mierzalne numerycznie, za pomocą algorytmu POLQA (ang. Perceptual Objective Listening Quality Analysis) ITU-T Recommendation P.863, HD Speech PESQ (ang. Perceptual Evaluation of Speech Quality) ITU-T Recommendation P.862, PSQM (ang. Perceptual Speech Quality Measure) ITU-T Recommendation P.86 Znajomość sygnału referencyjnego / brak znajomości sygnału referencyjnego (sterowanie, alarmy) Statystyki (BERR, Packet Loss, itp.) jak z nich ocenić QoE, intelligib.? MOS - Mean Opinion Scale ITU-T Recommendation P.8 MOS Jakość Zakłócenia 5 Doskonała Niezauważalne 4 Dobra 3 Średnia Zauważalne, lecz nie przeszkadzające Trochę przeszkadzające 2 Słaba Przeszkadzające Zła Bardzo przeszkadzające 4
MOS - Mean Opinion Scale ITU-T Recommendation P.8 MOS Jakość Zakłócenia 5 Doskonała Niezauważalne 4 Dobra 3 Średnia Zauważalne, lecz nie przeszkadzające Trochę przeszkadzające 2 Słaba Przeszkadzające Zła Bardzo przeszkadzające Schemat modelu PESQ 5
Przykład oceny PESQ Kwantyzacja skalarna równomierna nierównomierna 2 Błąd kwantyzacji: Ee Qx Q Algorytm Max-Lloyd a do wyznaczenia funkcji kwantyzacji Q(x) optymalnej względem p(x). 2 x p x ds 6
Kwantyzacja wektorowa VQ (ang. Vector Quantization) Odwzorowanie przestrzeni wielowymiarowej Q : R M Y W zbiór Y wektorów (ich indeksów), gdzie: x=[x,,x M ] T - wektory wejściowe Y={y,y 2,,y N }, y i =[y i (),,y i (M)] T, i=,,n Czyli y i =Q(x), albo w uproszczeniu i=q (x) Zbiór Y nazywamy książką kodową (ang. codebook) Kwantyzatory wektorowe mogą być równomierne, nierównomierne. Istnieją algorytmy znajdowania optymalnych książek kodowych dla zadanych rozkładów lub zbiorów treningowych (analiza skupień, clustering, np. Maxx-Lloyd, K-Means) Ważny rozmiar książki kodowej (minimalna liczba bitów indeksu) Kryterium doboru Q(x) kryterium optymalności (stat., RMSE, MOS?) VQ przykład 2D Np. Diagram Woronoja (Voronoi tessellation) Gieorgij Fieodosjewicz Woronoj (868-98), student Markowa x, y Q( x) dx, R x : d y, i i i j j Rys. Wikimedia CC 7
Modulacja impulsowo-kodowa PCM (ang. Pulse Code Modulation), ITU-T G.7 Bez kompresji, Q=8bit, f s =8 khz jaki bitrate? Waveform coding tutaj: kwantyzacja s PCM (n)=q(s a (n)) Nierównomierny rozkład amplitud sygnału mowy Nieoptymalne wykorzystanie kwantyzatora Wysoki szum kwantyzacji E S C bit / s BHz log 2 N 2 e Q Qs RMS RMS 2 s p s ds Liczba próbek 4 2 8 6 4 2 Sygnał wejściowy - -.5.5 Amplituda Amplituda kompandancji, =255.8.6.4.2.5 Amplituda wejścia Liczba próbek Modulacja impulsowo-kodowa PCM (ang. Pulse Code Modulation), ITU-T G.7 Bez kompresji, Q=8bit, f s =8kHz jaki bitrate? Waveform coding tutaj: kwantyzacja s PCM (n)=q(s a (n)) Nierównomierny rozkład amplitud sygnału mowy Nieoptymalne wykorzystanie kwantyzatora Wysoki szum kwantyzacji Kompresja dynamiki (amplitudy) próbek kompandancja μ-law, μ=2 Q - ln s n slaw n sgn sn ln A-Law, A=87.56 A sn, ln A s A Law n sgn s n lna sn, lna sn A s A n Liczba próbek 4 2 8 6 4 2 Sygnał wejściowy - -.5.5 Amplituda Amplituda kompandancji, =255.8.6.4.2.5 Amplituda wejścia Liczba próbek 8
Modulacja impulsowo-kodowa PCM (ang. Pulse Code Modulation), ITU-T G.7 przykład Sygnał wejściowy Sygnał po kompandancji 4 Liczba próbek 8 6 4 2-3.8 25 Liczba próbek Amplituda kompandancji, =255 2 35.6.4.5 Amplituda 5.2 A-Law 5 -Law -.5 2.5 Amplituda wejścia - -.5.5 Amplituda Zysk kompandancji dla zakresu liniowego s(n) </A δsnr = 2log2(24)=24. db, bo /A odpowiada 4 bitom Modulacja różnicowa (A)DPCM (ang. (Adaptive) Differential PCM) Predykcja próbki K s p n a k s n k koder e(n) eq(n) s(n) k Więc potrzebny model tutaj liniowy Przesyłanie błędu predykcji eq(n) sp(n) sq(n) K e(n) s n s p n a' k s n k, a' k 9
Modulacja różnicowa (A)DPCM (ang. (Adaptive) Differential PCM) Predykcja próbki s p n k a k s n k Więc potrzebny model tutaj liniowy Przesyłanie błędu predykcji e( n) s n K s p n s n k a k s n k Ciągłość sygnału mowy Mniejsza dynamika błędu Lepsze wykorzystanie bitów e Q (n)=q(e(n)) K s(n) e Q (n) s p (n) e(n) e Q (n) s p (n) s Q (n) koder e Q (n) e Q (n) s Q (n) dekoder Przykład budowy kodeka ADPCM Koder Dekoder
Podsumowanie (AD)PCM PCM kodowanie sygnału ITU-T G.7 8 khz, 8 bitów, 64 kbps ADPCM (adaptacyjne) modelowanie sygnału kodowanie błędu modelowania ITU-T G.726 8 khz, 8 bitów (wejście) transmisja do 8 bitów prędkości bitowe: (4 kbps, 8 kbps), 6 kbps, 24 kbps, 32 kbps Kodowanie CELP ang. Code-Excited Linear Prediction Występuje w wielu odmianach (ACELP, RCELP, LD-CELP, VSELP, ) Najczęściej stosowana obecnie strategia Modelowanie traktu głosowego (predykcja liniowa) z kwantyzacją wektorową (VQ) wyników modelowania / modeli odniesienia z kwantyzacją wektorową (VQ) pobudzenia szybką adaptacją parametrów kodera i aktywnym psychoakustycznym kształtowaniem szumu Zasada działania AbS: Analiza przez syntezę (Analysis by Synthesis)
Analysis-by-Synthesis CELP struktura kodera 2
Formant analysis filter CELP Kodowanie polega na dopasowaniu pobudzenia (ang. excitation signal) Ramkowanie 2-3ms Stosowanie pod-ramek (ang. sub-frames) Rozmiar książki kodowej zazwyczaj > 8 bitów Wyznaczanie ważonego błędu syntezy w pętli AbS Postfiltering krótko i długookresowy Adaptacja książki kodowej Przeszukiwanie książki kodowej: Algorytmy stochastyczne State-save, i inne 3
CELP analiza ramki kodowej Konieczność transmisji: Indeks pobudzenia z książki kodowej Adaptacja książki kodowej Wektor współczynników długookresowego filtru syntezy (ang. pitch synthesis filter) Gain Wektor krótkookresowego filtru syntezy ST-LPC (ang. formant synthesis filter) Proszę zaproponować bitrate hipotetycznego kodeka. Dekodowanie mowy postprocessing Synteza mowy z danych transmitowanych książki kodowej Kształtowanie charakterystyki (w dekoderze) Redukcja szumu (de)kodera (np. ramkowania) Wyrównanie opóźnień transmisji (jitter) Rekonstrukcja straconych (opuszczonych) ramek Synteza (ekstrapolacja) Wypełnienie szumem Konwersja sygnału (liczba bitów, resampling) 4