103
POLITECHNIKA POZNAŃSKA WYDZIAŁ ELEKTRONIKI I TELEKOMUNIKACJI KATEDRA TELEKOMUNIKACJI MULTIMEDIALNEJ I MIKROELEKTRONIKI Semantyczne kodowanie mowy przy bardzo małych prędkościach transmisji. Damian Modrzyk Promotor: dr inż. Maciej Bartkowiak Poznań 2008

Semantyczne kodowanie mowy przy bardzo małych ... Signal Processing Toolkit) – biblioteka w języku C++ używana do przetwarzania sygnału mowy SRSB (ang. Speech Recognition Synthesis

Embed Size (px)

Citation preview

POLITECHNIKA POZNAŃSKA

WYDZIAŁ ELEKTRONIKI I TELEKOMUNIKACJI

KATEDRA TELEKOMUNIKACJI MULTIMEDIALNEJ

I MIKROELEKTRONIKI

Semantyczne kodowanie mowy przy bardzo

małych prędkościach transmisji.

Damian Modrzyk

Promotor: dr inż. Maciej Bartkowiak

Poznań 2008

Pracę dedykuję:

Rodzicom, w podziękowaniu za wieloletni trud włożony w

wychowanie oraz za wsparcie w ciągłym dążeniu do

zdobywania wiedzy.

Kochanej Annie, za cierpliwość i obecność przy mnie przez

ostatni rok.

Bardzo dziękuję Panu dr inż. Maciejowi Bartkowiakowi, za

fachową pomoc, jaką okazał mi w trakcie pisania pracy.

Spis treści

- 4 -

Spis treści

Spis oznaczeń………………………………………………………………………………6

1. Wstęp. Cel i zakres pracy…...………………………………………………………...8

2. Struktura sygnału mowy…………………………………………………………….11

2.1 Cechy związane z pobudzeniem…………………………………………………11

2.2 Cechy zależne od traktu głosowego……………………………………………..12

2.3 Fonemy……………………………………………………………………………14

2.3.1 Samogłoski………………………………………………………………..15

2.3.2 Spółgłoski szczelinowe…………………………………………………...17

2.3.3 Spółgłoski zwarte………………………………………………………...19

2.3.4 Spółgłoski nosowe………………………………………………………..20

2.3.5 Spółgłoski zwarto-szczelinowe...………………………………………...21

2.3.6 Spółgłoski półotwarte……………………………………………………23

2.4 Model wytwarzania mowy………….…………………………………………....25

3. Przegląd technik kodowania mowy dla bardzo małych prędkości transmisji…...28

3.1 Wokoder segmentowy……………………………………………………….…...28

3.2 Wokoder sylabowy………………………………………………………….…....31

3.3 Wokoder fonetyczny……………………………………………………………..34

4. Koncepcja semantycznego kodeka mowy…………………………………………..40

4.1 Struktura systemu………….…………………………………………………….41

4.2 Model kodera……………………………………………………………………..44

4.2.1 Ekstrakcja częstotliwości podstawowej…………………………………44

4.2.2 Analiza i reprezentacja widma w postaci współczynników MFCC…...50

4.2.3 Modelowanie fonemów przy pomocy ukrytych modeli Markowa….…56

4.2.4 Rozpoznawanie fonemów………………………………………….……..65

4.2.5 Kodowanie binarne strumienia………………………………………….70

4.3 Model dekodera…………………………………………………………………..72

4.3.1 Wytwarzanie sygnału pobudzenia……...………...……………………..73

4.3.2 Rekonstrukcja cech widmowych sygnału...………………...…………..79

4.3.3 Synteza sygnału mowy………………………………………………..….83

5. Wyniki symulacji modelu kodeka…………………………………………………...91

5.1 Otrzymany strumień…………………………………………...………………..91

Spis treści

- 5 -

5.2 Ocena zrozumiałości otrzymanej mowy……………….………………………..92

5.3 Subiektywna ocena jakości sygnału zrekonstruowanego…………………...…95

6. Zakończenie…………………………………………………………………………..98

Bibliografia………………………………………………………………………………100

Dodatek. Prototyp modelu HMM……………………………………………………...102

Spis oznaczeń

- 6 -

Spis oznaczeń

ADPCM (ang. Adaptive Differential Pulse Code Modulation) – adaptacyjna różnicowa

modulacja kodowo-impulsowa

CD-HMM (ang. Continous Density Hidden Markov Model) – ukryty model Markowa z

ciągłym rozkładem prawdopodobieństw wyjściowych

CELP (ang. Code Excited Linear Prediction) – predykcja liniowa z wymuszeniem

kodowym

DC (ang. Direct Current) – prąd stały, składowa stała sygnału

DCT (ang. Discrete Cosine Transform) – dyskretna transformacja kosinusowa

DD-HMM (ang. Discrete Density Hidden Markov Model) – ukryty model Markowa z

dyskretnym rozkładem prawdopodobieństw wyjściowych

DFT (ang. Discrete Fourier Transform) – dyskretna transformacja Fouriera

DMOS (ang. Degradation Mean Opinion Score) – test średniej oceny degradacji mowy

zdekodowanej

DRT (ang. Diagnostic Rhyme Test) – diagnostyczny test rymowy, używany do oceny

zrozumiałości mowy

EM (ang. Expectation Maximization) – algorytm maksymalizacji wartości oczekiwanej

FFT (ang. Fast Fourier Transform) – szybka transformacja Fouriera

FSM (ang. Finite State Machine) – maszyna stanów o skończonej sekwencji stanów

HMM (ang. Hidden Markov Model) – ukryty (niejawny) model Markowa

HTK (ang. Hidden Markov Models Toolkit) – biblioteka w języku C używana do

rozpoznawania mowy, wykorzystująca ukryte modele Markowa

IFFT (ang. Inverse Fast Fourier Transform) – odwrotna szybka transformacja Fouriera

LPC (ang. Linear Predictive Coding) – kodowanie oparte na predykcji liniowej

MAP (ang. Maximum A’Posteriori Probability) – zasada maksymalnego

prawdopodbieństwa po zdarzeniu

MELP (ang. Mixed Excitation Linear Prediction) – liniowe kodowanie predykcyjne z

mieszanym pobudzeniem

MFCC (ang. Mel-Frequency Cepstral Coefficients) – współczynniki cepstralne w melowej

skali częstotliwości

ML (ang. Maximum Likelihood) – reguła największej wiarogodności

Spis oznaczeń

- 7 -

MLSA (ang. Mel Log Spectrum Aproximation) – filtr aproksymujący logarytm widma

amplitudowego w skali melowej

MOS (ang. Mean Opinion Score) – test średniej oceny jakości mowy zdekodowanej

PSOLA (ang. Pitch Synchronous Overlap Adding) – technika syntezy sygnału mowy

polegająca na zakładkowym składaniu segmentów w sposób synchroniczny, z okresem

podstawowym

SPTK (ang. Speech Signal Processing Toolkit) – biblioteka w języku C++ używana do

przetwarzania sygnału mowy

SRSB (ang. Speech Recognition Synthesis Based) – technika kodowania mowy oparta na

rozpoznawaniu i syntezie mowy

STFT (ang. Short Time Fourier Transform) – krótkookresowa transformacja Fouriera

TTS (ang. Text-To-Speech) – konwersja tekstu na mowę

WGN (ang. White Gaussian Noise) – szum biały gaussowski

1. Wstęp. Cel i zakres pracy

- 8 -

1. Wstęp. Cel i zakres pracy

Ze względu na powszechność komunikacji międzyludzkiej przy pomocy głosu, analiza,

modelowanie oraz kodowanie mowy odgrywają bardzo ważną rolę w dziedzinie

cyfrowego przetwarzania sygnałów. Kompresję mowy definiujemy jako metodę zmiany

reprezentacji sygnału cyfrowego, która skutkuje relatywnie mniejszą potrzebną prędkością

transmisji sygnału, w odniesieniu do reprezentacji bez kodowania. Techniki kodowania

mowy znajdują powszechne zastosowanie w przesyłaniu sygnału na dalekie odległości –

telekomunikacji konwencjonalnej, radiokomunikacji. Innymi obszarami wykorzystania

kompresji są efektywne przechowywanie sygnału oraz szyfrowanie danych.

Współczesne techniki przetwarzania sygnałów akustycznych – dźwięków muzyki

i mowy charakteryzują się silną zależnością doboru metody od spodziewanego

zastosowania. Projektant podejmując próbę realizacji systemu kodowania sygnału musi

wziąć pod uwagę szereg czynników, które decydują o wyborze danego algorytmu.

Jednymi z najważniejszych są dostępna prędkość transmisji oraz wymagany poziom

jakości sygnału.

Ze względu na obszar zastosowań kompresji sygnału, obecnie wykorzystywane techniki

możemy podzielić na trzy kategorie:

• kodowanie sygnału wysokiej jakości, gdzie mowa zrekonstruowana praktycznie nie

różni się od mowy oryginalnej;

• kodowanie sygnału w telefonii, wymagany jest tutaj odpowiednio niski strumień

binarny, aby zapewnić ekonomiczną transmisję mowy, jednak przy zachowaniu

odpowiedniego poziomu naturalności sygnału;

• silna kompresja mowy, gdzie zasadniczym celem jest bardzo duża redukcja danych,

a degradacja naturalności jest tolerowana.

W literaturze często spotykany jest też podział koderów mowy ze względu

na otrzymywaną prędkość transmisji. Wyróżniamy:

• kodery o dużej przepływności – powyżej 2,4 kbit/s, gdzie nacisk w procesie

kodowania położony jest na otrzymanie sygnału o zadowalającej jakości;

• kodery o małej przepływności – poniżej 2,4 kbit/s, gdzie nacisk kładzie się

na stopień kompresji sygnału. W przypadku strumienia poniżej 1000 kbit/s

mówimy już o koderze bardzo małej prędkości transmisji;

1. Wstęp. Cel i zakres pracy

- 9 -

W tej pracy skupiamy się nad implementacją modelu kodeka mowy cechującego się

ekstremalnie niskim strumieniem.

Umowną granicą podziału koderów ze względu na przepływność jest wielkość

strumienia równa 2,4 kbit/s, którą otrzymujemy przez zastosowanie technik z rodziny

liniowego kodowania predykcyjnego – LPC (ang. Linear Predicitive Coding). Polegają one

na podziale cyfrowego sygnału mowy na krótkie segmenty, które są parametryzowane.

Kompresja polega na reprezentacji i transmisji sygnału oryginalnego w postaci

współczynników filtru analizy. Rekonstrukcja sygnału wykonywana jest przy pomocy

filtru syntezy mowy o charakterystyce odwrotnej do filtru analizy. W literaturze algorytm

LPC często określa się mianem parametrycznej reprezentacji mowy, gdzie filtr modeluje

właściwości narządu mowy, który jest pobudzany prostym sygnałem syntetycznym.

Rozpoznawanie charakterystycznych cech mowy, realizowane w koderze oraz

rekonstrukcja sygnału na podstawie przesłanych parametrów, dokonywana w dekoderze

wyznaczają pewien paradygmat kodowania, który powszechnie przyjął się w klasie tzw.

wokoderów pozwalających otrzymać bardzo małe prędkości transmisji.

Określenie kodowania sygnału terminem „semantyczne” sugeruje ścisłą zależność

algorytmu od znaczenia strumienia danych – zawartości informacyjnej sygnału.

W związku z tym główną ideą kodowania jest analiza i rozróżnianie znaczących jednostek

mowy (akustycznych lub fonetycznych) w postaci słów, sylab czy fonemów. Projektując

model kodeka mowy należy uwzględnić fakt, że transmisja akustycznych jednostek

informacji jest granicą kompresji sygnału mowy. Przesyłanie z kodera do dekodera

jakichkolwiek informacji prozodycznych mowy automatycznie zmniejsza efektywność

kodowania w sensie otrzymywanego strumienia binarnego.

Implementowany algorytm polega na dekompozycji sygnału, na zestaw jednostek

fonetycznych o długości kilkudziesięciu milisekund, których cechy charakterystyczne są

reprezentowane przy pomocy parametrów statystycznych ukrytych modeli Markowa –

HMM (ang. Hidden Markov Model). W tym przypadku, zamiast współczynników filtru

analizy dla danego segmentu mowy transmitowane są indeksy rozpoznanych modeli tzw.

fonemów sygnału wejściowego, co skutkuje silniejszą kompresją sygnału, w odniesieniu

do kodera LPC. Podczas rekonstrukcji sygnału z rozpoznanych jednostek fonetycznych

tracona jest informacja o fazie sygnału oryginalnego, co jest cechą charakterystyczną

wokoderów o bardzo małej prędkości transmisji. Jednak przy tak silnej kompresji

otrzymanie sygnału o zadowalającym poziomie naturalności jest bardzo trudne i większy

1. Wstęp. Cel i zakres pracy

- 10 -

nacisk kładzie się tutaj na zapewnienie pożądanego poziomu zrozumiałości mowy

zrekonstruowanej.

Celem tej pracy dyplomowej jest analiza, porównanie obecnych metod kodowania

mowy przy bardzo małych prędkościach transmisji oraz opracowanie modelu kodeka,

który pozwoli zweryfikować wyniki przeprowadzonych badań. Parametrem krytycznym,

podczas implementacji algorytmu, ma być przede wszystkim wielkość strumienia

binarnego, generowanego przez koder. W dalszej części dysertacji, modele kodera

i dekodera mają umożliwić przeprowadzenie serii badań symulacyjnych, pozwalających

oszacować efektywność zaimplementowanego algorytmu, a więc wielkości otrzymanego

strumienia, poziomu zrozumiałości oraz jakości mowy zrekonstruowanej.

W rozdziale drugim pracy magisterskiej zawarty jest opis podstawowych cech sygnału

mowy, w kontekście jego analizy i syntezy. Bardzo istotna jest charakterystyka jednostek

akustycznych – fonemów. Kolejny rozdział prezentuje obecnie najpopularniejsze

algorytmy kodowania mowy przy bardzo małej prędkości transmisji. Ogólny algorytm

kodowania fonetycznego mowy został tutaj przedstawiony najobszerniej gdyż

na podstawie tej techniki, po uwzględnieniu wad i zalet został opracowany model kodeka

dla bardzo małych prędkości transmisji, który prezentowany jest w tej pracy dyplomowej.

W rozdziale czwartym znajduje się szczegółowy opis zastosowanego algorytmu analizy,

transmisji oraz syntezy sygnału mowy. Dokładniej, omówiono tutaj metody ekstrakcji

częstotliwości podstawowej, rozpoznawania fonemów, wyjaśniono cechy zastosowanego

kodera binarnego oraz zaprezentowano sposób wytwarzania sygnału pobudzenia

w dekoderze, a następnie jego kształtowania filtrem syntezy.

Rozdział piąty prezentuje otrzymane wyniki symulacji zaimplementowanego kodeka

mowy, na które składają się wielkości strumieni dla poszczególnych sygnałów testowych

oraz subiektywna ocena jakości i zrozumiałości mowy zrekonstruowanej.

W rozdziale szóstym zawarte jest podsumowanie zrealizowanych zadań szczegółowych

pracy dyplomowej oraz otrzymanych wyników symulacji.

2. Struktura sygnału mowy

- 11 -

2. Struktura sygnału mowy

W rozdziale tym zawarta jest charakterystyka elementów sygnału mowy. Ze względu

na naturę jego wytwarzania, wprowadzono podział na cechy związane z pobudzeniem oraz

cechy zależne od traktu głosowego.

Dźwięki mowy powstają w wyniku zmian ciśnienia powietrza w płucach, które powodują

powstanie fali akustycznej wydostającej się ustami oraz otworem nosowym człowieka.

Ta łączna ścieżka, jaką pokonuje drgający słup powietrza przez ludzkie organy nazywana

jest traktem głosowym. Podczas propagacji fali mogą być pobudzane struny głosowe, które

wchodzą w stan rezonansu dla częstotliwości zależnych od ich stanu naprężenia.

Zachowanie drgającego strumienia powietrza opisuje się równaniem falowym, którego

charakterystycznymi parametrami są prędkość oraz ciśnienie powietrza [1].

2.1 Cechy związane z pobudzeniem

Pierwotny sygnał pobudzający trakt głosowy to sygnał o zróżnicowanym rozkładzie

energii w dziedzinie częstotliwości rezonansowych traktu. Pobudzenie może mieć

charakter dźwięczny lub bezdźwięczny, zależnie od mechanizmu jego wytworzenia

[2, rozdz.2]:

• składniki dźwięczne (tony krtaniowe) – otrzymywane są w wyniku nagłych zmian

ciśnienia, równomiernie przepływającego powietrza z płuc, spowodowanych przez

periodyczne drgania strun głosowych; energia sygnału mowy jest tutaj przesyłana

w postaci impulsów;

• składniki bezdźwięczne (szumy) – produkowane są przez turbulencje podczas

przepływu powietrza z płuc, występujące w różnych miejscach traktu głosowego

ze względu na zwężenie gardłowo – przełykowe.

Większość samogłosek i niektóre spółgłoski zarówno w języku angielskim jak i polskim

należą do klasy składników dźwięcznych mowy np., „a”, „b”, „d”, „o”, podczas gdy

składniki bezdźwięczne to spółgłoski typu „f”, „s”, „t”, „h”.

Ze względu na różne mechanizmy i miejsca produkcji dźwięcznych i bezdźwięcznych

elementów mowy w trakcie głosowym, można także wyróżnić tzw. składniki mieszane

mowy. Cechują się one jednocześnie występującymi quasi-periodycznymi drganiami oraz

szumowymi turbulencjami strumienia powietrza. Przykładem takiej jednostki akustycznej

2. Struktura sygnału mowy

- 12 -

jest spółgłoska „z”. W sensie fonetycznym jest ona sygnałem dźwięcznym, gdyż

charakteryzuje się periodycznym pobudzeniem, lecz w kontekście budowy kodera mowy,

jej uzyskanie możliwe jest tylko przy uwzględnieniu składnika szumowego.

Częstotliwość periodycznych lub quasi-periodycznych drgań składających się

na fragmenty dźwięczne sygnału mowy określa się mianem częstotliwości podstawowej

(ang. pitch frequency). Ściślej, jest ona definiowana jako odwrotność odstępów w czasie,

pomiędzy kolejnymi momentami otwarcia strun głosowych (ang. pitch period).

W przypadku mowy ludzkiej częstotliwość podstawowa F0, przyjmuje wartości z zakresu

50 – 300 Hz, co odpowiada okresowi podstawowemu z przedziału 3 – 20 ms [2].

Dla męskiego aparatu mowy typowe są wartości z dolnej części tego zakresu, podczas gdy

kobiety i dzieci zazwyczaj mają częstotliwość podstawową mowy bliską górnej wartości

granicznej – 300 Hz. Różnica ta wynika z odmiennych fizycznych właściwości strun

głosowych oraz aparatu mowy obu płci. Wahania częstotliwości F0 w trakcie wypowiedzi

reprezentują bardzo istotną informację prozodyczną mowy, jaką jest intonacja.

Ludzkie ucho jest bardzo czułe na zmiany okresu podstawowego, w porównaniu z innymi

parametrami sygnału mowy. Z tego względu, podczas procesu kodowania mowy, kontur

częstotliwości F0 powinien być wiernie odtworzony w sygnale zrekonstruowanym.

2.2 Cechy zależne od traktu głosowego

Decydujący wpływ na brzmienie sygnału mowy ma struktura traktu głosowego oraz

charakter jego zmian w czasie. Trakt głosowy bardzo często modeluje się w postaci

szeregu tub o różnej średnicy, przez które przepływa strumień powietrza, generowany

w płucach. Tuby reprezentują organy człowieka: krtań, przestrzeń gardłową, język, jamę

ustną oraz otwór nosowy, które znajdują się na drodze propagacji (rys.1). Długość traktu

głosowego wynosi u dorosłego mężczyzny ok. 17 cm na odcinku głośnia – jama ustna,

oraz ok.13 cm na odcinku miękkie podniebienie – otwór nosowy. Przewężenia w różnych

miejscach toru powodują powstawanie rezonansów, których skutkiem są lokalne maksima

obwiedni widma amplitudowego nazywane formantami. Odpowiadające im częstotliwości

określamy mianem formantowych.

Wyróżniamy trzy główne częstotliwości formantowe, które położone są w okolicach 400

Hz (F1), 900 Hz (F2) i 2600 Hz (F3) [2]. Lokalizacja rezonansów ściśle zależy od

mówcy i jest ona nierównomierna, gdyż przekrój traktu głosowego nie jest jednakowy na

całej jego długości.

2. Struktura sygnału mowy

- 13 -

SIŁA MIĘŚNI

PŁUCA

STRUNY GŁOSOWE

GARDŁO JAMA USTNA

JĘZYK

OTWÓR NOSOWY

MOWA

MIĘKKIE PODNIEBIENIE

Rys.1. Schemat blokowy ludzkiego aparatu mowy wg [3].

Rys.2. Logarytm krótkookresowego widma amplitudowego sygnału mowy oraz

jego obwiednia ujawniająca częstotliwości formantowe.

2. Struktura sygnału mowy

- 14 -

Największe odchylenia wartości częstotliwości występują dla formantu F2 – nawet do

1500 Hz. Przykładowy rozkład rezonansów formantowych pokazany jest na rys.2.

Przedstawiony wykres pozwala wyodrębnić pasma rezonansowe danego sygnału mowy dla

wartości częstotliwości równych w przybliżeniu F1 = 300 Hz, F2 = 1400 Hz oraz F3 = 2700

Hz. Wyraźnie widoczne jest także tzw. czwarte pasmo formantowe – F4 = 3400 Hz.

Dodatkowo można zauważyć, że regularne prążki harmonicznych oddalone są od siebie

o wartość częstotliwości podstawowej – około 100 Hz.

Sposób przepływu strumienia powietrza przez trakt głosowy, oraz liczba i miejsce

ograniczeń występujących na jego drodze mają wpływ na artykulację. Aby wyprodukować

różne rodzaje dźwięku ludzki aparat mowy przyjmuje wiele konfiguracji, które modyfikują

generowany sygnał pobudzenia. Technika artykulacji poszczególnych fonemów jest

jednym z kryteriów ich klasyfikacji. Często wprowadza się ogólny podział fonemów

na głoski otwarte, w których możliwy jest swobodny przepływ powietrza przez trakt

głosowy, oraz głoski zamknięte (zwarte), gdzie w ścieżce propagacji sygnału pobudzenia

znajdują się zapory powietrza. Sposoby artykulacji poszczególnych głosek są ściśle

związane z położeniem narządów mowy podczas produkcji dźwięku oraz typem sygnału

pobudzenia. Szerzej jest to opisane w rozdziale 2.3.

2.3 Fonemy

Fonem definiujemy jako podstawową jednostkę akustyczną mowy. Do klasyfikacji

fonemów mowy wykorzystuje się cechy odpowiadającego im sygnału pobudzenia oraz

sposób i miejsce artykulacji. Bogata charakterystyka sygnału mowy, wynika właśnie

z różnorodności składników fonetycznych. Możliwe kombinacje fonemów, w różnych

kontekstach i dla różnych mówców, nazywa się alofonami.

Fonemy zazwyczaj oznaczane są przy pomocy standardowych znaków alfabetu danego

języka, gdyż reprezentują brzmienie poszczególnych głosek w mowie. Dla uwypuklenia

fonetycznego charakteru tych symboli w literaturze tematu stosuje się notację /*/

w odniesieniu do poszczególnych głosek, np. /a/, /p/, /iy/.

Poniżej zawarty jest podział fonemów na klasy, który został sporządzony przy

uwzględnieniu kryterium akustycznego oraz kryterium artykulacyjnego klasyfikacji.

Przedstawione w tym rozdziale cechy fonemów, zarówno z punktu widzenia akustycznego

jak i artykulacyjnego są niezwykle istotne w kontekście implementacji kodeka mowy dla

2. Struktura sygnału mowy

- 15 -

bardzo małej prędkości transmisji, którego działanie ma się opierać na rozpoznawaniu i

syntezie mowy.

2.3.1 Samogłoski

Samogłoski (ang. vowels) to dźwięczne składniki mowy (tony krtaniowe), które

produkowane są przez periodyczne lub quasi-periodyczne drgania strun głosowych.

Podczas generacji samogłoski w trakcie głosowym podniebienie miękkie jest uniesione

do góry blokując przepływ drgającego strumienia powietrza przez odcinek nosowy.

Samogłoski mogą podlegać dalszym podziałom ze względu na następujące kryteria:

• położenie języka podczas artykulacji:

o samogłoski przednie, np. /e/, /i/, /y/;

o samogłoski środkowe, np. /a/, /u/;

o samogłoski tylne, np. /o/;

• siła oporu powietrza podczas artykulacji:

o samogłoski wysokie, np. /i/, /u/;

o samogłoski średnie, np. /e/, /o/;

o samogłoski niskie, np. /a/;

Wykresy na rys.3 i rys.4 zawierają przebiegi czasowe oraz logarytm widma

amplitudowego odpowiednio dla samogłoski /a/ oraz samogłoski /i/. W obydwu

przypadkach częstotliwość próbkowania wynosi 16 kHz.

Cechą wspólną fonemów tej klasy, jest wyraźnie widoczny dźwięczny charakter sygnału.

Drgania są periodyczne (samogłoska /a/) lub quasi-periodyczne (samogłoska /i/).

Na wykresach logarytmu widma, wyraźnie zarysowane są pasma formantowe

analizowanych fragmentów mowy. Ze względu na impulsowy charakter pobudzenia,

widmo amplitudowe posiada wiele składowych wysokoczęstotliwościowych o znaczących

wartościach amplitudy. Zazwyczaj samogłoski cechują się stosunkowo długim czasem

trwania. Przykładowo dla samogłoski środkowej ten czas wynosi ok. 140 ms, natomiast dla

samogłoski przedniej równy jest ok. 75 ms. Różnica pomiędzy samogłoską /a/ oraz /i/

polega na tym, że dla tej pierwszej charakter pobudzenia jest wyraźnie rezonansowy.

Obserwujemy to w postaci bardziej regularnego przebiegu czasowego, co ma także

odzwierciedlenie w większej amplitudzie składowych wysokoczęstotliwościowych widma

amplitudowego.

2. Struktura sygnału mowy

- 16 -

Rys.3. Przebieg czasowy oraz logarytm widma amplitudowego fonemu /a/.

Rys.4. Przebieg czasowy oraz logarytm widma amplitudowego fonemu /i/.

2. Struktura sygnału mowy

- 17 -

Samogłoska wysoka /i/ cechuje się nieregularnymi drganiami, dla których można dostrzec

powolny spadek amplitudy o charakterze wykładniczym – stan ustalony.

W wielu językach spotykane są fonemy składające się z dwóch samogłosek, tzw.

dyftongi (ang. diphthongs). Ich właściwości czasowe oraz częstotliwościowe są bardzo

podobne do fonemów jednogłoskowych z tej grupy. Przykładem dyftongów są dźwięki

/ai/, /ou/, /ei/ często spotykane w amerykańskiej odmianie języka angielskiego. Powstają

one, gdy podczas artykulacji struktura traktu głosowego zmienia się z konfiguracji

odpowiadającej pierwszej samogłosce, do konfiguracji powodującej powstanie drugiej

samogłoski, wchodzącej w skład dyftongu.

Fonemy z tej grupy często definiuje się również jako pojedyncze samogłoski, o długim

czasie trwania i zmiennym przebiegu artykulacji, co powoduje, że są one słyszane przez

ludzkie ucho w postaci dwóch dźwięków.

2.3.2 Spółgłoski szczelinowe

Spółgłoski szczelinowe, nazywane także frykatywnymi (ang. fricatives) powstają

w wyniku turbulencji, tarć oraz szumów strumienia powietrza, przepływającego przez

wąskie szczeliny między częściami narządu mowy. Brzmienie tych spółgłosek jest

zdeterminowane przez położenie ust oraz języka. W ramach tej klasy występują zarówno

głoski dźwięczne jak i bezdźwięczne. Przykładem fonemów należących do tej grupy są

głoski /f/ oraz /v/.

W klasie spółgłosek szczelinowych często dokonuje się dalszych podziałów ze względu

na rodzaj narządu mowy, który bierze bezpośredni udział w produkcji dźwięku. Wyróżnia

się m.in. spółgłoski szczelinowe wargowo – zębowe, języczkowe, gardłowe, dwuwargowe

itd. Na rys.5 i rys.6 przedstawione są przebiegi czasowe oraz widma amplitudowe

odpowiednio dla fonemu /f/ oraz /v/ (częstotliwość próbkowania równa 16 kHz).

Spółgłoska /f/ cechuje się typowymi właściwościami szumowymi. Jej przebieg czasowy

jest aperiodyczny i posiada małą amplitudę wahań. Widmo amplitudowe również

charakteryzuje się bezdźwięczną naturą. Nie zawiera żadnych regularnie oddalonych od

siebie prążków rezonansowych.

Fonem /v/ jest dźwięcznym odpowiednikiem spółgłoski /f/. Położenie narządów artykulacji

w trakcie jej generacji jest identyczne, zmienia się natomiast charakter pobudzenia.

Przebieg czasowy jest krótki, periodyczny oraz wyraźnie widoczny jest na nim stan

ustalony. Amplituda drgań maleje wg krzywej wykładniczej.

2. Struktura sygnału mowy

- 18 -

Rys.5. Przebieg czasowy oraz logarytm widma amplitudowego fonemu /f/.

Rys.6. Przebieg czasowy oraz logarytm widma amplitudowego fonemu /v/.

2. Struktura sygnału mowy

- 19 -

Widmo amplitudowe ma charakterystykę bardzo zbliżoną do filtru dolnoprzepustowego.

Zawartość wyższych składowych harmonicznych w spółgłoskach szczelinowych

dźwięcznych jest bardzo mała, gdyż są one silnie tłumione przez trakt głosowy.

2.3.3 Spółgłoski zwarte

Spółgłoski zwarte (ang. stop consonants, plosives), zwane także zwarto-wybuchowymi

powstają, gdy podczas artykulacji następuje całkowita blokada przepływu powietrza przez

trakt głosowy, a dokładniej jamę ustną i nosową, po której następuje nagłe zwolnienie

zgromadzonego strumienia powietrza. Pierwszy etap artykulacji nazywany jest fazą

zwarcia – implozji, po której następuje faza eksplozji. Dźwięki mowy w ten sposób

produkowane są krótkie i mają charakter transientów. Fonemy z tej klasy mogą być

zarówno dźwięczne jak i bezdźwięczne, zależnie od charakteru pobudzenia. Dodatkowo

wyróżnia się kilka podtypów spółgłosek zwartych, które różnią się miejscem realizacji

fazy zwarcia. Przykładem spółgłoski zwarto-wybuchowej jest fonem /t/, którego przebieg

czasowy oraz widmo amplitudowe przedstawione są na rys.7.

Rys.7. Przebieg czasowy oraz logarytm widma amplitudowego fonemu /t/.

Częstotliwość próbkowania Fs = 16 kHz.

2. Struktura sygnału mowy

- 20 -

Jak widać na zamieszczonych wykresach, fonemy tej klasy występują w sygnale mowy

w postaci pojedynczych impulsów o ujemnej wartości amplitudy, co odpowiada fazie

implozji, po których pojawia się pojedynczy dodatni impuls reprezentujący fazę eksplozji.

Ze względu na transientowy charakter tych spółgłosek, są one ściśle uzależnione

od fragmentów mowy występujących, na krótko przed i po spółgłoskach zwarto-

wybuchowych. Ich kontekst fonetyczny może spowodować jeszcze większą redukcję czasu

trwania tych głosek oraz ich energii.

Widmo amplitudowe fonemów zwartych cechuje się typowymi właściwościami sygnału

o składnikach mieszanych (dźwięczno-szumowych). Wyraźny prążek widma dla niskich

częstotliwości reprezentuje generowany impuls, natomiast losowy rozkład energii

dla wysokich częstotliwości jest związany z szumowym charakterem sygnału, jaki

otrzymywany jest w wyniku nagłego zwolnienia powietrza w fazie eksplozji.

2.3.4 Spółgłoski nosowe

Spółgłoski nosowe (ang. nasals) są to fonemy dźwięczne produkowane podczas

przepływu strumienia powietrza przez trakt głosowy, w którym odcinek ustny jest zwarty

w wyniku opuszczenia podniebienia miękkiego i fala akustyczna propaguje się przez

odcinek nosowy. Ze względu na specyficzne właściwości aparatu mowy, spółgłoski

nosowe charakteryzują się najmniejszą energią spośród wszystkich spółgłosek

dźwięcznych. Odmienny sposób propagacji fali wzdłuż traktu głosowego jest także

widoczny w postaci nietypowego kształtu widma generowanego dźwięku. Specyficzna

konfiguracja traktu głosowego w przypadku spółgłosek nosowych powoduje powstawanie

tzw. zer w charakterystyce częstotliwościowej. Ta cecha jest powszechnie

wykorzystywana w modelowaniu i kodowaniu dźwięków tej klasy. Przykładem fonemu

nosowego jest spółgłoska /m/, której przebieg czasowy i widmo amplitudowe znajdują się

na rys.8.

Przedstawione wykresy ilustrują dźwięczny charakter spółgłosek nosowych. Ich przebieg

czasowy jest krótki i składa się z regularnych drgań, które zawierają jedynie harmoniczne

niskiego rzędu. Na wykresie logarytmu widma amplitudowego jest to widoczne w postaci

prążków, występujących dla małych wartości częstotliwości. Specyficzne dla fonemów

nosowych minimum lokalne w charakterystyce częstotliwościowej sygnału występuje w

okolicach 2500 Hz.

2. Struktura sygnału mowy

- 21 -

Rys.8. Przebieg czasowy oraz logarytm widma amplitudowego fonemu /m/.

Częstotliwość próbkowania Fs = 16 kHz.

2.3.5 Spółgłoski zwarto-szczelinowe

Spółgłoski zwarto-szczelinowe (ang. affricates) powstają w wyniku połączenia

fonemów zwarto-wybuchowych i szczelinowych. Podczas artykulacji we wstępnej fazie

dochodzi do całkowitej blokady przepływu fali akustycznej w trakcie głosowym, po czym

narządy mowy tworzą dostatecznie wąską szczelinę, by podczas propagacji zwolnionego

strumienia powietrza wytworzył się szum i tarcie. Element szczelinowy zastępuje tutaj fazę

eksplozji. Przykładem fonemu z omawianej grupy jest spółgłoska /ch/ - kombinacja

spółgłosek /t/, /sh/. Jej przebieg czasowy oraz charakterystyka częstotliwościowa

przedstawione są na rys.9.

Na obydwu zamieszczonych wykresach wyraźnie widoczne są faza implozji (zwarcia)

strumienia powietrza oraz faza szumu (tarcia) podczas przejścia fali akustycznej przez

szczelinę. Pierwszy etap charakteryzuje się pobudzeniem impulsowym o dużych

wahaniach amplitudy, podczas gdy w dalszej części sygnał jest bezdźwięczny o małej

amplitudzie.

2. Struktura sygnału mowy

- 22 -

Rys.9. Przebieg czasowy oraz logarytm widma amplitudowego fonemu /ch/.

Częstotliwość próbkowania Fs = 16 kHz.

Widmo amplitudowe również reprezentuje mieszany charakter sygnału. Dla częstotliwości

w dolnym zakresie skali (poniżej 500 Hz) można wyróżnić równo oddalone prążki, które

odzwierciedlają rezonansowy składnik fonemu. W dalszej części widma wyraźnie

widoczny jest szumowy charakter sygnału w postaci losowych wahań amplitudy, łatwo

obserwowalnych w wąskich przedziałach częstotliwości.

2. Struktura sygnału mowy

- 23 -

2.3.6 Spółgłoski półotwarte

Spółgłoski półotwarte, nazywane często półsamogłoskami (ang. semivowels) są

wytwarzane, gdy jednocześnie w pewnym miejscu traktu głosowego powstaje zwarcie,

natomiast w innym miejscu możliwy jest swobodny przepływ powietrza.

Z artykulacyjnego punktu widzenia fonemy te leżą na granicy spółgłosek i samogłosek.

Reprezentatywnymi fonemami z tej grupy są /r/, /l/, /w/, /y/ czy /j/. Dynamika tych

dźwięków oraz ich brzmienie są bardzo zróżnicowane. Co więcej, ściśle zależy to od ich

kontekstu fonetycznego w sygnale mowy. Przykładowo fonemy /r/ i /l/ są produkowane

w wyniku stabilnych drgań słupa powietrza, podczas gdy fonemy /w/, /y/ są bardzo

dynamicznymi dźwiękami, powstającymi przez zmianę konfiguracji traktu głosowego

w trakcie ich trwania.

Ze względu na powyższe cechy przedstawianej grupy fonemów, najlepszą informację o ich

widmie amplitudowym daje reprezentacja czasowo-częstotliwościowa, otrzymana przez

obliczenie krótkookresowej transformacji Fouriera – STFT (ang. Short Time Fourier

Transform) w krótkich blokach przesuwanych wzdłuż sygnału. Przykładowe rezultaty

takiego przekształcenia dla sekwencji fonemów /iy/-/r/-/ae/ oraz /ae/-/r/-/iy/ są widoczne

w postaci spektrogramów, odpowiednio na rys.10 i rys.11.

Na podstawie przedstawionych spektrogramów możliwe jest wyróżnienie częstotliwości

podstawowej wypowiadanego fragmentu mowy, który widoczny jest w postaci

pierwszego, poziomego prążka na wykresie. Jednak najbardziej istotną cechą w kontekście

rozpoznawania spółgłosek półotwartych, jest rozkład pasm rezonansowych. Formanty są

reprezentowane na spektrogramie w formie grup składowych harmonicznych

o największej energii (ciemne smugi).

Trajektoria formantu F1 jest najbardziej stabilna – widoczna jako pozioma smuga o dużej

energii dla częstotliwości ok. 500 Hz. Największym wahaniom wartości ulega natomiast

formant F2 – grupa składowych z zakresu 1000 – 2000 Hz o dużej energii, której kontur

znacznie różni się w obydwu spektrogramach. Szczególnie jest to zauważalne dla chwil

czasowych poniżej 100 ms. Można to uzasadnić występowaniem w tym fragmencie mowy

innych fonemów kontekstowych dla spółgłoski /r/.

Śledzenie trajektorii rezonansów formantowych oraz ekstrakcja innych cech sygnału

mowy ze spektrogramów bardzo ułatwia analizę widmową oraz rozpoznawanie

poszczególnych jednostek fonetycznych.

2. Struktura sygnału mowy

- 24 -

Rys.10. Spektrogram krótkookresowy sekwencji fonemów /iy/-/r/-/ae/.

Rys.11. Spektrogram krótkookresowy sekwencji fonemów /ae/-/r/-/iy/.

2. Struktura sygnału mowy

- 25 -

2.4 Model wytwarzania mowy

Zakładając chwilową stacjonarność sygnału w ramkach analizy wytwarzanie mowy

można zamodelować jako proces pobudzania filtru syntezy okresowym ciągiem impulsów

lub szumem [1]. Schemat blokowy modelu wytwarzania mowy przedstawiony jest

na rys.12.

FILTR SYNTEZY

UKŁAD DECYZYJNY

WZMOCNIENIE

WSPÓŁCZYNNIKI FILTRU

POBUDZENIE BEZDŹWIĘCZNE

POBUDZENIE DŹWIĘCZNE

F0

MOWA

Rys. 12. Model wytwarzania sygnału mowy.

Filtr syntezy jest układem liniowym, o parametrach zmiennych w czasie, który modeluje

łączną wypadkową charakterystykę głośni, traktu głosowego oraz charakterystykę

emisyjną. Źródłem energii dla filtru jest generator pobudzenia, który modeluje zarówno

tony krtaniowe jak i składniki szumowe wytwarzane w naturalnym procesie produkcji

mowy. Fragmenty dźwięczne modelowane są przez okresowy lub quasi-okresowy ciąg

impulsów, natomiast fragmenty bezdźwięczne reprezentuje się zazwyczaj przez

aperiodyczny sygnał losowy. Informacja o charakterze dźwięcznym, bezdźwięcznym lub

mieszanym pobudzenia wyznaczana jest na podstawie częstotliwości podstawowej (F0)

oraz poziomu głośności poszczególnych bloków kodowanego sygnału mowy. Na tej

podstawie następuje przełączenia typu pobudzenia generowanego w źródle.

Prostym przykładem zastosowania tego modelu wytwarzania mowy jest technika

kodowania liniowo-predykcyjnego – LPC, należąca do rodziny technik wokoderowych.

Filtr syntezujący jest tutaj układem liniowym, o transmitancji odwrotnej do charakterystyki

częstotliwościowej filtru analizy (1):

2. Struktura sygnału mowy

- 26 -

)(1

1

1)(

1

zAza

GzH P

k

kk

−=

−=

∑=

(1)

gdzie:

G – wzmocnienie syntetycznego pobudzenia

ka – współczynniki filtru analizy

P – rząd predykatora

Transmitancja układu syntezy posiada jedynie bieguny w dziedzinie zmiennej Ζ , podczas

gdy dla układu analizy określone są tylko zera transmitancji. Stąd łatwo można otrzymać

charakterystykę filtru dekodera przez odwrotność charakterystyki filtru analizy.

Zadaniem kodera jest odpowiednia adaptacja filtru analizującego do zmieniających się

właściwości traktu głosowego, aby po podaniu na jego wejście sygnału mowy otrzymać

błąd predykcji o najmniejszej energii (2):

∑=

⟩−−⟨=⟩⟨P

kk knsansne

1

22 )]()([)( (2)

gdzie:

)(ns – bieżąca próbka mowy

)( kns − – próbka mowy występująca k chwil wcześniej

Do rekonstrukcji sygnału w dekoderze konieczne jest przesłanie informacji o okresie drgań

ciągu impulsów pobudzenia, wartości wzmocnienia sygnału oraz współczynników filtru

ka . W zależności od wartości przyjętych parametrów analizy LPC, jak długość okna, czy

rząd predykatora, technika ta umożliwia otrzymanie wielkości strumienia wyjściowego,

w zakresie od kilku do kilkunastu kbit/s.

W wielu odmianach wokoderów blok syntezy sygnału wzorowany jest na modelu

wytwarzania mowy zaczerpniętym z algorytmu LPC. Podobne podejście zastosowano

również podczas budowy systemu kodowania, który jest tematem tej pracy.

W opracowanym modelu kodeka układ generacji sygnału pobudzenia oraz filtr syntezy są

kluczowymi elementami dekodera mowy. Metoda analizy sygnału, transmisja parametrów

między koderem, a dekoderem oraz typ parametrów odbiegają natomiast dość znacznie od

idei kodowania predykcyjnego LPC. Jest to związane z ograniczoną prędkością transmisji.

2. Struktura sygnału mowy

- 27 -

Chcąc otrzymać strumień mniejszy niż 2,4 kbit/s (standard LPC-10), nie możemy

przesyłać parametrów analizy mowy w standardowej postaci, tak jak odbywa się to w

kodowaniu liniowo-predykcyjnym. Rozwiązanie tego problemu jest tematem pracy

magisterskiej, natomiast cechy kodera LPC i jego efektywność stanowią bardzo ważny

kontekst dla oceny zaimplementowanego systemu.

3. Przegląd technik kodowania mowy dla bardzo małych prędkości transmisji

- 28 -

3. Przegląd technik kodowania mowy dla bardzo małych prędkości transmisji

Za zakres strumieni koderów dla bardzo małych prędkości transmisji przyjmuje się

wartości poniżej 1000 bit/s. W literaturze spotyka się trzy główne techniki kodowania

sygnału mowy, które pozwalają na otrzymanie takiej przepływności. Rozdział ten zawiera

charakterystykę tych metod, z uwzględnieniem wad i zalet danego rozwiązania.

Wysoka kompresja sygnału wymusza stosowanie innych technik kodowania niż

te powszechnie spotykane w kodekach MELP (ang. Mixed Excitation Linear Prediction),

CELP (ang. Code Excited Linear Prediction) czy ADCPM (ang. Adaptive Differential

Pulse Code Modulation). Jest to spowodowane faktem, że użycie klasycznych algorytmów

przy mocno ograniczonej prędkości transmisji, wymusza ekstremalnie silną kwantyzację,

co nie pozwala na prawidłowe przesłanie wszystkich parametrów sygnału niezbędnych do

jego rekonstrukcji. Obecnie stosowane techniki kodowania mowy przy bardzo małych

prędkościach transmisji oparte są na analizie i syntezie sygnału – SRSB (ang. Speech

Recognition Synthesis Based). Takie podejście pozwala na uzyskanie bardzo małych

strumieni przy zachowaniu zadowalającego poziomu zrozumiałości oraz naturalności.

3.1 Wokoder segmentowy

Główną ideą kodowania segmentowego mowy jest podział sygnału na spójne

fragmenty o zmiennej długości, które uprzednio kwantowane, przechowywane są

w specjalnej bazie danych. Dla nieznanej wypowiedzi dokonuje się wyszukiwania

i rozpoznawania fragmentów sygnału, które najlepiej pasują do wzorców

przechowywanych w bazie segmentów. Zawartość takiej bazy może być różna

w zależności od zastosowanego podejścia, tzn. za jednostkę segmentacji przyjmuje się całe

ramki sygnału lub segmenty odpowiadające poszczególnym fonemom, czy sylabom.

Im dłuższy segment stanowi jednostkę, tym wyjściowy strumień jest mniejszy, ale

jednocześnie rośnie złożoność obliczeniowa związana z jego rozpoznaniem. Kryterium

dopasowania może być np. energia segmentu, jego częstotliwość podstawowa, bądź inna

cecha. Koder segmentowy dokonuje rozpoznania jednostek mowy, które wchodzą w skład

oryginalnego sygnału i przesyła tę informację do dekodera.

3. Przegląd technik kodowania mowy dla bardzo małych prędkości transmisji

- 29 -

Synteza mowy polega na pobraniu z bazy danych rozpoznanych fragmentów sygnału oraz

ich połączeniu. Niezbędna jest do tego tekstowa transkrypcja zakodowanego sygnału, gdyż

umożliwia ona wybór odpowiednich jednostek z bazy oraz odtworzenie struktury czasowej

sygnału.

Jeden z najbardziej popularnych algorytmów kodowania segmentowego mowy został

zaproponowany przez Ki-Seung Lee i Richarda Cox’a w [4]. Według nich koder

segmentowy powinien być wykorzystywany w aplikacjach gdzie parametrem krytycznym

nie jest złożoność obliczeniowa, oraz ilość pamięci potrzebna na przechowywanie bardzo

dużej bazy fragmentów mowy. Efektywność kodowania algorytmu przedstawionego przez

Lee i Cox’a kryje się właśnie w liczbie zgromadzonych fragmentów wypowiedzi, które

używa się do syntezy sygnału.

Prezentowany w cytowanej pracy kodek segmentowy pozwala na uzyskanie strumienia ok.

800 bit/s. Jego zasada działania opiera się na rozpoznawaniu mowy i konwersji tekstu

do mowy – TTS (ang. Text-To-Speech). Technika ta polega na łączeniu rozpoznanych

segmentów sygnału, reprezentowanych w postaci jednostek (indeksów, znaków itp.),

branych z obszernych baz danych. W wyniku takiego złożenia jednostek otrzymujemy

przebieg, który dodatkowo wzbogacany jest informacją o prozodii sygnału, a więc

uwzględniane są:

• długości trwania segmentów mowy;

• głośność segmentów;

• okres drgań głośni (ang. pitch period);

• częstotliwości formantowe.

Koder segmentowy można łatwo przedstawić w postaci systemu zawierającego bardzo

bogatą książkę kodową (bazę wypowiedzi), oraz mechanizmy wyznaczające dodatkowe

parametry prozodyczne sygnału, które służą do zminimalizowania residuum pomiędzy

sygnałem oryginalnym a odtworzonym. Schemat takiego kodeka, na podstawie pracy [4],

pokazany jest na rys.13.

W ramach ekstrakcji cech wykonywana jest estymacja częstotliwości podstawowej traktu

głosowego, estymacja amplitudy oraz reprezentacja cech widma w postaci

współczynników cepstrum, w melowej skali częstotliwości – MFCC (ang. Mel-Frequency

Cepstral Coefficients).

Reprezentacja cech sygnału w postaci współczynników MFCC jest powszechnie spotykaną

techniką stosowaną w kodowaniu mowy dla bardzo małych prędkości transmisji.

3. Przegląd technik kodowania mowy dla bardzo małych prędkości transmisji

- 30 -

Częstotliwość podstawową sygnału wyznacza się przy wykorzystaniu jednego

z algorytmów prezentowanych w rozdziale 4.2.1. Wokoder segmentowy zawiera dwie

bazy danych. Pierwsza służy do rozpoznawania segmentów (jednostek) współczynników

MFCC, w odniesieniu do wzorców przechowywanych w systemie. Te wzorce parametrów

mel-cepstrum muszą być wyznaczane z sygnałów przechowywanych w bazie, z

zachowaniem tych samych parametrów, które są wykorzystywane do analizy sygnału

wejściowego.

SYGNAŁ WEJŚCIOWY

BAZA CECH SYGNAŁU

EKSTRAKCJA CECH SYGNAŁU

CZĘSTOTLIWOŚĆ F0AMPLITUDA

SELEKCJA JEDNOSTEK

KODER

DOBÓR SEGMENTÓW

BAZA FRAGMENTÓW

SYGNAŁU

MODYFIKACJA CZĘSTOTLIWOŚCI I

AMPLITUDY

KONKATENACJA

SYGNAŁ WYJŚCIOWY

DEKODER

Rys. 13. Schemat kodeka segmentowego.

3. Przegląd technik kodowania mowy dla bardzo małych prędkości transmisji

- 31 -

Dekoder segmentowy mowy posiada drugą bazę danych, w której pod odpowiednimi

indeksami umieszczone są oryginalne fragmenty mowy, wzięte z dużej liczby wypowiedzi

konkretnego mówcy. Ten fakt wskazuje na ścisłą zależność cech sygnału wyjściowego

od mówcy, który generuje wypowiedzi składające się na bazę segmentów.

Jak widać na rys.13, kodowana jest jedynie informacja o rozpoznanych jednostkach

parametrów oraz informacja o częstotliwości i obwiedni sygnału. Te właściwości

przetwarzania decydują o bardzo małym strumieniu binarnym.

Cechą charakterystyczną wokoderów segmentowych jest rekonstrukcja sygnału bez

wykorzystania filtrów syntezy. Sygnał jest odtwarzany przez proste zestawienie

segmentów mowy, wziętych z bazy, które zostały uprzednio zmodyfikowane przez

zdekodowaną informację o częstotliwości F0 dla danego segmentu, oraz jego

wzmocnienie.

Sygnał zrekonstruowany otrzymywany z wokodera segmentowego ma jakość

porównywalną z konwencjonalnymi koderami mowy dla małych przepływności, np.

MELP 2,4 kbit/s, przy czym otrzymywany strumień waha się w zakresie 400 – 1000 bit/s.

Poziom naturalności i zrozumiałości jest zadowalający, co jest okupione dużą złożonością

obliczeniową algorytmu, oraz rozmiarami baz danych kodera i dekodera.

3.2 Wokoder sylabowy

Kodowanie sylabowe polega na analizie wejściowego strumienia i rozpoznawaniu

jednostek sygnału mowy, którymi są w tym przypadku sylaby. Rozróżnianie jednostek

na poziomie fonetycznym jest jedną z podstawowych cech, które odróżniają koder

sylabowy od przedstawionego w rozdziale 3.1 kodera segmentowego. Zastosowanie sylab

jako jednostek mowy, które poddaje się analizie i rozpoznawaniu wynika z faktu, iż bardzo

często, dla konkretnego języka, występują one niezależnie od siebie w wypowiedziach.

Kechu Yi i pozostali w [5] wskazują, że ta niezależność ma wpływ na pogorszenie

poziomu zrozumiałości i naturalności zrekonstruowanej mowy. W swojej pracy sugerują

konieczność kodowania informacji o podziale słowa na sylaby jako bardzo istotnego

składnika prozodycznego sygnału. Nie jest to jedyna informacja dodatkowa, jaką przesyła

się do dekodera. W celu odtworzenia sygnału o zadowalającej jakości należy, podobnie jak

dla wokodera segmentowego, kodować kontur częstotliwości podstawowej, amplitudę

segmentów odpowiadających danej sylabie, a także czas trwania składowych dźwięcznych,

czy kontekst sylab.

3. Przegląd technik kodowania mowy dla bardzo małych prędkości transmisji

- 32 -

Kodowanie sylabowe, co można także wnioskować z [5], jest silnie zależne od składni

języka. Schemat blokowy kodera i dekodera segmentowego znajduje się odpowiednio

na rys.14 i rys.15.

BAZA MODELI HMM DLA

SYLAB

TABLICA INDEKSÓW

SYLAB

ROZPOZNAWANIE SYLAB

KODER PARAMETRYCZNY

ANALIZA PROZODYCZNA

STRUMIEŃ WYJŚCIOWY

SYGNAŁ WEJŚCIOWY

Rys. 14. Struktura kodera sylabowego.

BAZA FRAGMENTÓW

MOWY

TABLICA INDEKSÓW

SYLAB

DEKODER PARAMETRYCZNY SYNTEZA MOWY

MODYFIKACJA PROZODII SYGNAŁU

SYGNAŁ WYJŚCIOWYSTRUMIEŃ

WEJŚCIOWY

Rys. 15. Struktura dekodera sylabowego.

3. Przegląd technik kodowania mowy dla bardzo małych prędkości transmisji

- 33 -

Jak przedstawiono to na schematach, w koderze następuje rozpoznawanie sylab

zależne od mówcy. W tym procesie korzysta się ze wzorców sylab reprezentowanych

w postaci ukrytych modeli Markowa – HMM (ang. Hidden Markov Model). Na tych

strukturach opiera się większość algorytmów rozpoznawania mowy. Ze względu

na podejście analizy przez resyntezę znalazły one również szerokie zastosowanie

w kodowaniu mowy dla bardzo niskich prędkości transmisji.

Łańcuchy Markowa przedstawiane w postaci sekwencji stanów, prawdopodobieństw

przejść między tymi stanami oraz prawdopodobieństw wyjść z poszczególnych stanów

bardzo dobrze sprawdzają się w modelowaniu charakterystycznych cech sygnału mowy -

sylab, fonemów. Dokładna analiza tego zastosowania modelu Markowa zawarta jest

w rozdziale 4.2.3.

Kechu Yi i pozostali [5] stosują w swoim modelu kodeka wzorce sylab składające się

z dwóch dwustanowych modeli HMM dla każdej półsylaby oraz korzystają z algorytmu

Viterbiego do wyznaczania prawdopodobieństw wyjściowych rozkładów Gaussa

dla poszczególnych stanów modeli. Dodatkowo w koderze z fragmentów sygnału

odpowiadającym poszczególnym sylabom ekstrahowane są informacje prozodyczne, jak

kontur częstotliwości podstawowej, czas trwania składowej dźwięcznej sylaby, czy

znaczniki połączeń między sylabami (stanowią istotną informację o podziale słowa).

Rozpoznane sylaby reprezentowane są w postaci indeksów tablicy skojarzonej z bazą

modeli. Ta informacja wraz z cechami prozodycznymi sygnału wejściowego kodowana

jest parametrycznie, tzn. poszczególne składniki strumienia mają przydzieloną inną

długość słowa kodowego.

Dekoder sylabowy dokonuje rekonstrukcji sygnału poprzez zestawienie rozpoznanych

sylab, których przebiegi czasowe przechowywane są w bazie danych. Do syntezy sygnału

stosuje się tutaj dobrze znany w przetwarzaniu mowy algorytm PSOLA (ang. Pitch

Synchronous Overlap Adding) [6]. Jest to technika, która polega na odtwarzaniu sygnału

ciągłego poprzez łączenie nakładających się fragmentów sygnału, których długość zależy

od zmieniającego się okresu podstawowego sygnału. Częstotliwość generowania takich

fragmentów czasowych sygnału, oraz poziom ich wzajemnego nakładania się (wielkość

przesunięcia okresu podstawowego) jest regulowana przez odtworzoną w dekoderze

częstotliwość podstawową. Rekonstrukcja częstotliwości F0 oraz pozostałych cech sygnału

składa się na modyfikację prozodii syntezowanego sygnału.

3. Przegląd technik kodowania mowy dla bardzo małych prędkości transmisji

- 34 -

Wokoder sylabowy umożliwia otrzymanie mniejszego strumienia niż koder

segmentowy. Typowe wartości wahają się w zakresie 100 – 200 bit/s. Kodowanie to daje

jednak gorszy poziom zrozumiałości i naturalności sygnału zrekonstruowanego, co stanowi

jego podstawową wadę. Kolejnym problemem jest tutaj konieczność przechowywania

dużej liczby fragmentów sygnału o różnej intonacji, najlepiej branych z dużej grupy

mówców. Ten fakt, oraz bardzo ścisła zależność metody od składni języka powoduje, że

wokodery sylabowe nie cieszą się taką popularnością jak wokodery segmentowe, czy

fonetyczne.

3.3 Wokoder fonetyczny

Główną ideą kodowania fonetycznego jest rozpoznawanie mowy wykonywane

na poziomie fonemów. To rozpoznawanie polega na porównywaniu cech widma sygnału

ze wzorcami przechowywanymi w postaci wektorów cech skojarzonych ze stanami

ukrytych modeli Markowa (HMM). Zastosowanie modelowania występowania fonemów

oraz odpowiadającego im charakteru sygnału przy pomocy HMM oferuje bardzo duży

wzrost efektywność kodowania. Bardzo istotną cechą wokodera fonetycznego jest fakt, że

umożliwia on realizację kodowania mowy zarówno zależnego jak i niezależnego od

mówcy. Jest to możliwe dzięki efektywnym technikom adaptacji modeli fonemów

przechowywanych w bazie danych do konkretnego mówcy.

W literaturze związanej z tematem spotyka się często określenie, że kodowanie

fonetyczne mowy jest odporne na błędy rekonstrukcji sygnału. Wynika to z faktu, że dla

przeciętnego odbiorcy błędy w rozpoznaniu fonemów należących do jednej klasy nie są

zauważalne. Znaczące są jedynie błędy, które są spowodowane przynależnością fonemu

oryginalnego i zrekonstruowanego do innych grup. Pod synonimem klasy (grupy)

fonemów kryje się tutaj typ głoski, np. dźwięczna – bezdźwięczna.

Joseph Picone i George R. Doddington w jednej z pierwszych prac [7] na temat kodowania

fonetycznego mowy wskazują, że przedstawione tutaj cechy wokodera decydują o małych

rozmiarach zbiorów fonemów, koniecznych do prawidłowej syntezy sygnału. Pilone

i Doddington dowodzą także, że otrzymywany strumień zależy od typu zastosowanych

modeli HMM fonemów. W ogólności kodowanie fonetyczne zakłada rozpoznawanie

mowy z wykorzystaniem ukrytych modeli Markowa, których przykładowe grafy przejść

przedstawione są na rys.16 i rys.17.

3. Przegląd technik kodowania mowy dla bardzo małych prędkości transmisji

- 35 -

W schematach tych współczynniki a reprezentują prawdopodobieństwa przejść między

stanami, natomiast współczynniki b to prawdopodobieństwa wektorów obserwacji,

przechowywanych w modelu HMM. Wektory cech łącznie stanowią wzorzec konkretnej

głoski w sygnale mowy.

2 3 41 5

22a 33a 44a

23a34a

)(2 ob )(3 ob )(4 ob

45a

Rys. 16. Graf przejść progresywnego modelu HMM.

2 3 41 5

22a

13a24a

23a 34a1π

)(2 ob )(3 ob )(4 ob

33a 44a

45a

35a

Rys. 17. Graf przejść modelu HMM uwzględniający skoki pomiędzy stanami.

Modele uwzględniające przeskoki pomiędzy stanami pozwalają na bardziej wierne

odwzorowanie parametrów widma poszczególnych fonemów, gdyż zakładają większą

zmienność wektorów cech, ale implikują jednocześnie nieco większy strumień niż proste

modele progresywne (ang. left-to-right).

Bazy modeli fonemów zawierają inny charakter sygnału w porównaniu do poprzednio

omawianych technik kodowania mowy przy bardzo małych prędkościach transmisji.

Różnica polega na tym, że baza nie zawiera wielu segmentów (fragmentów) sygnału

odpowiadających poszczególnym sylabom, wziętych z dużej liczby wypowiedzi.

3. Przegląd technik kodowania mowy dla bardzo małych prędkości transmisji

- 36 -

W przypadku wokodera fonetycznego ta baza zawiera ściśle określoną i niezmienną liczbę

wytrenowanych zestawów współczynników widmowych odpowiadających poszczególnym

głoskom w mowie. Ekstrakcja cech sygnału wykonywana jest najczęściej poprzez analizę

LPC mowy, czy analizę cepstralną (mel-cepstralną). Trening modeli polega na uśrednianiu

współczynników widmowych, po największej dostępnej liczbie wystąpień danego fonemu,

dla różnych mówców i zmiennej intonacji. Z procesem treningu wiąże się jeden z

elementów ograniczających efektywność tej techniki kodowania. Częstotliwość

występowania poszczególnych fonemów w mowie jest bardzo zmienna. Nawet posiadanie

bardzo dużej liczby próbek treningowych nie powoduje, że wszystkie modele fonemów

estymowane są na takim samym poziomie. Jest to jedna z niewielu wad koderów

fonetycznych.

Przykładowy histogram występowania pewnej grupy fonemów dla języka angielskiego

przedstawiony jest na rys.18. Baza danych treningowych składa się z 452 wypowiedzi.

Na podstawie takiego histogramu można na przykład stwierdzić, że fonemy /ax/, /ih/ będą

bardzo dobrze reprezentowały cechy sygnału mowy, w odróżnieniu do fonemów /oy/ czy

/uh/. Składnik mowy oznaczony symbolem /sil/ odzwierciedla fragmenty ciszy w sygnale.

Jego liczba wystąpień w sygnałach treningowych jest duża, gdyż pojawia się on zawsze

na początku i końcu nagrania.

Rys. 18. Histogram występowania pewnej grupy fonemów w bazie treningowej.

0

200

400

600

800

1000

1200

1400

/ax / /ay / /eh / /er / /ey / /hh / /ih / /iy / /jh / /ng / /ow / /oy / /sh / /th / /uh / /sil/

Indeks fonemu

Licz

ba w

ystą

pień

3. Przegląd technik kodowania mowy dla bardzo małych prędkości transmisji

- 37 -

Problem odpowiedniego pokrycia bazy fonemów przez sygnały treningowe rośnie

znacznie, gdy w rozpoznawaniu mowy biorą udział nie pojedyncze modele, lecz np. pary

modeli lub zestawy trójfonemowe. Stosowanie takich modeli kontekstowych znacznie

polepsza efektywność algorytmów rozpoznawania, lecz częstość występowania

poszczególnych par czy trójek fonemów w wypowiedziach treningowych, jest o wiele

mniejsza niż w przypadku pojedynczych fonemów. Pilone i Doddington w swojej pracy

[7] prezentują przykładowe statystyki dla bazy treningowej TIMIT – jest to najczęściej

używany zbiór wypowiedzi oraz ich transkrypcji, wykorzystywany w rozpoznawaniu

fonetycznym mowy. Wskazują oni, że w bazie tej składającej się z 2792 wypowiedzi,

występuje 75% możliwych par fonemów oraz jedynie 9,25% możliwych trójek fonemów.

Na podstawie tych wartości można wysunąć wniosek, że wzrost efektywności kodera

niesie ze sobą konieczność zastosowania modeli złożonych, dzięki którym otrzymuje się

mniejszy strumień oraz większy poziom zrozumiałości sygnału zrekonstruowanego, jednak

kosztem znacznie większej bazy danych treningowych i czasochłonności jej

przygotowania.

Do rozwoju technik kodowania fonetycznego mowy, bardzo przyczyniły się badania

i prace Keiichi Tokudy. Jego model kodera i dekodera przedstawiony w [8] ilustruje ideę

kodowania mowy dla bardzo małej prędkości transmisji, opartą na rozpoznawaniu

fonemów i resyntezie sygnału. Ten kodek korzysta z bazy wytrenowanych modeli HMM

fonemów, która tutaj używana jest zarówno do rozpoznawania mowy w koderze, jak i do

syntezy sygnału w dekoderze. Strumień binarny przesyłany do dekodera oprócz indeksów

rozpoznanych modeli niesie informację o czasie trwania poszczególnych stanów

rozpoznanych modeli oraz ekstrahowany kontur częstotliwości podstawowej sygnału

wejściowego. Schemat blokowy wokodera fonetycznego przedstawionego w [8] znajduje

się na rys.19.

Modele HMM przechowują w każdym stanie wzorce widma sygnału, odpowiadające

poszczególnym fonemom, reprezentowane w postaci współczynników cepstrum,

w melowej skali częstotliwości – MFCC. Przyporządkowanie rozpoznanych jednostek

mowy do tych wzorców dokonywane jest przy wykorzystaniu algorytmu Viterbiego.

Natomiast generacja parametrów w dekoderze odbywa się wg reguły największej

wiarogodności – ML (ang. Maximum Likelihood) stosowanej do sekwencji parametrów

otrzymanych w wyniku zestawienia modeli, odpowiadających zdekodowanym indeksom

fonemów. Sekwencja wystąpień poszczególnych stanów odtwarzana jest na podstawie

przesłanej informacji o czasie trwania modeli.

3. Przegląd technik kodowania mowy dla bardzo małych prędkości transmisji

- 38 -

Tak otrzymane współczynniki widma sygnału są następnie przeliczane na współczynniki

filtru aproksymującego logarytm widma amplitudowego – MLSA (ang. Mel Log Spectrum

Aproximation filter).

SYGNAŁ WEJŚCIOWY

ANALIZA MEL-CEPSTRALNAEKSTRAKCJA CZĘSTOTLIWOŚCI F0

BAZA MODELI HMM FONEMÓW

ROZPOZNAWANIE FONEMÓW

KODER

GENERACJA WSPÓŁCZYNNIKÓW

CEPSTRUM

CZASY TRWANIA STANÓW

INDEKSY MODELI

FILTR MLSA

SYGNAŁ WYJŚCIOWY

DEKODER

Rys. 19. Koder i dekoder dla bardzo niskich prędkości transmisji wg

K. Tokudy.

3. Przegląd technik kodowania mowy dla bardzo małych prędkości transmisji

- 39 -

Aby dokonać syntezy sygnału, filtr ten musi być pobudzony ciągiem impulsów

dla fonemów dźwięcznych lub szumem białym dla fonemów bezdźwięcznych. Odstęp

pomiędzy impulsami wyznaczany jest na podstawie konturu częstotliwości podstawowej

przesłanego do dekodera Wadą kodera fonetycznego prezentowanego w [8] jest

konieczność zdefiniowania gramatyki wypowiedzi w celu prawidłowego rozpoznania

fonemów. Ten problem jest szczegółowo opisany w dokumentacji systemu HTK (ang.

Hidden Markov Models Toolkit) [9], który stanowi bardzo rozbudowane środowisko do

tworzenia modeli HMM, ich trenowania oraz rozpoznawania mowy.

W skrócie, gramatykę wypowiedzi stanowią wszystkie możliwe kombinacje sekwencji

fonemów, wchodzących w skład wejściowego sygnału mowy. Ta informacja musi być

znana a’priori. Na jej podstawie buduje się grafy, których ścieżki przejść odpowiadają

wystąpieniom możliwych sekwencji fonemów. Taka informacja znacznie usprawnia

algorytm Viterbiego, wyznaczający najbardziej prawdopodobną ścieżkę w grafie.

Opisany tutaj wokoder fonetyczny pozwala uzyskać strumień na poziomie ok. 150

bit/s. Otrzymujemy podobny stopień kompresji jak przy zastosowaniu kodowania

sylabowego, jednak poziom zrozumiałości sygnału zdekodowanego jest w tym

rozwiązaniu wyższy. Wokodery fonetyczne uważa się za najbardziej sprawne narzędzia

stosowane do silnej kompresji sygnału mowy, przy zachowaniu zadowalającej stopy

zrozumiałości sygnału zrekonstruowanego. Wspieranie kodowania nieznanego sygnału

mowy, jego gramatyką, która wcześniej musi być znana, stanowi jednak bardzo znaczące

ograniczenie tej techniki.

4. Koncepcja semantycznego kodeka mowy

- 40 -

4. Koncepcja semantycznego kodeka mowy

Implementacja modelu kodera i dekodera mowy dla bardzo małych prędkości

poprzedzona była analizą wielu współczesnych technik. Najważniejsze i najczęściej

spotykane algorytmy kodowania umożliwiające otrzymanie niskich przepływności zostały

omówione w poprzednim rozdziale. Głównymi założeniami tej pracy dyplomowej było

opracowanie modelu kodeka wg jednej z poznanych metod, weryfikacja otrzymanego

strumienia oraz subiektywna ocena jakości i zrozumiałości sygnału zrekonstruowanego.

Ustalono następujące wymagania stawiane przed projektowanym modelem kodeka:

1. otrzymany strumień powinien być mniejszy niż 500 bit/s;

2. sygnał odtworzony ma być zrozumiały dla przeciętnego słuchacza;

3. model kodera i dekodera powinien być jak najprostszy.

Kierując się tymi trzema założeniami, po uprzednich studiach literaturowych, wybrano

implementację kodeka z klasy wokoderów fonetycznych. Opracowana koncepcja

semantycznego kodeka mowy dla małych przepływności prezentowana jest w tym

rozdziale. Należy zaznaczyć, iż ostateczna wersja proponowanego rozwiązania bardzo

długo ewoluowała, zanim przyjęła ostateczną formę. Projektując kodek, który jest tematem

tej pracy, przeprowadzono wiele pobocznych badań związanych z technikami

przetwarzania mowy.

Opracowany koder i dekoder mowy składają się z kilku bloków realizujących etapy

przetwarzania mowy. W rozdziale 4.1 zawarty jest opis ogólnej struktury

zaimplementowanego kodeka mowy, z uwzględnieniem wymiany danych pomiędzy

blokami analizy i syntezy mowy. Szczegółowa charakterystyka modułu kodera zawarta

jest w rozdziale 4.2, natomiast opis projektu dekodera mowy znajduje się w rozdziale 4.3.

4. Koncepcja semantycznego kodeka mowy

- 41 -

4.1 Struktura systemu

Schemat blokowy zaprojektowanego modelu semantycznego kodeka mowy z klasy

wokoderów fonetycznych przedstawiony jest na rys.20. Struktura systemu bardzo

przypomina schemat blokowy wokodera fonetycznego. Podobnie jak na rys.19, mamy tutaj

blok odpowiedzialny ze ekstrakcję częstotliwości podstawowej oraz wyznaczanie

reprezentacji widma sygnału w postaci współczynników cepstrum w melowej skali

częstotliwości – MFCC. Zaprojektowany model kodera i dekodera różni się od wokodera

zaproponowanego przez Tokudę [8] tym, że zawiera dwie bazy modeli HMM fonemów.

Pierwsza baza modeli znajduje się w koderze i zawiera wzorce współczynników MFCC,

które służą do rozpoznawania fonemów. Baza modeli dekodera składa się

ze współczynników mel-cepstrum, które uwzględniają energię sygnału i stosowana jest

do syntezy mowy.

Na schemacie kodera widoczne jest, że analiza mel-cepstralna oraz rozpoznawanie

fonemów, realizowane przez algorytm Viterbiego, są wykonywane po przetwarzaniu

wstępnym sygnału wejściowego. W wyniku tego przetwarzania zostaje usunięta składowa

stała wejściowego sygnału mowy oraz dokonuje się jego korekty, przy pomocy filtru

preemfazy. Sygnał wejściowy musi być wstępnie przetworzony, aby parametry analizy

sygnału wejściowego, oraz sygnałów treningowych były identyczne. Parametry modeli

HMM wyznaczane są przy pomocy systemu HTK v.3.4 [9], natomiast cały proces

kodowania wejściowego sygnału mowy wykonywany jest w środowisku Matlab 6.5.

Ekstrakcja częstotliwości podstawowej to bardzo ważny blok systemu kodera mowy

dla bardzo małej prędkości transmisji. Ta informacja prozodyczna musi być bardzo wiernie

odtworzona aby zachować naturalną intonację mówcy. Z tego powodu częstotliwość F0

ekstrahuje się bezpośrednio z sygnału wejściowego. Przy wyborze metody wyznaczania

częstotliwości podstawowej kierowano się przede wszystkim jej dokładnością. Spośród

szerokiej gamy technik ekstrakcji częstotliwości F0 [10] wybrano metodę wykorzystującą

cepstrum sygnału.

Wyznaczone współczynniki MFCC, oraz wzorce pobrane z bazy danych modeli HMM

dla kodera umożliwiają rozpoczęcie procesu rozpoznawania fonemów, który w głównej

mierze opiera się na algorytmie Viterbiego. Poszukiwanie najbardziej prawdopodobnej

ścieżki w grafie modelu HMM wykonuje się równolegle dla wszystkich modeli fonemów

i jest to poprzedzone wyznaczaniem prawdopodobieństw wyjściowych z modeli, wg

rozkładu Gaussa.

4. Koncepcja semantycznego kodeka mowy

- 42 -

EKSTRAKCJA CZĘSTOTLIWOŚCI F0

PRZETWARZANIE WSTĘPNE

ROZPOZNAWANIE FONEMÓW

(ALGORYTM VITERBIEGO)

ANALIZA MEL-CEPSTRALNA BAZA MODELI HMM

KODERA

KODER BINARNY

SYGNAŁ WEJŚCIOWY

2 3 41 5

„a”

2 3 41 5

„dh”

F0CZASY

TRWANIA MODELI

INDEKSY MODELI

KODER

DEKODER BINARNY

F0 CZASY TRWANIA MODELI

INDEKSY MODELI

GENERATOR SYGNAŁU

POBUDZENIA

ODTWARZANIE WIDMA SYGNAŁU

SYNTEZA MOWY

BAZA MODELI HMMDEKODERA

2 3 41 5

„a”

2 3 41 5

„dh”

SYGNAŁ WYJŚCIOWY

ZAKODOWANY STRUMIEŃ

DEKODER

Rys.20. Struktura opracowanego semantycznego kodeka mowy.

4. Koncepcja semantycznego kodeka mowy

- 43 -

Dla danego fragmentu sygnału poszukuje się modelu fonemu, który pierwszy osiągnie stan

końcowy wg reguły MAP (ang. Maximum A’Posteriori Probability), tj. za rozpoznany

fonem przyjmuje się ten, którego prawdopodobieństwo przejścia przez graf modelu jest

największe.

W wyniku zastosowania algorytmu Viterbiego do rozpoznawania fonemów otrzymujemy

nie tylko indeksy rozpoznanych modeli HMM, ale również informację o ich czasie

trwania. W tej implementacji kodera mowy, struktura czasowa sygnału syntezowanego nie

jest odtwarzana wprost jak to jest zazwyczaj robione w wokoderach fonetycznych.

Zaprojektowany kodek zakłada bezpośrednią transmisję informacji o czasie trwania modeli

z kodera do dekodera i jest ona wyrażona w postaci liczby występujących kolejno po sobie

modeli HMM danego fonemu. Szerzej jest to opisane w rozdziale 4.2.4.

Trzy strumienie danych konieczne do syntezy mowy są kodowane binarnie przy

zastosowaniu kodu Huffmana. Taka metoda skutkuje efektywnie zakodowanym

strumieniem bitów, który przesyłany jest do dekodera. W układzie rekonstrukcji mowy,

na podstawie odtworzonej informacji o częstotliwości podstawowej F0 generowany jest

sygnał pobudzenia. Idea konstrukcji tego sygnału zaczerpnięta jest z kodera MELP, gdzie

fragmenty dźwięczne mowy reprezentuje się w postaci ciągu impulsów (ang. impulse

train), natomiast fragmenty bezdźwięczne są generowane przy pomocy szumu białego

gaussowskiego – WGN (ang. White Gaussian Noise).

Oprócz sygnału pobudzenia, w dekoderze odtwarza się także charakterystykę

częstotliwościową toru przetwarzania sygnału mowy. Ten proces realizowany jest

na podstawie otrzymanych z dekodera binarnego indeksów rozpoznanych modeli fonemów

oraz czasów ich trwania. W efekcie otrzymujemy aproksymację widma amplitudowego

traktu głosowego, która służy do odpowiedniej filtracji sygnału pobudzenia. Filtracja ta

jest realizowana w dziedzinie częstotliwości za pomocą przekształcenia FFT. Szczegółowe

opisy poszczególnych modułów proponowanego semantycznego kodeka mowy zawarte są

w kolejnych podrozdziałach.

4. Koncepcja semantycznego kodeka mowy

- 44 -

4.2 Model kodera

Prezentowany tutaj projekt został utworzony w środowisku Matlab 6.5, przy

wykorzystaniu systemu HTK v3.4 do treningu modeli fonemów. Takie rozwiązanie

umożliwiło znaczne przyspieszenie prac nad koderem, oraz wyeliminowało konieczność

implementacji skomplikowanych funkcji do estymacji parametrów modeli HMM,

co wykraczałoby poza ramy tej pracy magisterskiej.

Opracowany koder realizuje algorytm rozpoznawania fonemów w wejściowym sygnale

mowy oraz dokonuje ekstrakcji częstotliwości podstawowej sygnału w poszczególnych

segmentach analizy. Oprócz tych parametrów wyznaczane są także czasy trwania

poszczególnych fonemów. Te trzy rodzaje informacji, po uprzednim kodowaniu

entropijnym, przesyłane są do dekodera.

4.2.1. Ekstrakcja częstotliwości podstawowej

Efektywne obliczeniowo i dokładne techniki estymacji częstotliwości podstawowej

są tematem poszukiwań od wielu lat. Problem z efektywnością ekstrakcji częstotliwości

podstawowej pojawia się szczególnie w przypadku sygnałów zaszumionych,

lub składających się z kilku szeregów harmonicznych o różnych F0.

W literaturze [10], [11] często wprowadza się podział metod wyznaczania częstotliwości

podstawowej na trzy główne klasy:

1. algorytmy w dziedzinie czasu – o niskiej złożoności obliczeniowej, oparte na

obserwacjach przebiegów czasowych ilustrujących zmiany pewnych cech sygnału

jak np. liczba przejść przez zero, liczba wystąpień wartości szczytowych; zaletą

tych technik jest duża dokładność dla małych częstotliwości, gdyż wtedy dłuższe

okresy wyznaczane są z dużą precyzją;

2. algorytmy w dziedzinie częstotliwości – o większej złożoności obliczeniowej,

częstotliwość F0 wyznacza się na podstawie poszczególnych składowych

harmonicznych sygnału; zaletą tych technik jest duża dokładność dla dźwięków o

wysokiej częstotliwości podstawowej, ponieważ wtedy odległości pomiędzy

prążkami harmonicznymi mogą być wyznaczone z dużą precyzją;

3. algorytmy statystyczne – polegają na klasyfikowaniu poszczególnych ramek

sygnału do pewnych grup, dla których utworzone są estymatory częstotliwości F0.

4. Koncepcja semantycznego kodeka mowy

- 45 -

W zaimplementowanym modelu kodera zastosowano ekstrakcję częstotliwości

podstawowej opartą na analizie cepstralnej. Jest to metoda z klasy algorytmów

w dziedzinie częstotliwości. Dla sygnału mowy oferuje ona zadowalające wyniki i jest

prosta w implementacji.

Widmo krótkookresowe sygnału periodycznego charakteryzującego się częstotliwością F0

wykazuje zafalowania, ze względu na harmoniczną strukturę tego sygnału. Według teorii

Nolla [11] są one najbardziej widoczne dla logarytmu widma mocy sygnału, gdyż

przyjmują wtedy kształt kosinusoidy. W dziedzinie pseudoczęstotliwości sygnału jest to

widoczne w postaci prążka o dużej amplitudzie, który pojawia się na skali w momencie

odpowiadającym okresowi podstawowemu 1/F0.

Cepstrum rzeczywiste sygnału definiujemy w postaci odwrotnej dyskretnej transformaty

Fouriera z logarytmu amplitudy dyskretnej transformaty Fouriera sygnału. Można

to wyrazić w postaci wzoru (3):

|)))((|(log)( nxdftidftdCx = (3)

gdzie:

)(nx – n-ta próbka sygnału wejściowego

W wyniku takiego przekształcenia otrzymujemy próbki cepstrum w dziedzinie

pseudoczasu – indeks „d”.

Częstotliwość podstawową (okres podstawowy) efektywnie wyznacza się zakładając

chwilową stacjonarność sygnału w ramkach analizy, których długość waha się między 40 –

80 ms. Dłuższe okno skutkuje większą korelacją próbek w czasie, co z kolei wpływa

na bardziej wierne odwzorowanie intonacji. Zastosowanie krótszych okien analizy, np.

20 ms powoduje gorsze efekty działania algorytmu.

Widmo sygnału oryginalnego )(nx posiada drobną strukturę pobudzenia splecioną

z rezonansową odpowiedzią traktu głosowego. Wykonując przekształcenie DFT (ang.

Discrete Fourier Transform) ujawniamy poszczególne harmoniczne sygnału

zmodyfikowane o charakterystykę filtru – toru przetwarzania.

Jest to pokazane na rys.21, który przedstawia widmo amplitudowe dla pojedynczej

dźwięcznej ramki sygnału trwającej 60 ms. Składowe harmoniczne są widoczne

na wykresie w postaci prążków widma pojawiających się dla określonych wartości na skali

częstotliwości. Na zróżnicowanie amplitudy zafalowań wpływa charakterystyka toru

przetwarzania – traktu głosowego w przypadku sygnału mowy.

4. Koncepcja semantycznego kodeka mowy

- 46 -

Rys.21. DFT wyznaczone dla pojedynczej, dźwięcznej ramki sygnału mowy,

częstotliwość próbkowania w 16 kHz, długość okna – 960 próbek.

Rys.22. Wygładzone widmo DFT dla dźwięcznej ramki sygnału, częstotliwość

próbkowania w 16 kHz, długość okna – 960 próbek.

4. Koncepcja semantycznego kodeka mowy

- 47 -

Zastosowanie logarytmu na tak otrzymanym przebiegu skutkuje wygładzeniem widma,

co jest widoczne na rys.22, w postaci wyraźnego trendu zmian amplitudy prążków. Na tym

wykresie wolnozmienny przebieg reprezentuje podbicia rezonansowe, natomiast

szybkozmienne składowe są odwzorowaniem prążków pobudzenia.

Ostatecznie cepstrum sygnału oryginalnego wyznacza się przez zastosowanie odwrotnej

transformacji DFT z logarytmu widma, co powoduje rozdzielenie składowej

wolnozmiennej od składowej szybkozmiennej. Na rys.23 podbicia rezonansowe widoczne

są w postaci prążków dla małej wartości pseudoczasu (w okolicach zera), natomiast

pobudzenie reprezentowane jest w postaci pojedynczego maksimum, położonego dalej

na osi pseudoczasu. Odległość tego maksimum cepstrum od początku skali definiuje okres

podstawowy sygnału. Wyróżnienie prążka cepstrum związanego z pobudzeniem

w przypadku składników bezdźwięcznych mowy nie udaje się (rys.24).

W zaimplementowanym algorytmie poszukiwania częstotliwości F0 najpierw

wyszukuje się prążka cepstrum o maksymalnej amplitudzie, a następnie podejmowana jest

decyzja o jego dźwięcznym lub bezdźwięcznym charakterze, przez porównanie z wartością

progową. Ten próg dobiera się doświadczalnie. Jeśli jest on zbyt mały wtedy pewne

fragmenty sygnału zostają błędnie zakwalifikowane jako dźwięczne. Natomiast, gdy jego

wartość jest duża, wtedy niektóre fragmenty dźwięczne mogą być rozpoznane jako

składniki szumowe sygnału. Przykład ekstrakcji częstotliwości podstawowej z sygnału

mowy „kdt_001.wav”, wziętego z bazy treningowej kdt US English TIMIT [12]

przedstawiony jest na rys.25.

Innym parametrem, który podlega regulacji przy estymacji częstotliwości

podstawowej, jest zakres, w którym poszukiwana jest wartość F0. W tej implementacji za

przedział możliwych wartości częstotliwości przyjęto 70 – 300 Hz. Gdy maksymalny

prążek cepstrum znajduje się poza tym zakresem jako wartość częstotliwości podstawowej

przyjmuje się zero. W wyniku wielu eksperymentów, w których dokonywano zmian tego

zakresu, otrzymano lepsze lub gorsze wyniki estymacji konturu częstotliwości F0,

w zależności od charakteru sygnału. Jednak w większości przypadków przyjęty zakres 70

– 300 Hz skutkował dobrymi wyniki działania algorytmu.

Częstotliwość podstawowa jako naturalna cecha mowy, która jest rozpoznawalna

w postaci intonacji, charakteryzuje się płynnymi zmianami w trakcie wypowiadania

kolejnych fragmentów sygnału. Ten efekt ciągłości uzyskuje się w zaimplementowanym

algorytmie przez filtrację medianową otrzymanego konturu F0. Stosujemy filtr

jednowymiarowy o długości maski równej 3.

4. Koncepcja semantycznego kodeka mowy

- 48 -

Rys.23. Cepstrum dźwięcznej ramki sygnału.

Rys.24. Cepstrum bezdźwięcznej ramki sygnału.

4. Koncepcja semantycznego kodeka mowy

- 49 -

Rys.25. Kontur częstotliwości podstawowej sygnału kdt_001.wav. Częstotliwość

próbkowania równa 16 kHz.

Maska ta nie może być zbyt długa, gdyż powoduje to deformację konturu F0. Zbyt silna

filtracja wpływa na wygładzenie przebiegu, co skutkuje stratą informacji o przejściach

między fragmentami dźwięcznymi i bezdźwięcznymi mowy.

Kontur częstotliwości podstawowej wyznacza się w koderze bezpośrednio z sygnału

wejściowego, nie stosując wstępnej filtracji. Takie podejście owocuje wiernym

odtworzeniem intonacji mówcy, co jest bardzo istotne dla poprawnej syntezy sygnału

w dekoderze.

4. Koncepcja semantycznego kodeka mowy

- 50 -

4.2.2 Analiza i reprezentacja widma w postaci współczynników

MFCC

Jedną z najczęściej spotykanych technik ekstrakcji cech widmowych sygnału mowy

jest analiza cepstralna w melowej skali częstotliwości. Współczynniki otrzymane

w wyniku takiego przekształcenia sygnału określa się skrótem MFCC (ang. Mel Frequency

Cepstral Coefficients). W porównaniu do innych metod analizy widmowej sygnału jak np.

LPC, ta technika pozwala na lepsze odwzorowanie ludzkiego systemu słyszenia, który

opisany jest nieliniową krzywą. Rozdzielczość ludzkiego ucha spada ze wzrostem

częstotliwości, dla tego samego poziomu natężenia sygnału. Wyniki wielu badań

empirycznych potwierdzają fakt, że zastosowanie percepcyjnej skali częstotliwości do

analizy widma sygnału znacznie polepsza proces rozpoznawania charakterystycznych

składników mowy. Transformacja częstotliwości ze skali liniowej do skali melowej

wyrażona jest w postaci wzoru (4):

)

7001(log2595 10

Hzmel

ff += (4)

To nieliniowe odwzorowanie pokazane jest na rys.26.

Rys.26. Transformacja liniowej skali częstotliwości do skali melowej.

4. Koncepcja semantycznego kodeka mowy

- 51 -

W celu polepszenia warunków analizy wejściowego sygnału mowy, dokonuje się jego

wstępnego przetwarzania przy pomocy filtru preemfazy o transmitancji dyskretnej (5):

11)( −⋅α−= zzH (5)

gdzie:

α – współczynnik nieliniowości charakterystyki transmitancji (zazwyczaj równy 0.97)

W wyniku takiej filtracji otrzymujemy spłaszczenie widma sygnału tzn., eksponowane są

składniki wysokoczęstotliwościowe, kosztem zmniejszenia amplitudy składników widma

odpowiadających niskim częstotliwościom. W dziedzinie czasu efektem ubocznym jest

obniżenie dynamiki sygnału.

Po zastosowaniu preemfazy do wejściowego sygnału mowy wykonywana jest analiza

cepstralna w skali melowej (6). Na wstępie oblicza się dyskretną transformację Fouriera z

sygnału wejściowego, stosują algorytm FFT. Bardzo ważnym parametrem stosowanego

przekształcenia FFT jest odpowiedni dobór okna analizy. Najczęściej stosuje się okna

Hamminga o długości 20 – 30 ms, z zakładką [8], [13]. Długości zakładki wynosi

zazwyczaj pół długości okna analizy.

Kolejnym etapem analizy jest filtracja widma przy pomocy zespołu filtrów pasmowo-

przepustowych, których częstotliwości środkowe są rozmieszczone w równych odstępach

na melowej skali częstotliwości. Filtry najczęściej mają trójkątną charakterystykę, ale

spotyka się też charakterystyki prostokątne, lub o kształcie krzywej Gaussa. Liczba filtrów

wchodzących w skład zespołu decyduje o rzędzie analizy MFCC. Zwiększanie liczby

współczynników powyżej kilkunastu nie wnosi znaczącego zysku w proces ekstrakcji cech

sygnału.

∑=

−⋅

⋅⋅=N

jji j

Nim

Nc

0))12(

2cos(2 π (6)

gdzie:

ic – otrzymany współczynnik MFCC

N – rząd przekształcenia

jm – logarytm łącznej mocy sygnału, otrzymanej dla j-tego filtru z zespołu filtrów

Przed transformacją do melowej skali częstotliwości szerokość pasma przepustowego

każdego z filtrów określa się korzystając z równania (7):

4. Koncepcja semantycznego kodeka mowy

- 52 -

N

fff w

minmax −= (7)

gdzie:

wf – otrzymana szerokość pasma przepustowego filtru

maxf – częstotliwość maksymalna – zazwyczaj połowa częstotliwości próbkowania

minf – częstotliwość minimalna – zazwyczaj 0 Hz

N – liczba filtrów wchodzących w skład zespołu

Przykładowe rozmieszczenie zespołu filtrów analizy na skali częstotliwości pokazane jest

na rys.27.

Rys.27. Przykład zestawu filtrów dla analizy MFCC. Liczba filtrów wynosi 12,

częstotliwość próbkowanie 16kHz.

Powyżej częstotliwości 1 kHz szerokość pasma filtrów wzrasta w miarę zwiększania

częstotliwości. Natomiast ze względu na logarytmiczną transformację skali,

dla częstotliwości poniżej 1 kHz filtry są oddalone od siebie w równych odległościach.

Największa selektywność widoczna jest dla składowych o małych częstotliwościach, gdyż

tutaj rozdzielczość ludzkiego systemu słyszenia jest bardzo dobra. Współczynniki

wysokoczęstotliwościowe, aby niosły znaczącą informację muszą być wyznaczone dla

większego zakresu częstotliwości (rys.27).

4. Koncepcja semantycznego kodeka mowy

- 53 -

Składniki widma mocy sygnału, zawarte w pasmach przepustowych poszczególnych

filtrów są sumowane, a następnie z tych sum wyznaczane są logarytmy. Ostatecznie

wykonując dyskretną transformację kosinusową – DCT (ang. Discrete Cosine Transform)

otrzymujemy wartości MFCC.

Współczynniki o indeksach zerowych – oc niosą informację o logarytmie energii sygnału

w danej ramce analizy. Zazwyczaj nie biorą one udziału w procesie rozpoznawania mowy,

gdyż energia sygnału jest cechą ściśle zależną od mówcy, w odróżnieniu od reprezentacji

widmowej poszczególnych jednostek mowy – fonemów. Współczynniki energii są jednak

w tym projekcie wykorzystywane jako informacja prozodyczna do odtworzenia obwiedni

natężenia sygnału syntezowanego.

Aby zwiększyć efektywność algorytmu rozpoznawania mowy opartego na analizie

mel-cepstralnej często oprócz współczynników statycznych wyznacza się także ich

pochodne czasowe. Współczynniki dynamiczne, zwane współczynnikami delta otrzymuje

się stosując następujący wzór (8):

=

=−+

−⋅=∆ N

n

N

nnini

i

n

ccnc

1

2

1

2

)( (8)

gdzie:

ic∆ – otrzymany współczynnik dynamiczny MFCC w ramce czasowej i

N – tzw. szerokość okna delta

Formuła (8) jest także używana do wyznaczania wyższych pochodnych MFCC, jak np.

współczynniki akceleracji tzw. delta-delta, które reprezentują drugą pochodną po czasie

współczynników statycznych MFCC. W opracowanym modelu kodeka cechy dynamiczne

widma sygnału nie są uwzględniane podczas rozpoznawania fonemów, gdyż znacznie

upraszcza to algorytm syntezy sygnału. Eliminujemy w ten sposób konieczność

implementacji skomplikowanych, numerycznych metod estymacji współczynników

wypadkowych MFCC.

Wartości mel-cepstrum, używane w procesie rozpoznawania mowy bardzo często poddaje

się procesowi wygładzania widma, zwanego liftracją, którego celem jest wyeliminowanie

wpływu pobudzenia na wartości współczynników. Przekształcenie to jest opisane wzorem

(9):

4. Koncepcja semantycznego kodeka mowy

- 54 -

ii cL

iLl ⋅⋅

⋅+= ))sin(2

1( π (9)

gdzie:

il – otrzymany w wyniku liftracji i-ty współczynnik mel-cepstrum

ic – wartość i-tego współczynnika mel-cepstrum przed liftracją

L – rząd przekształcenia

Na rys.28 i rys.29 przedstawione są otrzymane wartości współczynników analizy mel-

cepstralnej dla wybranego fragmentu mowy z bazy treningowej. Już na podstawie takich

obrazów można rozróżnić charakterystyczne cechy sygnału, np. synchroniczne zmiany

pasm formantowych. Różnica pomiędzy tymi dwoma wykresami polega na tym, że

na pierwszym z nich widoczna jest analizę wykonano bez przeprowadzania liftracji

współczynników, natomiast podczas drugiej zastosowano przekształcenie rzędu 22.

Na prezentowanych rysunkach kolor reprezentuje amplitudę współczynników MFCC.

Wykonanie liftracji powoduje, że wykres staje się bardziej czytelny. Ekstrakcja cech jest

łatwiejsza, gdyż wartości współczynników odpowiadające poszczególnym jednostkom

mowy – fonemom, są zróżnicowane. Co więcej przedstawione tutaj obrazy potwierdzają,

że największa informacja o cechach fragmentów mowy zawarta jest w kilku pierwszych

współczynnikach MFCC. Analiza spektrogramów pozwala też łatwo wyodrębnić

fragmenty dźwięczne i bezdźwięczne sygnału. Przykładowo cechą charakterystyczną

fonemów szumowych są bardzo zbliżone wartości współczynników MFCC o indeksach 2

– 12.

4. Koncepcja semantycznego kodeka mowy

- 55 -

Rys.28. Wynik analizy mel-cepstralnej dla sygnału kdt_003.wav, wykonanej bez

zastosowania liftracji. Liczba współczynników MFCC – 12, okno analizy 20 ms

(320 próbek).

Rys.29. Wynik analizy mel-cepstralnej dla sygnału kdt_003.wav, przy

zastosowanej liftracji 22-go rzędu. Liczba współczynników MFCC – 12, okno

analizy 20 ms (320 próbek).

4. Koncepcja semantycznego kodeka mowy

- 56 -

4.2.3 Modelowanie fonemów przy pomocy ukrytych modeli

Markowa

Ukryty (niejawny) model Markowa – HMM to standardowe narzędzie analizy

statystycznej, używane do modelowania parametrów procesów losowych. Struktury te są

powszechnie wykorzystywane w kodekach mowy dla bardzo małych prędkości transmisji,

a dokładnie w algorytmach rozpoznawania i syntezy mowy. W tej klasie wokoderów, przy

ich pomocy tworzy się wzorce jednostek akustycznych, jakimi są fonemy.

Niejawny model Markowa definiuje się jako skończoną maszynę stanów – FSM (ang.

Finite State Machine), która generuje sekwencję obserwacji dyskretnych w czasie. W danej

jednostce czasu, np. ramce sygnału, maszyna zmienia stan zgodnie

z prawdopodobieństwem przejść między stanami, a następnie generuje wektor obserwacji

wg rozkładu prawdopodobieństwa wyjściowego w danym stanie. Dla każdego modelu

HMM, o liczbie stanów równej N możemy określić następującą przestrzeń

probabilistyczną (10):

),,{ ΠBA=λ (10)

gdzie: N

jijia 1,, }{ ==A – rozkład prawdopodobieństwa przejść między stanami modelu HMM

Njjb 1)}({ == oB – rozkład prawdopodobieństwa wektorów obserwacji

Nii 1}{ =π=Π – rozkład prawdopodobieństwa wejść do poszczególnych stanów modelu

Łączna notacja prezentowana we wzorze (10) jest stosowana do opisu parametrów modeli

HMM. Ze względu na charakter przejść między stanami definiuje się różne typy modeli.

Dla celów rozpoznawania i syntezy mowy istotny jest tzw. model progresywny, którego

graf przedstawiony jest na rys.30.

Ukryte modele Markowa często w literaturze [14], [15] określa się mianem procesów

podwójnie stochastycznych (11):

Tttt BA 1),( = (11)

gdzie dziedziną procesów losowych tA i tB jest zbiór chwil Tt ∈ , natomiast

przeciwdziedziną zbiór stanów modelu. Te dwa procesy losowe opisane są wtedy przez

rozkłady prawdopodobieństwa (10).

4. Koncepcja semantycznego kodeka mowy

- 57 -

2 3 41 5

22a 33a 44a

23a34a

)(2 ob )(3 ob )(4 ob

45a

Rys.30. Pięciostanowy progresywny (ang. left-to-right) model HMM.

Niejawność modeli HMM polega na tym, że obserwujemy jedynie realizacje procesu

stochastycznego tB , podczas gdy realizacje procesu tA wpływające na realizacje tB

pozostają niewidoczne.

Wyjściowy rozkład prawdopodobieństwa )(ojb może być dyskretny lub ciągły,

w zależności od charakteru obserwacji. Ze względu na typ rozkładu prawdopodobieństwa

wyjściowego rozróżniamy klasę modeli HMM o rozkładach ciągłych – CD-HMM (ang.

Continous Density Hidden Markov Model) lub dyskretnych – DD-HMM (ang. Discrete

Density Hidden Markov Model).

Najczęściej w implementacjach algorytmów rozpoznawania mowy stosuje się modele

z rozkładem ciągłym, gdzie prawdopodobieństwa wyjściowe modelu HMM są mieszaniną

wielowymiarowych rozkładów Gaussa wg wzoru (12):

∑=

=M

mjmjmjmj Nwb

1),|()( Uµoo (12)

gdzie:

M – liczba rozkładów Gaussa wchodzących w skład mieszaniny

jmw – waga składnika m w stanie j

jmµ – wektor (o długości d ) wartości średniej składnika m w stanie j

jmU – macierz (o rozmiarze dxd ) kowariancji składnika m w stanie j

4. Koncepcja semantycznego kodeka mowy

- 58 -

W opracowanym projekcie kodeka zastosowany jest uproszczony model HMM, w którym

prawdopodobieństwa wektorów obserwacji w poszczególnych stanach modelu wyrażone

są w postaci pojedynczego, wielowymiarowego rozkładu Gaussa, a więc (13):

),|()( jjj Nb Uµoo = (13)

gdzie:

jµ – wektor wartości średnich obserwacji w stanie j (o długości d )

jmU – macierz kowariancji wektora obserwacji w stanie j (o rozmiarze dxd )

We wzorach (12) i (13) gaussowski, wielowymiarowy rozkład prawdopodobieństwa

określa się jako (14):

))()(21exp(

||)2(

1),|( 1jj

TjdjjN µoUµo

UUµo −−−

π= − (14)

gdzie:

d – wymiar wektora obserwacji o

Podstawowym zagadnieniem w teorii HMM jest estymacja parametrów modeli w postaci

prawdopodobieństw przejść między stanami oraz prawdopodobieństw wyjść

z poszczególnych stanów, które dają maksymalne prawdopodobieństwo otrzymania

pewnej sekwencji obserwacji na wyjściu. To całkowite prawdopodobieństwo

wygenerowania sekwencji wyjściowej ],...,,[ 21 ToooO = , z modelu HMM o parametrach

],,[ ΠBA=λ jest wyrażone w postaci wzoru (15):

∑∏=

−=λ

Q

T

ttqqq ttt

baP1

)()|(1

oO (15)

gdzie:

)( tqtb o – prawdopodobieństwo otrzymania wektora obserwacji o w chwili t , przebywając

w stanie q modelu HMM

tt qqa1−

– prawdopodobieństwo przejścia ze stanu poprzedniego w chwili 1−t , do stanu

aktualnego w chwili t

Sumowanie iloczynu prawdopodobieństw tt qqa

1− i )( tqt

b o odbywa się po wszystkich

możliwych sekwencjach stanów q .

4. Koncepcja semantycznego kodeka mowy

- 59 -

Estymacja parametrów modeli HMM jest zagadnieniem trudnym. Nie istnieją analityczne

metody ich wyznaczania, bazujące na kryterium największej wiarogodności – ML (ang.

Maximum Likelihood). Rozwiązaniem są metody iteracyjne, które pozwalają otrzymać

zestaw parametrów λ , lokalnie maksymalizując prawdopodobieństwo całkowite P(O| λ).

Przykładem jest metoda EM (ang. Expectation Maximization), nazywana często

algorytmem Bauma-Welcha, w której wykorzystuje się także algorytm prefiksowo-

sufiksowy do modyfikacji wartości parametrów rozkładów [14].

W przypadku ciągłego sygnału mowy, sekwencje parametrów poszczególnych

jednostek mowy mogą się różnić, w zależności od kontekstu zarówno lingwistycznego, jak

i fonetycznego. Aby uwzględnić to zjawisko, często wykorzystuje się wzorce zależne

od kontekstu nazywane modelami trójfonemowymi HMM. Polepszają one efektywność

procesu rozpoznawania mowy, jednak bardzo poważnym problemem w takim rozwiązaniu

jest przygotowanie odpowiednio dużej bazy danych treningowych, aby zapewnić pokrycie

wszystkich możliwych permutacji trójek fonemów. Poza tym, wadą jest także duży rozrzut

częstotliwości występowania poszczególnych jednostek kontekstowych w sygnałach

treningowych, co skutkuje bardzo zróżnicowanym stopniem wytrenowania tych modeli.

Aby zmniejszyć skalę tego problemu stosuje się techniki gromadzenia stanów modeli

HMM w grupy, w których następuje wymiana parametrów modeli między stanami.

Przykładem takiej metody jest grupowanie wykorzystujące drzewa decyzyjne (ang.

decision tree-based context clustering) [15].

Ze względu na stosunkowo niewielkie rozmiary wykorzystywanej w projekcie bazy

danych treningowych oraz opisane powyżej wady stosowania modeli trójfonemowych,

w opracowanej koncepcji kodera wybrano modele pojedynczych fonemów, tworząc tzw.

monofony HMM. W projekcie wykorzystywana jest biblioteka HTK v.3.4 [9], przy

pomocy której dokonuje się inicjalizacji i reestymacji parametrów modeli. Baza danych

treningowych składa się z 452 wypowiedzi, pochodzących od jednego mówcy, zebranych

w tzw. korpusie CMU/CSTR kdt US English TIMIT database [12]. Ten zbiór zawiera nie

tylko fragmenty mowy w formacie WAV, ale również pliki z etykietami fonemów, a także

transkrypcje tekstowe wypowiedzi. Dla sygnałów z tej bazy wykonuje się analizę mel-

cepstralną otrzymując współczynniki MFCC, które są później wykorzystywane

w estymacji parametrów modeli fonemów. Sygnały treningowe wchodzące w skład bazy

zawierają łącznie 41 typów fonemów, uwzględniając jednostkę ciszy – /sil/ (tab.1).

4. Koncepcja semantycznego kodeka mowy

- 60 -

Tab.1. Typy fonemów dostępne w bazie CMU/CSTR kdt US English TIMIT.

Fonemy dźwięczne Fonemy bezdźwięczne

/aa/, /ae/, /ah/, /ao/, /aw/, /ax/, /ay/, /b/,

/d/, /dh/, /eh/, /er/, /ey/, /g/, /ih/, /iy/,

/jh/, /l/, /m/, /n/, /ng/, /ow/, /oy/, /r/,

/uh/, /uw/, /v/, /w/, /y/, /z/, /zh/

/ch/, /f/, /hh/, /k/, /p/, /s/ , /sh/, /sil/, /t/, /th/

Aby zdefiniować topologię modeli HMM używanych w projekcie, system HTK określa

sposób tworzenia w plikach tekstowych specjalnych struktur, które m.in. definiują liczbę

stanów modelu, możliwe przejścia między nimi oraz rodzaj parametrów generowanych

w postaci wektorów obserwacji. Definicje modeli są następnie uaktualniane podczas

reestymacji parametrów.

Po zakończeniu procesu treningu HMM zmodyfikowane rozkłady poszczególnych

modeli są wczytywane do środowiska Matlab 6.5, gdzie odbywa się główne kodowanie

sygnału mowy. Przykładowy prototyp modelu HMM używany w projekcie umieszczony

jest w dodatku pracy.

Definicja modelu zawsze rozpoczyna się nagłówkiem ~o, który zawiera informację

o ogólnych parametrach modelu:

• <VECSIZE> – ten symbol definiuje długość wektora wartości średnich parametrów

przechowywanych w modelu;

• <NULLD> – informacja, że czasy trwania stanów nie są reprezentowane

w modelu;

• <MFCC_0> – typ parametrów, które są przechowywane w modelu, w tym

przypadku są to współczynniki MFCC. System HTK [9] pozwala definiować

modele HMM także dla innych typów parametrów reprezentujących cechy sygnału

mowy jak np. współczynniki LPC;

• <FullC> – ten symbol wskazuje, że w strukturze modeli HMM macierze

kowariancji dla wielowymiarowych rozkładów wyjściowych są przechowywane

w postaci górnej półmacierzy. Inną opcją jest reprezentacja tej macierzy w postaci

głównej przekątnej – <DiagC>.

Po tych informacjach w prototypie modelu występuje nagłówek ~h, który definiuje nazwę

modelu HMM. Dalej umieszczamy znaczniki początku modelu <BeginHMM>, za którym

występuje znacznik liczby stanów <NumStates>. Kolejnymi elementami struktury modelu

4. Koncepcja semantycznego kodeka mowy

- 61 -

są wektory wartości średnich obserwacji <MEAN>, oraz odwrotne macierze kowariancji

<InvCovar> dla stanów emitujących modelu. W projekcie kodera korzystamy właśnie

z odwrotnej macierzy kowariancji gdyż upraszcza to obliczenia wyjściowych

prawdopodobieństw modeli wg rozkładu Gaussa (wzór 13).

Współczynniki wektora wartości średnich i odwrotnej macierzy kowariancji są inicjowane

zerami, ale nie ma to większego znaczenia, gdyż sensowne wartości są tam wpisywane

dopiero podczas reestymacji modeli.

Na końcu definicji modelu HMM, za znacznikiem <TRANSP> znajduje się kwadratowa

macierz zawierająca prawdopodobieństwa przejść między stanami, której wymiar równy

jest liczbie stanów modelu. Z macierzy tej zawsze można wywnioskować typ modelu,

który w tym przypadku jest prostym modelem progresywnym, z prawdopodobieństwem

przejścia ze stanu 1 do stanu 2 równym 1.0. Definicję struktury modelu kończy znacznik

<EndHMM>.

Po utworzeniu prototypów modeli dla wszystkich fonemów zawartych w tab.1

wykonywane są następujące kroki przetwarzania:

1. Inicjalizacja modeli przy pomocy narzędzia HCompV.

Algorytm ten nie wymaga przechowywania w bazie plików etykiet dla

poszczególnych fonemów. Każdy sygnał treningowy poddawany jest segmentacji na

jednostki mowy o tej samej długości, a parametry prototypów tych jednostek – wektor

wartości średnich obserwacji i macierz kowariancji obserwacji, przyjmują wartości

globalne wyznaczone dla całego fragmentu mowy. Ten proces inicjalizacji nazywany

jest często płaskim startem (ang. flat-start). Przykładowa komenda wywołująca

realizująca opisane tutaj przetwarzanie jest przedstawiona poniżej:

HCompV -f 0.01 -m -S trainlist -M hmm0 proto

2. Pierwsza reestymacja modeli przy pomocy narzędzia HERest.

Mając zainicjowane modele dla wszystkich fonemów można przystąpić

do reestymacji ich parametrów. W systemie HTK ten proces może zostać wykonany

przez dwa narzędzia: HRest i HERest. W przypadku HRest najpierw wyznacza się

prawdopodobieństwo przebywania w danym stanie modelu, w aktualnej ramce

sygnału, korzystając z algorytmu wprzód-wstecz (ang. forward-backward),

a następnie metodą Bauma-Welcha dokonuje reestymacji parametrów modelu. Takie

uaktualnianie parametrów modeli HMM określa się mianem estymacji izolowanej

4. Koncepcja semantycznego kodeka mowy

- 62 -

jednostki (ang. isolated unit reestimation). Użycie tego narzędzia musi być

poprzedzone wywołaniem funkcji HInit do inicjalizacji modeli HMM.

Alternatywą dla reestymacji izolowanych modeli jest wykorzystanie narzędzia HERest,

które realizuje algorytm tzw. reestymacji wbudowanej (ang. embedded training). Tutaj

modyfikacja parametrów dokonywana jest jednocześnie dla wszystkich modeli

fonemów, jakie występują w danej wypowiedzi treningowej. Dla każdego takiego

fragmentu mowy z bazy danych, przy wykorzystaniu dostępnych plików etykiet

fonemów tworzy się transkrypcję modeli występujących w sygnale treningowym.

Na tej podstawie buduje się złożone struktury HMM, łącząc pojedyncze modele

fonemów, które występują w utworzonej transkrypcji dla aktualnie przetwarzanego

fragmentu mowy. Następnie, na tak przygotowanym modelu złożonym HMM realizuje

się algorytm prefiksowo-sufiksowy, a otrzymane w ten sposób wagi modyfikują

wartości parametrów modelu. Algorytm treningu wbudowanego przedstawiony jest

w postaci schematu blokowego na rys.31, natomiast przykładowa komenda realizująca

opisane tutaj przetwarzanie ma formę:

HERest -L labs -S trainlist -H hmm_models\hmacs.mmf -M

hmm_out monophone_list

Aby wykonać proces reestymacji należy najpierw utworzyć plik zawierający prototypy

wszystkich modeli HMM występujących w bazie. W systemie HTK v3.4 taki plik

nazywany jest MMF (ang. Master Macro File). Parametrem wejściowym dla narzędzia

HERest jest także lista modeli fonemów, lista sygnałów treningowych przy użyciu,

który wykonana zostanie reestymacja parametrów, oraz zbiór plików etykiet

dla wszystkich sygnałów treningowych. Gdy te dane zostaną załadowane, funkcja

HERest przetwarza, każdy plik z danymi treningowymi – współczynnikmai MFCC,

uaktualniając w ten sposób parametry statystyczne złożonego modelu HMM.

4. Koncepcja semantycznego kodeka mowy

- 63 -

TWORZENIE ZŁOŻONYCH MODELI

HMM

kdt_001.labkdt_002.lab

kdt_003.labPROTOTYPY MODELI HMM FONEMÓW . . .

kdt_452.lab

ALGORYTM PREFIKSOWO -

SUFIKSOWY

MODYFIKACJA PARAMETRÓW MODELI

kdt_001.mfcckdt_002.mfcc

kdt_003.mfcc

kdt_004.mfcc. . .

UAKTUALNIONY ZESTAW MODELI HMM

ETYKIETY FONEMÓW

DANE TRENINGOWE

Rys.31. Algorytm reestymacji wbudowanej dla modeli HMM.

3. Kolejne iteracje reestymacji wbudowanej modeli.

Aby dobrze wytrenować modele HMM fonemów należy powtórzyć proces

reestymacji wbudowanej kilkakrotnie, podając za każdym razem na wejście

uaktualnione w ostatnim kroku parametry modeli. Na podstawie przeprowadzonych

symulacji można powiedzieć, że najlepiej wytrenowane parametry otrzymuje się

po dwukrotnej lub trzykrotnej reestymacji modeli. Gdy liczba iteracji algorytmu jest

większa, wtedy występuje zjawisko przetrenowania modeli HMM. W takim przypadku

wartości parametrów są zbyt bliskie danym treningowym, a proces rozpoznawania

fonemów staje się mniej efektywny dla sygnałów testowych spoza bazy treningowej.

Po wykonaniu treningu modeli HMM dla wszystkich fonemów znajdujących się w bazie,

plik zawierający uaktualnione parametry zostaje wczytany do programu w środowisku

4. Koncepcja semantycznego kodeka mowy

- 64 -

Matlab, gdzie następuje integracja innych algorytmów przetwarzania w ramach

zaimplementowanego kodeka mowy.

Wart uwagi jest fakt, że biblioteka HTK jest bardzo użytecznym systemem do treningu

modeli HMM i rozpoznawania mowy. Przedstawione tutaj przykłady definicji modeli

i estymacji parametrów to jedne z najbardziej podstawowych funkcjonalności tego

systemu. Można powiedzieć, że ostateczna forma tej pracy powstała dzięki wnioskom

i doświadczeniom zdobytym podczas pracy z systemem HTK. Dzięki wielu narzędziom

do edycji i rozbudowy modeli HMM, oraz rozpoznawania mowy z tej biblioteki zostały

przeprowadzone doświadczenia dotyczące tematu tej pracy. Na podstawie badań

wysunięto m.in. wniosek, że nie opłaca się budować modeli trójfonemowych – zależnych

od kontekstu, dla baz danych treningowych składających się z małej liczby wypowiedzi.

Okazało się także, że dla takich baz nieefektywne jest realizowanie grupowania stanów

fonemów (ang. tying). Znaczącej poprawy w proces rozpoznawania nie wnosi także

tworzenie modeli dla krótkich fragmentów ciszy – pauz między poszczególnymi

fonemami.

Podczas pracy z narzędziem HVite badano skuteczność algorytmu rozpoznawania mowy

dla różnych sygnałów testowych. Bardzo znaczącą wadą systemu HTK jest fakt, że

zastosowany tutaj algorytm rozpoznawania mowy wymaga tworzenia tzw. sieci słów, które

budowane są na podstawie gramatyki wejściowej wypowiedzi. Te grafy możliwych

sekwencji słów, są następnie zamieniane na możliwe kombinacje stanów modeli HMM,

których prawdopodobieństwa są wyznaczane podczas procesu rozpoznawania.

Przykład sieci słów dla wypowiedzi z pliku kdt_005.wav, pochodzącego z bazy kdt US

English TIMIT przedstawiony jest na rys.32. W sieci tej zawsze na początku i końcu

wypowiedzi znajduje się fragment ciszy, natomiast pozostałe ciągi słów mogą być

tworzone dowolnie na podstawie dostępnej gramatyki.

Stosowanie tego typu grafów znacznie zawęża obszar poszukiwania fonemów

w przetwarzanym fragmencie mowy, co wpływa na większą efektywność rozpoznawania.

Algorytmy, które wymuszają posiadanie pewnych informacji a’priori o sygnale

wejściowym znajdują zastosowanie w systemach biometrycznych, gdzie rozpoznawaniu

podlega mowa oparta na z góry określonym słowniku. W przypadku tradycyjnych technik

kodowania mowy zdefiniowanie gramatyki nieznanego sygnału wejściowego przed

procesem przetwarzania jest w większości przypadków niemożliwe.

4. Koncepcja semantycznego kodeka mowy

- 65 -

([SIL] < SHE | IS | TINNER | THAN | I | AM > [SIL])

SIL SIL

IS

TINNER

THAN

I

AM

SHE

Rys.32. Przykład gramatyki i sieci słów utworzonej dla fragmentu mowy

kdt_005.wav z bazy danych treningowych kdt US English TIMIT.

4.2.4 Rozpoznawanie fonemów

Podczas budowy modelu kodera w środowisku Matlab zaistniała konieczność

implementacji nieco innego algorytmu rozpoznawania fonemów niż ten, który

zastosowany jest w systemie HTK v.3.4. Celem prac nad nowym algorytmem było m.in.

wyeliminowanie konieczności tworzenia sieci słów na podstawie gramatyki sygnału

wejściowego. Opracowana technika bazuje na algorytmie Viterbiego, który jest

wykonywany równolegle dla wszystkich modeli HMM fonemów z bazy treningowej.

Pierwszym etapem prezentowanej metody jest wyznaczenie wyjściowych

prawdopodobieństw – a’posteriori rozkładu Gaussa wg wzoru (14). Wektory obserwacji w

tym przypadku to wartości współczynników MFCC otrzymane w wyniku analizy mel-

cepstralnej sygnału wejściowego, gdzie d określa rząd analizy. Prawdopodobieństwa

wyjściowe wyznaczane są jedynie dla stanów emitujących (o indeksach 2, 3, 4) modelu.

4. Koncepcja semantycznego kodeka mowy

- 66 -

Obliczenia konieczne do otrzymania wyniku są proste, gdyż większość potrzebnych

danych jest pobierana bezpośrednio z wytrenowanych modeli HMM fonemów.

Do obliczeń wykorzystujemy wektory wartości średnich współczynników MFCC dla

konkretnych stanów modelu fonemu, odwrotne macierze kowariancji wielowymiarowego

rozkładu Gaussa, a także wartości stałe, w postaci wyznacznika macierzy kowariancji.

Wyjściowe prawdopodobieństwa wyznaczane są dla trzech stanów emitujących

jednocześnie. Przetwarzane są zawsze trzy kolejne wektory obserwacji w postaci

współczynników MFCC wejściowego sygnału mowy. Otrzymane prawdopodobieństwa

zapisywane są w macierzy o wymiarach NxTxQ )2( − , gdzie Q oznacza liczbę

stanów w prototypie modelu HMM, T określa liczbę ramek czasowych wejściowej mowy,

natomiast N to liczba modeli fonemów znajdujących się w bazie. Należy tutaj zaznaczyć,

że prawdopodobieństwa stanów nieemitujących mają na stałe przypisaną wartość 1

dla każdej chwili czasowej.

Po obliczeniu prawdopodobieństw wyjściowych wg wielowymiarowego rozkładu

Gaussa, równolegle dla wszystkich modeli HMM realizowany jest algorytm Viterbiego.

Dla każdego fonemu szukamy najbardziej prawdopodobnej sekwencji stanów wg

następującej rekurencji (16):

)(})1({max)( tjijiij batt o−φ=φ (16)

gdzie:

)(tjφ – wypadkowe prawdopodobieństwo najbardziej prawdopodobnej sekwencji stanów,

kończącej się w stanie j. Inaczej, jest to maksymalne prawdopodobieństwo otrzymania

wektorów obserwacji tooo ..., 21 , przebywając w stanie j, w chwili t;

ija – prawdopodobieństwo przejścia ze stanu poprzedzającego i do stanu aktualnego j;

)( tjb o – prawdopodobieństwo wyjściowe wektora obserwacji o , podczas przebywania w

stanie j, w chwili t.

Powyższy wzór wykorzystuje regułę MAP. Inicjalizacja algorytmu opisana jest wzorem

(17):

)()1( 11 ojjj ba=φ (17)

4. Koncepcja semantycznego kodeka mowy

- 67 -

Algorytm Viterbiego umożliwia znalezienie najbardziej prawdopodobnej ścieżki

w kracie, która na osi odciętych zawiera kolejne ramki sygnału mowy, natomiast na osi

rzędnych występują stany modelu HMM fonemu. Przykład takiej kraty stanów znajduje się

na rys.33. W danej chwili t wyznaczane są częściowe prawdopodobieństwa ścieżek

w grafie prowadzących do wszystkich stanów modelu wg wzoru (16).

Prawdopodobieństwa te wyrażone są w skali logarytmicznej, aby uniknąć zaokrąglania

do zera bardzo małych wartości. Graf przejść przez kratę rozrasta się od lewej do prawej

strony osi odciętych. W oryginalnym algorytmie Viterbiego zakończenie obliczeń

równoznaczne jest z osiągnięciem końca sekwencji zdarzeń w chwili T , podczas gdy

w tym rozwiązaniu obliczenia przerywane są w momencie osiągnięcia stanu końcowego

(o numerze 5) modelu HMM.

54

32

1

STAN

RAMKACZASOWA

1 2 3 4 5 6

a22

a23

a34

a45

b2(o6)

b3(o6)

b4(o6)

Rys.33. Krata stanów wykorzystywana podczas poszukiwania najbardziej

prawdopodobnej ścieżki w modelu HMM wg algorytmu Viterbiego.

Jak wspomniano wcześniej, poszukiwanie najbardziej prawdopodobnej ścieżki w

grafie rozpoczyna się równocześnie dla wszystkich modeli fonemów. W pierwszym kroku

do obliczeń brana jest cała macierz wyznaczonych wcześniej prawdopodobieństw

wyjściowych rozkładu Gaussa. Po osiągnięciu stanów końcowych przez kolejne modele

4. Koncepcja semantycznego kodeka mowy

- 68 -

fonemów, spośród otrzymanych końcowych wartości prawdopodobieństw przejść

wybierane jest maksimum. Model, dla którego realizacja algorytmu Viterbiego dała

największe prawdopodobieństwo końcowe uważa się za rozpoznany fonem w aktualnie

rozważanym zakresie czasu. Wraz z najbardziej prawdopodobną ścieżką przejść przez

stany modelu HMM otrzymujemy także, końcową wartość czasu, w postaci liczby ramek,

jaka potrzebna była na osiągnięcie stanu końcowego. O tę liczbę kolumn pomniejszana jest

macierz prawdopodobieństw wyjściowych rozkładu Gaussa, przed kolejną iteracją

algorytmu. W ten sposób rozpoznawane są fonemy w kolejnych fragmentach

analizowanego sygnału wejściowego. Indeksy rozpoznanych fonemów zapisywane są

w wyjściowej tablicy. Informacja o czasie trwania poszczególnych jednostek akustycznych

jest tutaj wyznaczana bardzo zgrubnie w postaci liczby modeli HMM występujących

kolejno po sobie. Przykładowo gdy danemu indeksowi odpowiada długość trwania równa

4, oznacza to, że podczas analizy sygnału, rozpoznano czterokrotne, kolejne występowanie

fonemu o danym indeksie. Jest to równoznaczne z trwaniem tego fonemu przez 20 ramek

czasowych sygnału. Wywołania omówionego tutaj algorytmu powtarzane są do momentu

osiągnięcia ostatniej ramki kodowanego sygnału mowy.

Opracowaną technikę rozpoznawania fonemów testowano dla wielu sygnałów z bazy

kdt US English TIMIT [12]. Na podstawie przeprowadzonych symulacji można

powiedzieć, że często spotykane są błędy leksykalne w ramach konkretnej grupy

fonemów, których informacja akustyczna jest bardzo podobna. Jest to dobrze widoczne na

poniższych transkrypcjach fonemów, otrzymanych w wyniku kodowania przykładowych

sygnałów mowy z bazy:

Sygnał kdt_003.wav – „This was easy for me”.

Transkrypcja oryginalna:

sil dh ih s w aa z iy z iy f ao r m iy sil

Transkrypcja otrzymana przy zastosowaniu opracowanego algorytmu:

sil th ih z s z w l z iy z iy jh f r ng m y ng hh ao sil

Sygnał kdt_431.wav – „The fifth jar contains big juicy peaches”.

Transkrypcja oryginalna:

sil dh ax f ih f th jh aa r sil k ax n t ey n z b ih g jh uw s iy p iy ch ax z sil

4. Koncepcja semantycznego kodeka mowy

- 69 -

Transkrypcja otrzymana przy zastosowaniu opracowanego algorytmu:

sil dh ih sil f ih ey th s sil ch sh ey eh aa ey k n p hh ey n d z b ey iy g b p ch zh iy y z s

iy p jh y iy y t sh zh jh z s sil

Typowe błędy w otrzymanych transkrypcjach to rozpoznanie fonemu /th/ zamiast /dh/ lub

fonemu /y/ zamiast /iy/. Zdarzają się także przypadki, w których poszczególne fonemy

składające się na sygnał oryginalny, są rozpoznawane w postaci zbioru innych fonemów,

o łącznej podobnej informacji akustycznej, np. /ch/ – /t/, /sh/. Błędy tego typu są

uzasadnione słabo wytrenowanymi modelami HMM fonemów, na co ma wpływ wielkość

stosowanej bazy danych sygnałów treningowych.

Ścisłą zależność efektywności rozpoznawania fonemów od stopnia wytrenowania modeli

HMM potwierdza przypadek jednostki ciszy – /sil/, która występuje w każdym sygnale

treningowym z bazy, przez co jej parametry statystyczne są bardzo dokładnie estymowane

i jest ona bezbłędnie rozpoznawana.

Typy otrzymywanych błędów podczas procesu rozpoznawania sugerują, że algorytm

dobrze radzi sobie z rozróżnianiem fonemów należących do różnych klas, np. dźwięczny-

bezdźwięczny, a zawodzi przy analizie fonemów bardzo zbliżonych akustycznie, np.

samogłosek i dyftongów. Jednak w kontekście późniejszej syntezy sygnału mowy, takie

przekłamania jednostek leksykalnych o bardzo podobnej informacji akustycznej są

nieistotne i niemal niezauważalne. Na pogorszenie subiektywnej jakości sygnału

odtworzonego mają wpływ jedynie te błędy, które skutkują syntezą głoski dźwięcznej

w miejsce szumowej, lub odwrotnie.

Największą zaletą opracowanego algorytmu jest fakt, iż do jego realizacji nie wykorzystuje

się sieci słów, w odróżnieniu do techniki z systemu HTK. Główną wadą przedstawionego

rozwiązania są liczne błędy podczas procesu rozpoznawania, które jednak nie powodują

zakłócenia istotnej informacji akustycznej kodowanej mowy. W rezultacie efektywność

opracowanego algorytmu można uznać za zadowalającą.

4. Koncepcja semantycznego kodeka mowy

- 70 -

4.2.5 Kodowanie binarne strumienia

Ostatnim etapem przetwarzania sygnału mowy w modelu kodera dla bardzo małej

prędkości transmisji, przedstawionym na rys.20, jest kodowanie binarne – entropijne

wyjściowego strumienia danych. Kodowaniu poddaje się wszystkie informacje przesyłane

do układu dekodera, a więc:

• otrzymane wartości częstotliwości podstawowej (F0) dla kolejnych ramek

analizy sygnału;

• czasy trwania rozpoznanych fonemów w postaci liczby kolejnych wystąpień

odpowiadających modeli HMM;

• indeksy rozpoznanych modeli HMM fonemów.

W projekcie stosowany jest koder Huffmana, na wyjściu którego otrzymujemy kody

o zmiennej długości słowa, dla danych wejściowych w postaci liczb całkowitych,

nieujemnych. Elementem kluczowym wpływającym na sprawność kodowania jest tutaj

zakładana maksymalna długość słowa kodowego.

W przeprowadzonych symulacjach zastosowano 8-bitowe słowo, co daje dozwolone

wartości parametrów wyjściowych kodera w zakresie od 0 do 255. Indeksy fonemów

różnią się w zakresie od 1 do 41, natomiast czasy trwania modeli HMM to zazwyczaj

wartości mniejsze od 15. Zatem współczynniki przesyłane w tych dwóch strumieniach z

powodzeniem mogą być kodowane z wykorzystaniem 8-bitowej reprezentacji. Jedyną

możliwość przekroczenia zakresu wartości otrzymujemy w przypadku kodowania

częstotliwości podstawowej sygnału. Zakres zmian F0 jest ściśle zależny od płci mówcy.

Na podstawie przeprowadzonych symulacji można jednak powiedzieć, że najczęściej ta

wartość częstotliwości zawiera się pomiędzy 100, a 200 Hz, co pozwala stosować

zakładaną długość słowa kodowego dla kodera Huffmana.

Wejściowe strumienie danych, które podlegają kodowaniu binarnemu na tym etapie

przetwarzania charakteryzują się różną entropią źródła, a co za tym idzie efektywność

kompresji jest inna dla każdego z trzech strumieni danych. Poglądowa informacja

o sprawności kodowania strumieni danych otrzymywanych w zaimplementowanym

koderze przedstawiona jest na rys.34, w postaci krzywych kompresji. Przebiegi

sporządzono na podstawie dziesięciu sygnałów testowych z bazy kdt US English TIMIT.

Otrzymane wyniki pokazują, że największy rozrzut wartości uzyskiwany jest

dla strumienia indeksów modeli HMM fonemów.

4. Koncepcja semantycznego kodeka mowy

- 71 -

Rys.34. Krzywe kompresji dla strumieni wyjściowych kodera.

Mimo pewnych odchyleń, np. w przypadku jednostki ciszy, której częstość występowania

w strumieniu jest największa, można powiedzieć, że prawdopodobieństwa otrzymania

poszczególnych indeksów są dość zrównoważone. Źródło, które generuje

równoprawdopodobne symbole charakteryzuje się największą entropią, co w konsekwencji

wpływa na najniższy stopień kompresji strumienia binarnego indeksów fonemów.

Wektor częstotliwości podstawowych sygnału zawiera stosunkowo dużo wartości

zerowych, które sygnalizują bezdźwięczne fragmenty sygnału. Wpływa to na zmniejszenie

entropii źródła. Pozostałe przesyłane wartości F0 odpowiadające fragmentom dźwięcznym

mowy są do siebie zbliżone, co również powoduje zmniejszenie entropii. W efekcie

stopień kompresji otrzymany dla strumienia częstotliwości podstawowych jest większy niż

dla strumienia indeksów.

Najlepszy stopień kompresji otrzymujemy kodując czasy trwania rozpoznanych fonemów.

Tutaj rozrzut wartości jest bardzo mały. Typowy czas trwania modelu, wyrażony w liczbie

jego kolejnych wystąpień wynosi zazwyczaj 1 – 2. Powoduje to najmniejszą entropię

źródła spośród trzech generowanych strumieni i co za tym idzie najlepszą efektywność

kodowania strumienia binarnego.

0

0,5

1

1,5

2

2,5

3

3,5

1 2 3 4 5 6 7 8 9 10Numer wejściowego sygnału testowego

Stop

ień

kom

pres

ji

Indeksy modeliCzasy trwania modeliCzęstotliwość podstawowa

4. Koncepcja semantycznego kodeka mowy

- 72 -

Średnie wartości stopnia kompresji uzyskane dla kodowanych strumieni zależą

również od długości wektorów danych poddawanych kodowaniu. Najwyższą efektywność

kodowania otrzymujemy dla długich sygnałów testowych, gdzie statystyka wystąpień

poszczególnych symboli (indeksów, wartości częstotliwości, wartości czasów trwania)

charakterzuje się mniejszym rozrzutem, niż w przypadku przetwarzania krótkich sygnałów

testowych.

4.3 Model dekodera

W ramach niniejszej pracy magisterskiej, oprócz przedstawionego w rozdziale 4.2

układu kodera mowy, zaimplementowano także model dekodera w celu weryfikacji

poprawności działania systemu oraz oceny jego efektywności. Moduł ten realizuje

popularną technikę rekonstrukcji sygnału, która wzorowana jest na syntezie LPC. Tor

przetwarzania (trakt głosowy) reprezentowany jest w postaci filtru o skończonej

odpowiedzi impulsowej i współczynnikach zmiennych w czasie. Wartości parametrów

filtru są odtwarzane dla kolejnych ramek sygnału, przy pomocy współczynników mel-

cepstralnych przechowywanych w modelach HMM fonemów. Wybór odpowiednich

modeli z bazy znajdującej się w dekoderze, dokonywany jest na podstawie indeksów

fonemów przesyłanych w strumieniu binarnym z kodera. Wykorzystany algorytm

odtwarzania widma sygnału przedstawiony jest w rozdziale 4.3.2.

Źródłem energii dla filtru syntezy jest generowany w dekoderze sygnał pobudzenia, który

modeluje składniki dźwięczne i bezdźwięczne mowy. W tej implementacji dźwięczny

charakter pobudzenia odtwarzany jest przez ciąg impulsów o zmiennym okresie

podstawowym, natomiast fragmenty bezdźwięczne sygnału pobudzane są szumem.

Dokładny opis użytej tutaj metody znajduje się w rozdziale 4.3.1.

Pierwszym blokiem przetwarzania w opracowanym modelu jest dekoder binarny.

W wyniku jego działania otrzymujemy wektor częstotliwości podstawowych

zakodowanego sygnału mowy, wektor indeksów rozpoznanych fonemów oraz wektor

zawierający liczbę wystąpień poszczególnych fonemów. Zdekodowane parametry są

danymi wejściowymi dla kolejnych modułów wchodzących w skład dekodera, których

opis jest tematem tego rozdziału.

4. Koncepcja semantycznego kodeka mowy

- 73 -

4.3.1 Wytwarzanie sygnału pobudzenia

W modelu wytwarzania mowy przedstawionym na rys.12 istotne jest zapewnienie

prawidłowego pobudzenia, które pozwoli dobrze reprezentować fragmenty dźwięczne oraz

bezdźwięczne mowy. Przeprowadzone eksperymenty pokazały, że wytwarzanie

pobudzenia jest kluczowym etapem fonetycznego dekodowania mowy, mającym ogromny

wpływ na subiektywną ocenę jakości sygnału zrekonstruowanego.

W literaturze spotyka się wiele rozwiązań wytwarzania sygnału pobudzenia dla filtru

syntezy. Ich cechą wspólną jest fakt, że tony krtaniowe, o dużej energii modelowane są

w postaci okresowego ciągu impulsów, natomiast składniki szumowe o znacznie mniejszej

energii i aperiodycznym przebiegu odtwarza się w postaci sygnału losowego, jakim jest

szum biały gaussowski. Oprócz algorytmów twardo-decyzyjnych, które produkują jedynie

fonemy dźwięczne i bezdźwięczne, spotykane są także bardziej wyrafinowane i efektywne

metody, które umożliwiają wytwarzanie dźwięków o charakterze pośrednim – tonalno-

szumowym.

Za najbardziej efektywną technikę generacji sygnału pobudzenia dla filtru syntezy mowy

uważa się algorytm mieszanego pobudzenia, zastosowany w standardzie kodowania MELP

[2, rozdz.11]. Model pobudzenia wg tego standardu jest mieszaniną składników

dźwięcznych i bezdźwięcznych, których zawartość procentowa w generowanym

fragmencie sygnału zależy od energii harmonicznych w określonych pasmach widma.

Takie podejście, w którym regulowany jest poziom głośności sygnału szczególnie dobrze

sprawdza się w przypadku modelowania dźwięcznych fonemów szczelinowych np. /z/. Technikę mieszanego pobudzenia (ang. mixed excitation) stworzono w celu eliminacji

najczęstszego artefaktu w syntezowanej mowie, jakim jest nienaturalne brzmienie

fragmentów dźwięcznych, charakterystyczne dla technik LPC. Jest ono spowodowane zbyt

zgrubnym modelowaniem drgań fali akustycznej w postaci ciągu impulsów. Mieszane

pobudzenie w koderze MELP uzyskiwane jest przy zastosowaniu następujących

rozwiązań:

• filtr kształtujący impuls, składający się z zestawu filtrów pasmowo-przepustowych,

liczba pasm zazwyczaj wynosi 4 – 10 i jest stała dla każdej ramki kodowanego

sygnału;

• filtr kształtujący szum, o charakterystyce odwrotnej do filtru kształtującego impuls;

4. Koncepcja semantycznego kodeka mowy

- 74 -

• wzmocnienie w każdym paśmie dobierane na podstawie kryterium głośności

sygnału; wykorzystywana jest tutaj metoda autokorelacji obwiedni filtrowanego

sygnału mowy w każdym z pasm;

• płaskie widmo pobudzenia ze względu na sumę odpowiedzi obu filtrów;

• nieokresowy ciąg impulsów; odległości między impulsami podlegają fluktuacjom;

• filtr dyspersji impulsu – powoduje rozmycie impulsów występujących w odstępach

równych okresowi podstawowemu; powoduje to lepsze dopasowanie sygnału

syntezowanego do oryginalnego w pasmach pomiędzy formantami.

Naturalność oraz wysoka jakość mowy zrekonstruowanej techniką MELP okupiona jest

stosunkowo dużą złożonością bloku generacji pobudzenia oraz wielkością strumienia – 2,4

kbit/s. Głównie ze względu na ten fakt, nie da się wprost zastosować algorytmu

mieszanego pobudzenia w koderze dla bardzo małej prędkości transmisji.

Aby ominąć ten problem w wokoderach fonetycznych wykorzystujących modele HMM

często stosuje się inne podejście. Oprócz wektorów cech, które służą do odtwarzania

charakterystyki traktu głosowego, stany modeli fonemów przechowują także informacje

o właściwościach pobudzenia w analizowanej ramce sygnału, dla której wyznaczono

wektor cech. Takimi informacjami mogą być np. poziomy głośności dla filtrów pasmo-

przepustowych kształtujących impulsy [16], czy modele transmitancji filtrów

dla składowej dźwięcznej i bezdźwięcznej w analizowanej ramce [17]. Metody te na ogół

umożliwiają wyeliminowanie dokuczliwych artefaktów w sygnale zrekonstruowanym,

kosztem budowy bardzo złożonych modeli HMM fonemów.

Na podstawie przeprowadzonych symulacji dostępnych rozwiązań opracowano

uproszczoną technikę generacji pobudzenia, której model pokazany jest na rys.35. Idea

budowy tego modelu pobudzenia zaczerpnięta jest z algorytmu kodera MELP, jednak

wykorzystane algorytmy przetwarzania są bardzo proste ze względu na ograniczoną

prędkość transmisji.

Zaimplementowany model wytwarzania sygnału nieco różni się od tego przedstawionego

na rys.12. Jedyną informacją potrzebną do rekonstrukcji sygnału pobudzenia dla potrzeb

syntezy, jest częstotliwość podstawowa wyznaczona dla poszczególnych ramek czasowych

przetwarzanego sygnału. Ponieważ wartość tej częstotliwości jest niezerowa

dla fragmentów dźwięcznych oraz jest nieokreślona w przypadku składników szumowych,

na jej podstawie podejmowana jest decyzja o charakterze generowanego pobudzenia.

4. Koncepcja semantycznego kodeka mowy

- 75 -

UKŁAD DECYZYJNY

POBUDZENIE BEZDŹWIĘCZNE

POBUDZENIE DŹWIĘCZNE

F0

F0 > 0

F0 = 0

SYGNAŁ WYJŚCIOWY

Rys.35. Blok produkcji sygnału pobudzenia w układzie dekodera mowy dla

bardzo małej prędkości transmisji.

Nie wykorzystuje się tutaj żadnej informacji o poziomie głośności poszczególnych ramek

sygnału. Tony krtaniowe odtwarza się w postaci quasi-okresowego ciągu impulsów,

którego okres w danej ramce sygnału jest równy odwrotności częstotliwości podstawowej,

estymowanej w koderze. Wahania częstotliwości podstawowej podczas wypowiedzi są

tutaj reprezentowane w postaci zmian odstępu między generowanymi impulsami ciągu.

Naturalne pobudzenie produkowane przez płuca oprócz quasi-okresowego przebiegu,

charakteryzuje się także zmienną amplitudą impulsów. Aby zamodelować to zjawisko, do

amplitudy prążków można wprowadzić pewną losową nieregularność.

Składnik bezdźwięczny jest uzyskiwany z układu generatora pseudolosowego

wytwarzającego szum biały. Wariancja szumu powinna być odpowiednio dobrana w

stosunku do amplitudy impulsów. W zaimplementowanym rozwiązaniu dobre efekty

otrzymano dla stosunku tych wartości równego 1:10.

Podczas rekonstrukcji pobudzenia dekodowane są wartości częstotliwości podstawowej,

wyznaczone dla kolejnych okien analizy. Odwrotność F0, czyli okres podstawowy sygnału

mowy, wyznacza odstępy impulsów w danej ramce czasowej. Dla analizowanego okna

otrzymujemy fragment sygnału pobudzenia, który jest sumą impulsów poprzesuwanych

o wielokrotność okresu podstawowego (rys.36).

4. Koncepcja semantycznego kodeka mowy

- 76 -

Rys.36. Fragment sygnału pobudzenia otrzymany na podstawie analizy sygnału

kdt_001.wav z bazy TIMIT.

W naturalnym sygnale mowy zmiany konturu F0 przebiegają w sposób ciągły, w efekcie

odstępy między impulsami pobudzenia również powinny zmieniać się płynnie. Ze względu

na kwantyzację wartości F0 możliwa jest jedynie pewna aproksymacja naturalnych zmian

częstotliwości podstawowej w czasie. W algorytmie zastosowano technikę wyznaczania

odstępów impulsów we fragmentach dźwięcznych pobudzenia, na podstawie zmian fazy.

Wyznaczamy ją z wektora częstotliwości podstawowej, przesłanego z kodera do dekodera,

korzystając z zależności definicyjnej (18):

00

)()( ϕ+ττ=ϕ ∫t

dft (18)

gdzie:

)(τf – zakumulowana wartość częstotliwości sygnału w chwili τ

Ponieważ wartość częstotliwości F0 wyznaczana jest w koderze raz na okno analizy N,

konieczna jest interpolacja jej zmian pomiędzy oknami. Kontur F0 w takiej formie może

posłużyć do obliczenia fazy sygnału wg (18). Otrzymany przebieg ma charakter

monotonicznie rosnący ze względu na akumulację fazy dla kolejnych próbek sygnału.

W rezultacie operacji modulo 1 otrzymujemy skokowe zmiany wartości w przebiegu fazy.

4. Koncepcja semantycznego kodeka mowy

- 77 -

Zadaniem algorytmu produkcji pobudzenia jest lokalizacja tych skoków oraz wstawienie

w tych miejscach impulsów, modelujących składowe dźwięczne. Takie podejście skutkuje

otrzymaniem sygnału zsyntezowanego, który pozbawiony jest charakterystycznych

„schodków” związanych ze skokową zmianą częstotliwości chwilowej. Naturalne zmiany

intonacji są również dobrze odwzorowane.

Istotnym elementem konstrukcji sygnału pobudzenia jest także odpowiedni dobór

kształtu impulsów w generowanym ciągu. W wielu prostych implementacjach wokoderów

stosowany jest ciąg impulsów prostokątnych. Otrzymany w ten sposób sygnał widoczny

jest na rys.36. Bardzo poważnym problemem takiej postaci pobudzenia jest możliwość

wystąpienia aliasingu w zrekonstruowanej mowie. Wynika on z faktu, że widmo

amplitudowe impulsu prostokątnego jest nieograniczone. Podczas splotu okresowego

sygnału pobudzenia z odpowiedzią impulsową modelu traktu głosowego otrzymujemy

sygnał wyjściowy, którego widmo jest dyskretne i posiada składowe aliasowe, które

bardzo negatywnie wpływają na subiektywną ocenę jakości zrekonstruowanej mowy.

Sytuacja ta wystąpi zawsze gdy filtr syntezy będzie pobudzany syntetycznym ciągiem

impulsów prostokątnych bez zaokrąglania ich położenia z dokładnością do pojedynczej

próbki.

W celu eliminacji aliasingu zastosowano technikę składania sekwencji pobudzającej

z impulsów o kształcie krzywej sinc, których widmo amplitudowe jest ściśle ograniczone

i wyraża się wzorem (19):

)2

(2)}({0

0 ffftSaF −Π⋅π=π⋅ (19)

gdzie:

0f – szerokość pasma impulsu

Dodatkową zaletą takiego rozwiązania jest fakt, że ograniczony pasmowo sygnał, w formie

ciągu impulsów sinc, nie pobudza fragmentu charakterystyki filtru modelującego, który

jest zniekształcony podczas procesu rekonstrukcji widma ze współczynników MFCC.

Analiza mel-cepstralna jest mniej dokładna dla składowych wysokoczęstotliwościowych,

dlatego też ich stratna kompresja, a następnie rekonstrukcja skutkuje słyszalnymi

artefaktami w zdekodowanej mowie. Stosując impulsy sinc można ten efekt

wyeliminować.

4. Koncepcja semantycznego kodeka mowy

- 78 -

Rys.37. Przykład dźwięcznej ramki sygnału pobudzenia o długości 60 ms, szerokość

impulsu 0,33 ms, częstotliwość F0 równa 80 Hz.

Rys.38. Widmo amplitudowe fragmentu sygnału pobudzenia. Szerokość pasma

impulsu sinc równa 3 kHz, częstotliwość F0 równa 200 Hz, częstotliwość próbkowania

16 kHz. Do analizy zastosowano okno Hamminga.

4. Koncepcja semantycznego kodeka mowy

- 79 -

Podczas produkcji sygnału pobudzenia ważny jest dobór odpowiedniej szerokości impulsu.

Należy wziąć pod uwagę fakt, że w paśmie sygnału powinny znaleźć się częstotliwości,

których występują w widmie typowej mowy.

Przebieg czasowy sygnału pobudzenia, otrzymany przy zastosowaniu impulsów sinc,

widoczny jest na rys.37, natomiast rys.38 ilustruje przykładowe widmo amplitudowe

takiego sygnału. Ze względu na quasi-okresową naturę pobudzenia jego widmo jest

dyskretne.

Powyżej 3 kHz obserwujemy zanik prążków widma wynikający z szerokości impulsów

Spadek ten nie jest jednak gwałtowny, ze względu na niedokładną aproksymację wysokich

częstotliwości sygnału. Efekt ten należy uwzględnić przy wyborze szerokości impulsu, aby

wyeliminować występowanie aliasingu w zrekonstruowanej mowie.

4.3.2 Rekonstrukcja cech widmowych sygnału

Aby wykonać proces syntezy sygnału niezbędne jest odtworzenie charakterystyki

częstotliwościowej traktu głosowego. W opracowanym systemie widmo mocy

reprezentowane jest w postaci współczynników MFCC, które są przechowywane

w dekoderze jako wektory cech, stowarzyszone ze stanami modeli HMM fonemów.

W literaturze najczęściej spotykanym algorytmem rekonstrukcji widma z modeli HMM

jest metoda przedstawiona w pracy Junichi Yamagishi [15]. Demonstruje on rozwiązanie

problemu produkcji optymalnej sekwencji wektorów parametrów ],...,,[ 21 toooO = , która

maksymalizuje prawdopodobieństwo jej otrzymania ),|( TP λO względem rozkładu λ

modelu HMM i długości sekwencji parametrów T (20):

),|(maxarg TP λ= OOO

opt (20)

Yamagishi wskazuje, że nie istnieje proste rozwiązanie analityczne tego równania. Z tego

względu często stosuje się aproksymację w formie sekwencji wektorów obserwacji dla

najbardziej prawdopodobnej sekwencji stanów q (21):

),|,(maxmaxarg TP λ≅ qOOqO

opt (21)

Używając wzoru Bayes’a łączne prawdopodobieństwo O i q można przedstawić jako

(22):

4. Koncepcja semantycznego kodeka mowy

- 80 -

),|(),,|(maxmaxarg TPTP λ⋅λ≅ qqOOqO

opt (22)

Zatem problem znalezienia optymalnej sekwencji wektorów obserwacji może być

rozłożony na dwa podrzędne problemy [15]:

1. Znalezienie optymalnej sekwencji stanów optq modelu HMM (23):

),|(maxarg TP λ= qqq

opt (23)

2. Znalezienie optymalnej sekwencji parametrów Oopt, dla określonej sekwencji

stanów modelu HMM (24):

),,|(maxarg TP λ= optO

opt qOO (24)

Pierwszy krok realizowany jest w postaci rozpoznawania fonemów, w koderze. Tam, przy

pomocy algorytmu przedstawionego w rozdziale 4.2.4, wyznaczana jest najbardziej

prawdopodobna kombinacja stanów modeli fonemów, która jest przesyłana do dekodera

w formie transkrypcji indeksów tych modeli.

Rozwiązanie drugiego etapu procesu optymalizacji jest skomplikowane w przypadku, gdy

wektory cech oprócz współczynników statycznych MFCC, zawierają także współczynniki

dynamiczne (delta, delta-delta). Składowe dynamiczne, wyznaczone podczas analizy

umożliwiają odtworzenie ciągłości w generowanej mowie, gdyż podczas ich estymacji

uwzględniane są informacje o ramkach poprzedzających i ramkach następujących mowy.

Zastosowanie współczynników dynamicznych wymaga użycia metod numerycznych do

znalezienia optymalnego rozwiązania równania ze wzoru (24), jak np. dekompozycja

Cholesky’ego, czy dekompozycja QR dla równań macierzowych. Ponieważ zadaniem

szczegółowym pracy magisterskiej było opracowanie uproszczonego modelu kodeka

mowy, nie zdecydowano się na implementację wymienionych metod i zastosowano

jedynie współczynniki statyczne MFCC do modelowania cech widmowych fonemów.

W takim przypadku, rozwiązaniem równania (24) jest sekwencja wektorów wartości

średnich współczynników, odczytanych z kolejnych stanów modeli HMM, dla optymalnej

sekwencji optq . Uniknięcie skomplikowanych obliczeń numerycznych dla macierzy

parametrów okupione jest tutaj gorszą jakością odtworzonej mowy, wynikającą

z braku płynności w zmianach krótko-okresowej charakterystyki częstotliwościowej.

Baza modeli HMM fonemów używana w dekoderze mowy różni się nieco od tej

zawartej w koderze. Tutaj dodatkowo wektory cech zawierają współczynnik zerowy

4. Koncepcja semantycznego kodeka mowy

- 81 -

MFCC. Jest on niezbędny do rekonstrukcji obwiedni widma sygnału, gdyż zawiera

informację o jego energii. Ten parametr nie odzwierciedla cech intonacji mówcy sygnału

oryginalnego, lecz reprezentuje uśrednioną energię mówcy treningowego, estymowaną na

podstawie wypowiedzi z bazy danych. Jest to znacząca wada tego rozwiązania, jednak

współczynniki energii, odczytane z modeli, umożliwiają zgrubne odtworzenie rozkładu

energii dla poszczególnych harmonicznych sygnału. Rekonstrukcja sygnału bez informacji

o jego obwiedni skutkuje otrzymaniem mowy o bardzo złej jakości.

Inną możliwością w takim przypadku mogłoby być przesyłanie informacji o obwiedni

sygnału z kodera, w postaci dodatkowych parametrów strumienia. Pozostaje to

w perspektywie dalszej rozbudowy systemu.

W typowych implementacjach koderów fonetycznych odtwarzanie cech widmowych

sygnału ze współczynników MFCC, zawartych w stanach modelu HMM jest wykonane

przy uwzględnieniu informacji o rozkładzie prawdopodobieństwa czasu trwania

poszczególnych stanów. Funkcja gęstości rozkładu prawdopodobieństwa jest wtedy

estymowana jako kolejny parametr modelu HMM.

W prezentowanym rozwiązaniu nie tworzy się rozkładów czasu trwania stanów. Przyjęto

założenie, że największa informacja o cechach danej głoski skupiona jest w środkowym

stanie emitującym modelu – 3. Stany 2 i 4 reprezentują informację o cechach danej głoski

odpowiednio na początku i na końcu czasu jej trwania.

Odtwarzanie współczynników MFCC w module rekonstrukcji mowy przebiega wg

następującego schematu:

1. Odbiór zdekodowanego indeksu modelu HMM fonemu oraz czasu jego trwania,

w postaci liczby kolejnych wystąpień fonemu – N.

2. Wczytanie parametrów statystycznych modelu z bazy, na podstawie odebranego

indeksu.

3. Powiększenie macierzy współczynników MFCC o kolumnę, zawierającą wektor

wartości średnich współczynników MFCC wyczytany ze stanu 2 modelu HMM.

4. Powiększenie macierzy współczynników MFCC o N – 2 kolumn, zawierających

wektor wartości średnich współczynników MFCC wyczytany ze stanu 3 modelu

HMM.

5. Powiększenie macierzy współczynników MFCC o kolumnę, zawierającą wektor

wartości średnich współczynników MFCC wyczytany ze stanu 4 modelu HMM.

6. Powtórzenie kroków 3 – 5 tyle razy, ile wynosi wartość zdekodowanego czasu

trwania fonemu – N.

4. Koncepcja semantycznego kodeka mowy

- 82 -

Opracowany schemat jest prosty, ale aproksymacja widma traktu głosowego otrzymana

w ten sposób jest zadowalająca, czego efektem są wyniki oceny jakości mowy

zrekonstruowanej przedstawione w rozdziale 5.

Po odczytaniu wszystkich indeksów przesłanych z kodera, otrzymujemy macierz

współczynników mel-cepstrum, o wymiarach M x T, gdzie M to liczba współczynników

(uwzględniająca logarytm energii), a T oznacza otrzymaną liczbę ramek czasowych

sygnału – okno analizy jest dwukrotnie większe, ze względu na zakładkę.

Przykładowy rezultat generacji współczynników MFCC z modeli HMM, w odniesieniu

do oryginalnych wartości analizy mel-cepstralnej pokazany jest na rys.43. Różnice

zauważalne są dla współczynników niskiego rzędu, gdyż zawierają one najwięcej

informacji o cechach sygnału. Współczynniki wysokiego rzędu mają zazwyczaj mniejsze

wartości, co przekłada się również na mniejszą wartość różnicy.

Rys.39. Przykładowy obraz różnicowy pomiędzy oryginalnymi współczynnikami

MFCC, a wartościami otrzymanymi z modeli HMM.

Prezentowany obraz dobrze ilustruje błędnie rozpoznane wektory cech. Objawia się to

większymi wartościami różnic między współczynnikami, dla ramki odpowiadającej

danemu wektorowi cech. Błędy wynikają ze zbyt słabego wytrenowania modeli fonemów.

Wyjątkiem jest jednostka ciszy – /sil/, dla której obserwujemy najmniejszy poziom błędu –

ramki sygnału 0 – 45 i 270 – 290.

4. Koncepcja semantycznego kodeka mowy

- 83 -

Wektory cech jego modelu HMM są najdokładniej estymowane, gdyż pojawia się on

w prawie każdej wypowiedzi treningowej. W przypadku pozostałych fonemów ta

estymacja nie jest już tak dokładna, co jest widoczne na przedstawionym rysunku dla

ramek sygnału 45 – 270.

4.3.3 Synteza sygnału mowy

Ostatnim etapem przetwarzania danych w dekoderze jest synteza mowy.

Wykorzystujemy do tego wygenerowany wcześniej sygnał pobudzenia oraz aproksymację

charakterystyki częstotliwościowej traktu głosowego, otrzymaną przy pomocy

współczynników MFCC.

Jedną z możliwych technik rekonstrukcji mowy w dekoderze jest rozwiązanie

prezentowane przez Chazana i pozostałych w pracy [18]. Ich algorytm opiera się

na modelu sinusoidalnym, gdzie krótko-okresowy sygnał jest reprezentowany w postaci

sumy sinusoid. Wartości amplitudy oraz fazy przebiegu, odtwarzane są z wektorów cech

sygnału – współczynników MFCC, a następnie rekonstruowane jest widmo

krótkookresowe – STFT.

Najpopularniejszym rozwiązaniem spotykanym w literaturze [8], [15], jest synteza

sygnału przy pomocy filtru aproksymującego logarytm widma amplitudowego – MLSA.

Jest to typowa metoda rekonstrukcji sygnału dla klasy wokoderów fonetycznych, którą

zaimplementowano w pierwszej kolejności, korzystając z biblioteki SPTK (ang. Speech

Signal Processing Toolkit) [19].

Dyskretna funkcja transmitancji filtru MLSA ma charakter wykładniczy, a jej bardzo

dokładna aproksymacja, wykorzystywana podczas implementacji wyraża się wzorem (25):

∑=

Φ=M

mm zmbzH

0)()(exp)( (25)

gdzie:

M – rząd analizy mel-cepstralnej

)(mb – m-ty współczynnik filtru MLSA, otrzymywany przy pomocy formuły (26):

⎩⎨⎧

<≤+α−=

α

MmmbmcMmmc

mb0),1()(

),()( (26)

4. Koncepcja semantycznego kodeka mowy

- 84 -

Współczynniki )(mcα w tym wzorze to wartości cepstrum sygnału w melowej skali

częstotliwości.

)(zmφ – funkcja zmiennej Z, zależna od współczynnika kompresji skali częstotliwości α

(27):

⎪⎩

⎪⎨⎧

≥α−

α−⋅

α−α−

==Φ

−−

−−

0,11

)1(0,1

)()1(

)1(

1

12

mz

zz

zm

zm

mm (27)

Charakterystyka fazowa powyższej transmitancji jest uzależniona od zmiennej α , której

wartość reprezentuje odpowiednią transformację skali częstotliwości np., przyjęcie

współczynnika α równego 0,41 dla częstotliwości próbkowania 16 kHz umożliwia

przybliżenie charakterystyki ludzkiego systemu słyszenia w postaci skali melowej.

Transmitancję filtru MLSA zapisuje się często w formie iloczynu (28):

)()( zDKzH ⋅= (28)

gdzie:

)0(expbK = - informacja o obwiedni funkcji transmitancji

∑=

Φ=M

mm zmbzD

1)()(exp)( - transmitancja filtru syntezy

Podczas prób włączenia filtru do modelu dekodera mowy wykryto poważną wadę

wykorzystywanej metody. Okazało się, że współczynniki MFCC używane

do rozpoznawania fonemów w koderze, nie nadają się do rekonstrukcji widma sygnału.

W efekcie, generowane przy ich pomocy współczynniki filtru MLSA są nieprawidłowe.

Problem polega na tym, że wartości b(m) we wzorze (26), wyznaczane są na podstawie

cepstrum sygnału, które uprzednio transformowane jest do melowej skali częstotliwości.

Cepstrum to obliczane jest wg wzoru (3), co odbiega od definicji współczynników MFCC

(6). Podczas estymacji wektorów cech, dla celów rozpoznawania mowy, znacząca ilość

informacji o widmie sygnału jest zatem bezpowrotnie tracona. Na przykład w trakcie

analizy odrzucane są współczynniki MFCC wyższego rzędu, reprezentujące składowe

wysokoczęstotliwościowe widma.

4. Koncepcja semantycznego kodeka mowy

- 85 -

ODWROTNA LIFTRACJA

REKONSTRUKCJA SUMY AMPLITUD W PASMACH ANALIZY

REKONSTRUKCJA ZESPOŁU FILTRÓW

ANALIZY

MACIERZ WSPÓŁCZYNNIKÓW MFCC

MACIERZ SUM AMPLITUD WIDMA W

PASMACH

MACIERZ ODWROTNOŚCI WAG

AMPLITUD FFT

REKONSTRUKCJA WIDMA MOCY

TRAKTU GŁOSOWEGO

WIDMO MOCY TORU SYGNAŁU

FFT

SYGNAŁ POBUDZENIA

IFFT

WIDMO SYGNAŁU MOWY

ZSYNTEZOWANA MOWA

Rys.40. Schemat blokowy algorytmu syntezy mowy w dekoderze.

4. Koncepcja semantycznego kodeka mowy

- 86 -

W trakcie pracy nad projektem kodeka podjęto szereg prób konwersji współczynników

MFCC do postaci dogodnej do wyznaczenia gabarytów filtru MLSA, jednak nie uzyskano

zadowalającego efektu. Nieodpowiednie wartości współczynników wykorzystywane

do budowy filtru powodowały jego niestabilność. W wyniku napotkanych trudności

podjęto decyzję o zastosowania innej metody syntezy sygnału mowy.

Rozwiązaniem okazał się algorytm rekonstrukcji widma amplitudowego sygnału

ze współczynników MFCC zaproponowany przez Dana Ellisa i pozostałych z grupy

LabROSA, Uniwersytetu Columbii [20].

Wykorzystana technika składa się z etapów rekonstrukcji mowy, zaprezentowanych

w formie schematu blokowego na rys.40.

Pierwszym krokiem jest odwrotna liftracja, którą wykonujemy na wektorze

współczynników MFCC. Podczas tej operacji otrzymujemy zmodyfikowane

współczynniki mel-cepstrum (9). Zastosowanie tego typu przekształcenia pozwala

skompensować efekt wygładzania widma, wykonany dla celów efektywnego

rozpoznawania cech mowy.

Kolejnym etapem przetwarzania jest rekonstrukcja sum składników widma mocy,

otrzymanych w wyniku wymnożenia energii kolejnych próbek w pasmach przepustowych

filtrów analizy, przez ich trójkątne charakterystyki. W celu wyznaczenia wartości sum

przeprowadza się odwrotną transformację kosinusową – IDCT. Ogólnie proces

otrzymywania sum składników widma w poszczególnych segmentach można przedstawić

w postaci następującego równania macierzowego (29):

)exp( MFCCIDCTS_SUM ⋅= (29)

gdzie:

SUMS _ – otrzymana macierz sum składników widma mocy w poszczególnych pasmach

widma, wymiar TFB × , gdzie FB oznacza liczbę filtrów analizy składających się na

zespół filtrów analizy, natomiast T reprezentuje liczbę ramek czasowych sygnału

zrekonstruowanego.

IDCT – odwrotna macierz transformacji DCT.

MFCC – macierz współczynników MFCC.

Funkcja wykładnicza kompensuje tutaj operację logarytmowania wartości sum,

wykonywaną w trakcie analizy mel-cepstralnej.

4. Koncepcja semantycznego kodeka mowy

- 87 -

W kolejnej fazie syntezy sygnału mowy następuje rekonstrukcja zespołu filtrów

analizy, przy pomocy którego wyznaczono współczynniki MFCC. Proces ten polega

na wyznaczeniu częstotliwości środkowych pasm przepustowych, które są położone

w równych odległościach, w melowej skali częstotliwości. Wiąże się to z uprzednią

konwersją skali. Oprócz odpowiedniego rozmieszczenia zespołu filtrów, przywracane są

także wagi amplitud, które składają się na trójkątne charakterystyki tłumienia

w poszczególnych pasmach. Wymienione tutaj operacje, w ramach rekonstrukcji zespołu

filtrów wykonywane są dla każdego ramki sygnału, której długość zdefiniowana jest

w module dekodera mowy. Ostatecznie otrzymywana jest macierz o rozmiarze

FB × N/2+1, gdzie N określa długość okna analizy FFT, zawierająca wartości wag

amplitudy widma w danym paśmie zespołu filtrów. Następnie wyznaczana jest macierz

odwrotności tych wag o rozmiarze N/2+1 × FB, którą wymnaża się z macierzą wartości

sum składników widma mocy, wg wzoru (30):

S_SUMIWTSS_POW ⋅= (30)

gdzie:

S_POW – otrzymane widmo mocy traktu głosowego, o rozmiarze TN×+1

2.

IWTS – macierz odwrotnych wag, składających się na trójkątne charakterystyki tłumienia

zespołu filtrów, rozmiar FBN×+1

2.

S_SUM – macierz sum składników widma mocy w poszczególnych pasmach zespołu

filtrów, rozmiar TFB × .

W efekcie przeprowadzonych transformacji i przekształceń dysponujemy aproksymacją

widma mocy traktu głosowego, z której wyznaczamy widmo amplitudowe. Przykładowa

charakterystyka częstotliwościowa tak otrzymanego filtru syntezy dla pojedynczej,

dźwięcznej ramki sygnału przedstawiona jest na rys.1. Na wykresie dobrze wyraźnie

widoczne są pasma formantowe, w których sygnał pobudzenia jest wzmacniany w

największym stopniu. Charakterystyczne zafalowania transmitancji wpływają na

kształtowanie impulsu pobudzenia. Rozkład pasm formantowych zmienia się z ramki na

ramkę w czasie trwania sygnału.

4. Koncepcja semantycznego kodeka mowy

- 88 -

Syntezę sygnału mowy przeprowadzamy wg modelu źródłowo-filtrowego (rozdział

2.4). W dziedzinie czasu proces filtracji realizowany jest w postaci splotu liniowego

odpowiedzi impulsowej traktu głosowego oraz sygnału pobudzenia. Operacją dualną jest

iloczyn transformat Fouriera tych składników. Pomijając informację o fazie, która nie jest

syntezowana, realizujemy jedynie iloczyn widm amplitudowych toru oraz pobudzenia.

Konieczne jest wyznaczenie transformacji Fouriera sygnału pobudzenia, który uprzednio

dzieli się na segmenty o długości ramek analizy mel-cepstralnej.

Rys.41. Charakterystyka częstotliwościowa filtru modelującego mowę otrzymana

poprzez rekonstrukcję widma amplitudowego ze współczynników MFCC.

Następnie na końcu każdego segmentu dodawany jest wektor zerowych próbek (ang. zero

padding). Skutkuje to prawidłową realizacją splotu liniowego sygnałów dyskretnych.

Przebieg czasowy sygnału w każdym segmencie jest rekonstruowany przez odwrotną

transformację Fouriera z iloczynu widm amplitudowych. Ostatecznie mowa jest

syntezowana w wyniku składania otrzymanych segmentów czasowych, przy

uwzględnieniu długości zakładki ramki.

Końcowym etapem przetwarzania sygnału w układzie dekodera jest zastosowanie filtru

deemfazy do zrekonstruowanej mowy, którego działanie jest dokładnie odwrotne do filtru

4. Koncepcja semantycznego kodeka mowy

- 89 -

preemfazy przedstawionego w rozdziale 4.2.2. Przykładowe wyniki syntezy mowy

w dekoderze widoczne są na rys.42 w postaci przebiegu czasowego oraz na rys.43 w

postaci spektrogramu sygnału oryginalnego oraz zrekonstruowanego.

Spoglądając na wykres czasowy można zauważyć, że ogólna struktura sygnału –

fragmenty dźwięczne i bezdźwięczne – została wiernie odtworzona. Słabo

zrekonstruowane są transienty. Wynika to z faktu, że te nieharmoniczne, wybuchowe

składniki mowy nie są modelowane w koderze. Niosą one głównie informację o zmianie

fazy sygnału, podczas gdy rozpoznawanie cech w koderze fonetycznym opiera się jedynie

na właściwościach widma amplitudowego. Niedokładnie odwzorowana wartość obwiedni

sygnału nie stanowi większego problemu, natomiast wynika z licznych transformacji

wykonywanych podczas syntezy sygnału. Nieciągłości w przebiegu czasowym

spowodowane są nie uwzględnieniem właściwości dynamicznych sygnału podczas jego

kodowania oraz błędami w rozpoznawaniu fonemów.

Podobne wnioski można wysunąć analizując spektrogram sygnału zsyntezowanego.

Pokazuje on, że najlepiej odtworzone są składniki dźwięczne o dużej energii, a także

fragmenty o charakterze szumowym. Słabe efekty otrzymujemy w przypadku składników

mieszanych mowy. Częstotliwość podstawowa sygnału jest rozróżnialna,

w przeciwieństwie do słabo zarysowanych pasm formantowych. W otrzymanym spektrogramie widoczne są typowe cechy sygnałów syntetycznych –

bardzo regularny odstęp prążków widma, nagły spadek amplitudy widma powyżej granicy

widma impulsu, przy pomocy którego wygenerowano sygnał pobudzenia. Co więcej,

ograniczone pasmo impulsu w modelu generacji pobudzenia oraz ograniczony rząd analizy

mel-cepstralnej w koderze mają wpływ na niedokładne odwzorowanie składników

wysokoczęstotliwościowych widma. Przedstawione tutaj cechy sygnału zrekonstruowanego mają swoje odzwierciedlenie

w percepcyjnie postrzeganym poziomie jakości i zrozumiałości otrzymanej mowy. Wyniki

subiektywnych ocen tych miar przedstawione są w następnym rozdziale pracy.

4. Koncepcja semantycznego kodeka mowy

- 90 -

Rys.42. Przebieg czasowy sygnału oryginalnego oraz sygnału zrekonstruowanego.

Rys.43. Spektrogram sygnału oryginalnego i sygnału zrekonstruowanego.

5. Wyniki symulacji modelu kodeka

- 91 -

5. Wyniki symulacji modelu kodeka

Najważniejszym parametrem, który należy oszacować przy ocenie efektywności, jest

wielkość otrzymanego strumienia binarnego na wyjściu kodera. Ocena ta powinna być

poparta rezultatami badań w zakresie poziomu zrozumiałości i jakości sygnału

zrekonstruowanego. Aby otrzymane wyniki testów miały praktyczne odniesienie są one

przedstawione w porównaniu z popularną techniką kodowania mowy, jaką jest LPC.

5.3.1 Otrzymany strumień

Do oszacowania typowych wielkości strumienia binarnego na wyjściu kodera

wykorzystujemy grupę dziesięciu fragmentów mowy, pochodzących z bazy treningowej

kdt US English TIMIT [12]. Na poziom kompresji poszczególnych sygnałów testowych,

wpływ ma przede wszystkim poziom trudności danej wypowiedzi – w sensie leksykalnym,

zróżnicowanie fonemów wchodzących w jej skład oraz poziom wytrenowania modeli

HMM składających się na dany fragment mowy.

Szacowana prędkość transmisji wyznaczana jest przez zsumowanie przepływności

potrzebnych do zakodowania wektora częstotliwości F0, indeksów fonemów oraz czasu

ich trwania w postaci liczby kolejnych wystąpień, w kodowanej frazie. Wyniki symulacji

przedstawione są w tab.2.

Dla reprezentatywnej grupy dziesięciu sygnałów testowych otrzymano strumień 302,17 ±

23,91 bit/s. Odchylenia od tej wartości są stosunkowo niewielkie. O niskiej wartości

przepływności decyduje w głównej mierze poprawny wynik algorytmu rozpoznawania

fonemów. Zmniejsza się wtedy liczba przesyłanych indeksów modeli HMM, co powoduje

wzrost kompresji sygnału. Błędy w algorytmie rozpoznawania mowy skutkują dłuższym

wektorem tych indeksów, a także wzrostem wielkości strumienia.

5. Wyniki symulacji modelu kodeka

- 92 -

Tab.2. Otrzymane wielkości strumieni binarnych dla sygnałów testowych.

Fragment mowy Przepływność [bit/s].

kdt_001.wav 320,72

kdt_002.wav 339,29

kdt_006.wav 320,70

kdt_028.wav 322,10

kdt_081.wav 303,37

kdt_098.wav 282,24

kdt_146.wav 274,99

kdt_210.wav 308,73

kdt_280.wav 274,18

kdt_431.wav 275,35

średnia 302,17

odchylenie stand. 23,91

5.3.2 Ocena zrozumiałości otrzymanej mowy

W badaniu zrozumiałości sygnału mowy mierzymy poziom zniekształcenia jego

zawartości informacyjnej. Najpopularniejszym testem zrozumiałości dla koderów mowy

jest tzw. diagnostyczny test rymowy – DRT (ang. Diagnostic Rhyme Test) [2, rozdz.8].

Polega ona na pytaniu słuchacza o rozpoznanie par wypowiadanych słów, które różnią się

pierwszą sylabą. Wynik testu określa się jako stosunek odpowiedzi prawidłowych

do całkowitej liczby par słów.

Przeprowadzenie testu DRT wymusza posiadanie odpowiedniej grupy fragmentów mowy,

które różnią się jedną sylabą. Baza sygnałów treningowych wykorzystywana w tym

projekcie składa się z 452 wypowiedzi, przy czym są to całe zdania. Przeprowadzanie testu

DRT w takim przypadku jest niemożliwe, ze względu na brak odpowiednich danych

wejściowych. Co więcej, opracowany kodek jest systemem zależnym od mówcy

treningowego i użycie sygnałów spoza bazy powoduje spadek efektywności zarówno

analizy jak i rekonstrukcji.

5. Wyniki symulacji modelu kodeka

- 93 -

Ze względu na powyższe przyczyny zaistniała konieczność przeprowadzenia badania

zrozumiałości inną metodą. Aby zgrubnie ocenić poziom zrozumiałości zdekodowanych

sekwencji słów poproszono słuchaczy o wystawienie oceny wg następującej skali:

1 - mowa całkowicie niezrozumiała

2 - mowa częściowo zrozumiała

3 - mowa całkowicie zrozumiała

Test wykonano w grupie ośmiu słuchaczy, przy wykorzystaniu tych samych fragmentów

mowy, co w rozdziale 5.3.1. Subiektywna ocena zrozumiałości oraz jakości sygnału

zrekonstruowanego została wykonana dla opracowanego systemu kodowania oraz

referencyjnego kodeka LPC. Został on skonfigurowany do pracy przy parametrach analizy,

umożliwiających otrzymanie bardzo niskiego strumienia binarnego:

rząd predyktora = 4

okno analizy = 640 próbek

współczynniki LPC w formie PARCOR

przydział bitów:

współczynniki filtru = 2 bity/ramkę

wzmocnienie = 0 bitów/ramkę

Jak widać rząd predykatora jest bardzo niski, długości ramki analizy znacznie dłuższa niż

typowe 160 próbek, a kwantyzacja współczynników filtru bardzo silna. Informacja

o wzmocnieniu w ogóle nie jest kodowana. Tylko takie nastawy umożliwiają zmniejszenie

generowanej przepływności kodeka LPC z 2,4 kbit/s do ok. 600 bit/s.

Dodatkowo podczas syntezy sygnału wykorzystuje się algorytm generacji pobudzenia

zaczerpnięty z opracowanego systemu kodowania mowy. Otrzymana wartość

przepływności dla referencyjnego kodeka LPC uwzględnia liczbę bitów konieczną do

transmisji wektora częstotliwości F0, który jest wykorzystywany do produkcji sygnału

pobudzenia. Wyniki subiektywnej oceny zrozumiałości mowy zrekonstruowanej zawarte

są w tab.3.

Dla opracowanego modelu kodeka mowy otrzymaną średnią ocenę poziomu zrozumiałości

równą 1,7, co oznacza, że słuchacze uznali wypowiadane sekwencje za częściowo

zrozumiałe.

5. Wyniki symulacji modelu kodeka

- 94 -

5. Wyniki symulacji modelu kodeka

- 95 -

W przypadku kodeka LPC średni poziom zrozumiałości dla dziesięciu sygnałów testowych

określono na 1,15. Można zatem uznać, że fragmenty mowy zakodowane przy pomocy

wykorzystanego kodeka LPC dla 600 bit/s, są całkowicie niezrozumiałe dla słuchacza.

5.3.3 Subiektywna ocena jakości sygnału zrekonstruowanego

Celem badania jakości mowy zsyntezowanej jest ocena stopnia zniekształceń,

otrzymanych w wyniku stratnej kompresji sygnału. Podobnie jak w badaniu zrozumiałości

otrzymane wyniki są całkowicie zależne od słuchacza i dlatego mogą się znacznie różnić.

W literaturze [2, rozdz.8] można spotkać kilka metod pomiaru jakości zdekodowanej

mowy. Najczęściej wykorzystuje się tzw. test średniej oceny jakości – MOS (ang. Mean

Opinion Score), w którym słuchacz używa pięcio-punktowej skali do określenia jakości

sygnału mowy. Wadą tej techniki jest duży rozrzut otrzymanych wyników ze względu na

różną percepcję słuchaczy, ich samopoczucia itp. Bardzo subiektywny charakter

rezultatów testu MOS nie pozwala na wiarygodne ich porównanie z wynikami

otrzymanymi przy pomocy innych metod.

Lepszym badaniem w takiej sytuacji okazuje się test średniej oceny degradacji sygnału

– DMOS (ang. Degradation Mean Opinion Score). Podczas jego realizacji słuchacz

otrzymuje referencję dla analizowanego fragmentu, w postaci oryginalnej wypowiedzi.

Jego zadaniem jest ocena stopnia degradacji mowy wg następującej skali [21]:

5 – degradacja jest niesłyszalna

4 – degradacja jest słyszalna, ale niedokuczliwa

3 – degradacja jest w małym stopniu dokuczliwa

2 – degradacja jest dokuczliwa

1 – degradacja jest bardzo dokuczliwa

Dzięki porównywaniu sygnału zdekodowanego z sygnałem oryginalnym możliwe jest

otrzymanie bardziej zbliżonych wyników, pochodzących od wielu słuchaczy. Ten fakt

zadecydował o wykorzystaniu testu DMOS do zbadania jakości fragmentów mowy

otrzymanych na wyjściu zaimplementowanego kodeka. W celu porównania, zbadano także

jakość sygnału na wyjściu kodeka LPC, którego parametry dobrano jak w rozdziale 5.3.2.

Podobnie jak w ocenie zrozumiałości, reprezentatywna grupa słuchaczy składała się

z ośmiu osób, które analizowały dziesięć testowych sygnałów mowy. Otrzymane wyniki

badania przedstawione są w tab.4.

5. Wyniki symulacji modelu kodeka

- 96 -

5. Wyniki symulacji modelu kodeka

- 97 -

Średnia ocena jakości fragmentów kodowanych przy użyciu systemu, będącego tematem

pracy wyniosła 2,61. Słuchacze uznali, że degradacja sygnału występuje, ale jest ona

umiarkowanie dokuczliwa. Gorszą ocenę jakości uzyskano dla kodeka LPC (przy

strumieniu 600 bit/s). Tutaj średni stopień degradacji sygnału osiągnął wartość 1,19.

Można uznać, że mowa otrzymana na wyjściu kodeka LPC jest bardzo silnie

zdegradowana.

Podczas badań jakości oraz zrozumiałości mowy zrekonstruowanej największe błędy,

a co za tym idzie najgorsze oceny, wystawiano w przypadku fragmentów bardzo

zróżnicowanych leksykalnie oraz cechujących się dużą zawartością składników

dźwięcznych. Wynika to z błędów w rozpoznawaniu odpowiednich jednostek

akustycznych, realizowanym w koderze. Wpływa na to także mocno uproszczony model

syntezy pobudzenia w module rekonstrukcji sygnału. Percepcja fragmentów,

zawierających stosunkowo dużo składników bezdźwięcznych jest lepsza, gdyż szum

można łatwo zamodelować.

Bardzo ważnym wnioskiem płynącym z wyników badań jest znacząca przewaga

efektywności kodowania opracowanego systemu w stosunku do kodera LPC dla strumienia

600 bit/s. Słuchacze ocenili, że kodowanie mowy przy użyciu zaprojektowanego systemu

daje mowę o wiele lepszej jakości (różnica rzędu półtora punktu skali). Badanie

zrozumiałości również wypadło tutaj lepiej (ok. pół punktu skali). Należy także zaznaczyć,

że średni strumień binarny generowany przez opracowany koder waha się na poziomie 300

bit/s. Możemy zatem powiedzieć, że algorytm kodowania mowy, który jest tematem pracy,

daje dwukrotnie większy stopień kompresji sygnału, niż kodek LPC pracujący przy

podobnych parametrach analizy oraz pozwala otrzymać mowę zrekonstruowaną o wiele

lepszej jakości.

6. Zakończenie

- 98 -

6. Zakończenie

Celem niniejszej pracy magisterskiej była weryfikacja możliwości implementacji

systemu kodowania mowy przy ekstremalnie małych prędkościach transmisji. W tym

rozdziale zawarte jest podsumowanie zrealizowanych zadań szczegółowych, które

sformułowano przed rozpoczęciem prac badawczych i projektowych.

Na wstępie zweryfikowano użyteczność współczesnych technik kodowania mowy dla

bardzo małych przepływności, pod kątem wielkości otrzymywanego strumienia, poziomu

złożoności algorytmu, wielkości potrzebnych baz danych mowy itp. Spośród trzech

podstawowych technik budowy koderów mowy – wokodera segmentowego, wokodera

sylabowego oraz wokodera fonetycznego zdecydowano się na implementację tego

ostatniego.

Budowa sprawnego systemu kodowania wymusiła konieczność głębszego zrozumienia

wielu procesów, które zachodzą podczas produkcji sygnału mowy. Wytwarzanie sygnału

pobudzenia, reprezentowanie traktu głosowego w postaci układu liniowego o parametrach

zmiennych oraz charakterystyka podstawowych jednostek akustycznych mowy, jakimi są

fonemy, stanowią istotny kontekst merytoryczny dla implementacji kodeka mowy opartego

na algorytmach analizy i resyntezy sygnału.

Podczas prac nad koderem konieczne było przeprowadzenie wielu badań w zakresie

rozpoznawania mowy przy wykorzystaniu ukrytych modeli Markowa – HMM. Analizę

zagadnień budowy takich struktur oraz reprezentacji przy ich pomocy cech widmowych

fonemów wykonano przy wykorzystaniu popularnego narzędzia do treningu modeli HMM

i rozpoznawania mowy, jakim jest biblioteka HTK [9]. Przy jej pomocy opracowano

ostateczną formę modelu HMM, który wykorzystano podczas realizacji algorytmu

kodowania mowy, będącego tematem pracy. W projekcie wykorzystano także dostępne

narzędzia inicjalizacji i treningu modeli HMM zawarte w systemie HTK.

Do rozpoznawania fonemów przy pomocy HMM opracowano autorski algorytm, który

pozwolił na efektywne przeprowadzenie analizy wejściowego sygnału mowy, bez

konieczności posiadania informacji o jego gramatyce.

W dalszych etapach pracy nad koderem zaimplementowano algorytm analizy mel-

cepstralnej sygnału mowy oraz metodę ekstrakcji częstotliwości podstawowej,

wykorzystującą cepstrum sygnału.

6. Zakończenie

- 99 -

Stopień kompresji strumienia binarnego otrzymywanego na wyjściu układu, polepszono

stosując koder entropijny.

W celu zapewnienia spójnego systemu kodeka konieczne było opracowanie modułu

rekonstrukcji mowy. Kluczową sprawą okazał się wybór odpowiedniej metody filtracji

syntetycznie wygenerowanego sygnału pobudzenia. Zagadnieniu temu poświęcono wiele

badań eksperymentalnych. W rezultacie wykorzystano znany algorytm rekonstrukcji

widma amplitudowego ze współczynników MFCC, otrzymanych z modeli HMM.

Doświadczenia zdobyte podczas prac nad syntezą sygnału mowy pokazały, że znaczącym

elementem w tego typu systemie jest odpowiednio generowany sygnału pobudzenia. Jego

rekonstrukcja musi być wierna, gdyż znacząco wpływa on na ocenę subiektywną

odtwarzanej mowy. W opracowanym modelu dekodera przy pomocy techniki ciągłej

interpolacji częstotliwości F0 oraz doboru odpowiedniego – ograniczonego pasmowo

ciągu impulsów otrzymano zadowalający efekt.

Model kodera i dekodera mowy, składający się na część implementacyjna pracy,

pozwolił na przeprowadzenie symulacji opracowanego rozwiązania. Badano wielkość

otrzymanego strumienia oraz poziom jakości i zrozumiałości sygnału zrekonstruowanego.

Wyniki testów pokazały, że osiągnięto założony, główny cel projektu, w postaci bardzo

silnej kompresji sygnału na poziomie 300 bit/s. Jako odniesienie dla zaimplementowanego

systemu kodowania wybrano kodek LPC, skonfigurowany do pracy przy bardzo małej

prędkości transmisji – rzędu 600 bit/s. Przy pomocy fragmentów mowy z bazy danych

treningowych przeprowadzono także zgrubne badania poziomu zrozumiałości oraz

dokonano subiektywnej oceny jakości sygnału zrekonstruowanego. Otrzymane rezultaty

pokazały wyższość opracowanego schematu kodowania w stosunku do technik LPC przy

prędkości 600 bit/s.

Niniejsza praca magisterska zawiera opis architektury i rozwiązań szczegółowych

sprawnie działającego kodeka mowy, oferującego bardzo silną kompresję sygnału.

Efektywność jego działania zależy przede wszystkim od jakości i wielkości bazy danych

treningowych używanych do estymacji parametrów modeli HMM w koderze. Drugim

elementem krytycznym przedstawionego tutaj modelu jest algorytm produkcji pobudzenia

w układzie rekonstrukcji, który bezpośrednio wpływa na postać zrekonstruowanej mowy.

W perspektywie dalszych prac nad kodekiem zostaje reprezentacja cech dynamicznych

widma amplitudowego sygnału, analiza i transmisja informacji o jego obwiedni, czy

modyfikacja algorytmu otrzymywania współczynników MFCC z modeli fonemów.

Bibliografia

- 100 -

Bibliografia

[1] Bartkowiak M., Materiały z wykładu Przetwarzanie Dźwięku i Mowy, Politechnika

Poznańska 2006

[2] Goldberg R., Riek L., A Practical Handbook of Speech Coders, CRC Press LLC,

2000

[3] Al-Akaidi M., Fractal Speech Processing, Cambridge University Press New York,

2004

[4] Lee K., Cox R., A very low bitrate speech coder based on a recognition/synthesis

paradigm, IEEE Transactions On Speech and Audio Processing, 2001, vol.9, no. 5

[5] Yi K., Cheng J., Wang A., Zhang P., Liu F., Li W., Yang B., Du S., Gong J.,

A vocoder based on speech recognition and synthesis, Global Telecommunications

Conference, GLOBECOM’95, IEEE, 1995

[6] Bastien P., Voice Specific Signal Processing Tools, 23rd International Conference on

Signal Processing in Audio Recording and Reproduction, TC – Helicon, 2003

[7] Picone J., Doddington G., A phonetic vocoder, International Conference on

Acoustics, Speech, and Signal Processing, ICASSP-89, 1989

[8] Tokuda K., Masuko T., Hiroi J., Kobayashi T., Kitamura T., A very low bit rate

speech coder using HMM-based speech recognition/synthesis techniques,

Proceedings of the International Conference on Acoustics, Speech and Signal

Processing, IEEE, vol. 2, 1998

[9] Young S., EvermannG., Gales M., Hain T., Kershaw D., Liu X., Moore G., Odell J.,

Ollason D., Povey D., Valtchev V., Woodland P., The HTK Book (for HTK Version

3.4), Cambridge University Engineering Department, 2006

[10] Gerhard D., Pitch Extraction and Fundamental Frequency: History and Current

Techniques, Technical Report TR-CS 2003-06, University of Regina, Canada, 2003

[11] Noll A.M., Cepstrum pitch determination, The Journal of the Acoustical Society of

America, vol.44, no.6, str.1585 – 1591, 1968

[12] The CMU/CSTR kdt US English TIMIT database for speech synthesis,

http://festvox.org/dbs/dbs_kdt.html, stan na dzień 16.07.2008

[13] Niewiadomy D., Pelikant A., Digital Speech Signal Parametrization by Mel

Frequency Cepstral Ceofficients and Word Boundaries, 33 Journal of Applied

Computer Science

Bibliografia

- 101 -

[14] Zwiernik P., Wstęp do ukrytych modeli Markowa i metody Bauma-Welcha,

Uniwersytet Warszawski, 2005

[15] Yamagishi J., An Introduction to HMM-Based Speech Synthesis,

https://wiki.inf.ed.ac.uk/pub/CSTR/TrajectoryModelling/HTS-Introduction.pdf, 2006

[16] Yoshimura T., Tokuda K., Masuko T., Kobayashi T., Kitamura T., Mixed Excitation

for HMM-based Speech Synthesis, 7th European Conference on Speech

Communication and Technology, EUROSPEECH 2001

[17] Maia R., A Novel Excitation Approach for HMM-based Speech Synthesis, Report IV,

http://www.sp.nitech.ac.jp/~tokuda/tips/excitation8.pdf , 2007

[18] Chazan D., Hoory Ron., Cohen G., Zibulski M., Speech Reconstruction from Mel

Frequency Cepstral Coefficients and Pitch Frequency, Proceedings of the

International Conference on Acoustics, Speech and Signal Processing, IEEE, vol.3,

2000

[19] Tokuda K., Zen H., Sako S., Yamagishi Y., Masuko T., Nankaku Y., Reference

Manual for Speech Signal Processing Toolkit Ver. 3.0, SPTK Working Group, 2003

[20] RASTA/PLP/MFCC feature calculation and inversion,

http://labrosa.ee.columbia.edu/matlab, stan na dzień 18.08.2008.

[21] Keagy S., Integrating Voice and Data Networks, Cisco Press, 2000

Dodatek. Prototyp modelu HMM

- 102 -

Dodatek. Prototyp modelu HMM

~o

<VECSIZE> 13<NULLD><MFCC_0><FullC>

~h "proto"

<BEGINHMM>

<NUMSTATES> 5

<STATE> 2

<MEAN> 13

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

<InvCovar> 13

1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0

1.0 0.0 0.0

1.0 0.0

1.0

<STATE> 3

<MEAN> 13

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

<InvCovar> 13

1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0 0.0

Dodatek. Prototyp modelu HMM

- 103 -

1.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0

1.0 0.0 0.0

1.0 0.0

1.0

<STATE> 4

<MEAN> 13

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

<InvCovar> 13

1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0 0.0

1.0 0.0 0.0 0.0

1.0 0.0 0.0

1.0 0.0

1.0

<TRANSP> 5

0.0 1.0 0.0 0.0 0.0

0.0 0.6 0.4 0.0 0.0

0.0 0.0 0.6 0.4 0.0

0.0 0.0 0.0 0.7 0.3

0.0 0.0 0.0 0.0 0.0

<ENDHMM>