AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie WYDZIAŁ INŻYNIERII MECHANICZNEJ I ROBOTYKI Praca dyplomowa inżynierska Zbigniew Łatka Imię i nazwisko Inżynieria Akustyczna Kierunek studiów System syntezy mowy polskiej oparty o modele generatywne Temat pracy dyplomowej dr inż. Jakub Gałka Promotor pracy.. Ocena Kraków 2017
Kraków. dnia... Imię i nazwisko: Zbigniew Łatka Nr albumu: 269546 Kierunek studiów: Inżynieria Akustyczna Profil dyplomowania: Drgania i Hałas w Technice i Środowisku OŚWIADCZENIE Uprzedzony o odpowiedzialności karnej na podstawie art. 115 ust 1 i 2 ustawy z dnia 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych (tj. Dz.U.z 2006 r. Nr 90, poz. 631 z późn.zm.) : Kto przywłaszcza sobie autorstwo albo wprowadza w błąd co do autorstwa całości lub części cudzego utworu albo artystycznego wykonania, podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do lat 3. Tej samej karze podlega, kto rozpowszechnia bez podania nazwiska lub pseudonimu twórcy cudzy utwór w wersji oryginalnej albo w postaci opracowania, artystyczne wykonanie albo publicznie zniekształca taki utwór, artystyczne wykonanie, fonogram, wideogram lub nadanie, a także uprzedzony o odpowiedzialności dyscyplinarnej na podstawie art. 211 ust.1 ustawy z dnia 27 lip[ca 2005 r. Prawo o szkolnictwie wyższym (tj. Dz.U. z 2012 r. poz. 572, z późn.zm.) Za naruszenie przepisów obowiązujących w uczelni oraz za czyny uchybiające godności student ponosi odpowiedzialność dyscyplinarną przed komisją dyscyplinarną albo przed sądem koleżeńskim samorządu studenckiego, zwanym dalej sądem koleżeńskim, oświadczam, że niniejszą pracę dyplomową wykonałem(-am) osobiście i samodzielnie i że nie korzystałem (-am) ze źródeł innych niż wymienione w pracy.... podpis dyplomanta
Kraków, dn.. Imię i nazwisko: Zbigniew Łatka Nr albumu: 269546 Kierunek studiów: Inżynieria Akustyczna Specjalność: Drgania i Hałas w Technice i Środowisku OŚWIADCZENIE Świadomy odpowiedzialności karnej za poświadczanie nieprawdy oświadczam, że niniejszą inżynierską pracę dyplomową wykonałem osobiście i samodzielnie oraz nie korzystałam ze źródeł innych niż wymienione w pracy. Jednocześnie oświadczam, że dokumentacja praca nie narusza praw autorskich w rozumieniu ustawy z dnia 4 lutego 1994 roku o prawie autorskim i prawach pokrewnych (Dz. U. z 2006 r. Nr 90 poz. 631 z późniejszymi zmianami) oraz dóbr osobistych chronionych prawem cywilnym. Nie zawiera ona również danych i informacji, które uzyskałem w sposób niedozwolony. Wersja dokumentacji dołączona przeze mnie na nośniku elektronicznym jest w pełni zgodna z wydrukiem przedstawionym do recenzji. Zaświadczam także, że niniejsza inżynierska praca dyplomowa nie była wcześniej podstawą żadnej innej urzędowej procedury związanej z nadawaniem dyplomów wyższej uczelni lub tytułów zawodowych... podpis dyplomanta Kraków,..
Imię i nazwisko: Zbigniew Łatka Adres korespondencyjny: ul. Stachiewicza 45/12, 31-328 Kraków Temat pracy dyplomowej inżynierskiej: System syntezy mowy polskiej oparty o modele generatywne Rok ukończenia: 2017 Nr albumu: 269546 Kierunek studiów: Inżynieria Akustyczna Profil dyplomowania: Drgania i Hałas w Technice i Środowisku OŚWIADCZENIE Niniejszym oświadczam, że zachowując moje prawa autorskie, udzielam Akademii Górniczo-Hutniczej im. S. Staszica w Krakowie nieograniczonej w czasie nieodpłatnej licencji niewyłącznej do korzystania z przedstawionej dokumentacji inżynierskiej pracy dyplomowej, w zakresie publicznego udostępniania i rozpowszechniania w wersji drukowanej i elektronicznej 1. Publikacja ta może nastąpić po ewentualnym zgłoszeniu do ochrony prawnej wynalazków, wzorów użytkowych, wzorów przemysłowych będących wynikiem pracy inżynierskiej 2. Kraków,..... data podpis dyplomanta 1 Na podstawie Ustawy z dnia 27 lipca 2005 r. Prawo o szkolnictwie wyższym (Dz.U. 2005 nr 164 poz. 1365) Art. 239. oraz Ustawy z dnia 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych (Dz.U. z 2000 r. Nr 80, poz. 904, z późn. zm.) Art. 15a. "Uczelni w rozumieniu przepisów o szkolnictwie wyższym przysługuje pierwszeństwo w opublikowaniu pracy dyplomowej studenta. Jeżeli uczelnia nie opublikowała pracy dyplomowej w ciągu 6 miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba że praca dyplomowa jest częścią utworu zbiorowego." 2 Ustawa z dnia 30 czerwca 2000r. Prawo własności przemysłowej (Dz.U. z 2003r. Nr 119, poz. 1117 z późniejszymi zmianami) a także rozporządzenie Prezesa Rady Ministrów z dnia 17 września 2001r. w sprawie dokonywania i rozpatrywania zgłoszeń wynalazków i wzorów użytkowych (Dz.U. nr 102 poz. 1119 oraz z 2005r. Nr 109, poz. 910).
Kraków, dnia AKADEMIA GÓRNICZO-HUTNICZA WYDZIAŁ INŻYNIERII MECHANICZNEJ I ROBOTYKI TEMATYKA PRACY DYPLOMOWEJ INŻYNIERSKIEJ dla studenta IV roku studiów stacjonarnych Zbigniew Łatka imię i nazwisko studenta TEMAT PRACY DYPLOMOWEJ INŻYNIERSKIEJ: System syntezy mowy polskiej oparty o modele generatywne Promotor pracy: dr inż. Jakub Gałka Recenzent pracy: prof. dr hab. inż. Piotr Kleczkowski Podpis dziekana: PLAN PRACY DYPLOMOWEJ 1. Omówienie tematu pracy i sposobu realizacji z promotorem. 2. Zebranie i opracowanie literatury dotyczącej tematu pracy. 3. Zebranie i opracowanie wyników badań. 4. Analiza wyników badań, ich omówienie i zatwierdzenie przez promotora. 5. Opracowanie redakcyjne. Kraków,..... data podpis dyplomanta TERMIN ODDANIA DO DZIEKANATU: 20 r. podpis promotora
Akademia Górniczo-Hutnicza im. Stanisława Staszica Kraków,... Wydział Inżynierii Mechanicznej i Robotyki Kierunek: Inżynieria Akustyczna Profil dyplomowania: Drgania i Hałas w Technice i Środowisku Zbigniew Łatka Praca dyplomowa inżynierska System syntezy mowy polskiej oparty o modele generatywne Opiekun: dr inż. Jakub Gałka STRESZCZENIE W dobie zwiększającego się zapotrzebowania na systemy syntezy mowy, wynikającego z gwałtownego rozwoju przemysłu tzw. inteligentnych urządzeń i związanej z nim redefinicji sposobu kontaktu człowieka z maszynami, tradycyjne korpusowe syntezatory mowy stają się rozwiązaniami zbyt kosztownymi, niewystarczająco efektywnymi i nieopłacalnymi w masowej implementacji. W niniejszej pracy zaprezentowany został syntezator nowej generacji, wykorzystujący generatywne modele parametryczno-statystyczne, umożliwiające obniżenie kosztu przygotowania systemu oraz jego potencjalne zastosowanie w nowych dziedzinach wykorzystujących technologie mowy. 6
AGH University of Science and Technology Kraków, the... Faculty of Mechanical Engineering and Robotics Field of Study: Acoustic engineering Specialisations: Noise and Vibration in Technology and the Enviroment Zbigniew Łatka Engineer Diploma Thesis Polish speech synthesis system based on generative models Supervisor: Ph.D. Jakub Gałka SUMMARY In an era of increasing demand for speech synthesis systems, resulting from the rapid development of so called intelligent machines industry and the associated redefinition of the way of human contact with electronic devices, traditional unit-selection synthesisers become too expensive and unprofitable for mass implementation. In this thesis the new generation synthesiser is presented, using generative statistical parametric models, allowing to lower the cost of preparing the system and its potential application in new areas using speech technologies. 7
Spis treści Wykaz akronimów... 9 1. Wstęp... 10 2. Przegląd technik syntezy mowy... 11 2.1. Synteza difonów... 11 2.2. Selekcja jednostek... 11 2.3. Synteza parametryczno-statystyczna... 12 3. Szczegółowy opis realizacji projektu... 13 3.1. Ogólny schemat systemu... 13 3.2. Wybór narzędzi programowych... 16 3.3. Korpus mowy... 19 3.4. Przygotowanie bazy mowy... 20 3.5. Parametryzacja nagrań korpusu... 21 3.6. Inicjalizacja modeli HMM... 24 3.7. Reestymacja modeli HMM... 28 3.8. Przygotowanie danych do syntezy... 30 3.9. Generacja parametrów z modeli HMM... 30 3.10. Ewaluacja pierwszego modelu, rozkłady typu multi-space... 32 3.11. Integracja cech dynamicznych, wielostrumieniowa struktura modeli HMM 34 3.12. Wielokomponentowe mikstury Gaussa... 39 4. Ewaluacja systemu testy odsłuchowe... 42 5. Podsumowanie... 46 6. Bibliografia... 47 8
Wykaz akronimów DMOS GMM HMM HTK HTS LF0 MFCC MLF MOS MVF SAMPA TTS ang. Differential Mean Opinion Score złożone modele Gaussa (ang. Gaussian Mixture Models) ukryty (niejawny) model Markova (ang. Hidden Markov Models) ang. Hidden Markov Models Toolkit ang. HMM-based Speech Synthesis System log(f0) melowo-częstotliwościowe współczynniki cepstralne (ang. Mel Frequency Cepstral Coefficients) ang. Master Label File ang. Mean Opinion Score najwyższa dźwięczna częstotliwość (ang. Maximum Voiced Freqency) międzynarodowy komputerowy alfabet fonetyczny (ang. Speech Assesment Methods Phonetics Alphabet) synteza mowy (ang. Text To Speech) 9
1. Wstęp Głównym zadaniem syntezy mowy, jako działu technologii generowania i przetwarzania mowy, jest zamiana tekstu pisanego na wypowiedź w postaci sygnału dźwiękowego. Podstawowym zastosowaniem syntezatorów mowy na przestrzeni ostatnich kilkudziesięciu lat było odczytywanie różnego rodzaju komunikatów np. na dworcach kolejowych, w sklepach, systemach odczytujących wiadomości czy translatorach. Możliwość generacji dowolnej treści wypowiedzi sprawia, że systemy takie są atrakcyjną alternatywą dla nagrywania pełnej treści komunikatów w studiach lektorskich. W przypadku dużego rozmiaru wymaganego zbioru tekstów lub konieczności jego regularnego poszerzania są to również rozwiązania o wiele mniej kosztowne. Dynamicznemu rozwojowi technologicznemu towarzyszy wzrost zapotrzebowania na wysokiej jakości syntezę mowy, wraz z którym pojawiają się coraz to nowsze jej zastosowania. Istotnym obszarem jest tu szczególnie sektor tzw. urządzeń inteligentnych. Co raz częściej spotykaną sytuacją jest udostępnianie użytkownikom możliwości głosowego sterowania dowolnym urządzeniem. Popularnymi przykładami mogą tu być nowoczesne samochody, telefony, komputery, wirtualni asystenci, roboty czy systemy zarządzania domem. Naturalnym elementem takich rozwiązań, oprócz rozpoznawania mowy i realizowania poleceń wydawanych przez człowieka, jest również dążenie do wygenerowania przez urządzenie odpowiedzi potwierdzającej zrozumienie i wykonanie danego polecenia czy też nawet nawiązywanie dialogu człowiek-maszyna. Konieczność zapewnienia płynnej interakcji oraz potrzeba implementacji oprogramowania w różnego rodzaju systemach wbudowanych uwydatnia wady klasycznych metod syntezy. Najpopularniejsza metoda korpusowa selekcja jednostek dając wysoką jakość generowanego sygnału, jest też jednocześnie metodą najbardziej kosztowną w realizacji i wymagającą najbardziej rozbudowanych zasobów sprzętowych [1][2]. Stosunkowo długi czas syntezy, wysoki koszt przygotowania głosu i utrzymywania systemu generuje zapotrzebowanie na opracowywanie nowych metod syntezy mowy. W niniejszej pracy przedstawiona została idea syntezy nowej generacji syntezy parametryczno-statystycznej [3]. Omówione szczegółowo zostały wszystkie zagadnienia związane z jej realizacją. Opracowany został również kompletny system syntezy mowy polskiej wraz z jego ewaluacją. Na przykładzie stworzonego systemu przedstawiona została problematyka projektowania syntezy parametryczno-statystycznej wraz z zaproponowaniem możliwych rozwiązań i ulepszeń. 10
2. Przegląd technik syntezy mowy 2.1. Synteza difonów Jest to rodzaj syntezy konkatenacyjnej. Jej głównym założeniem jest maksymalne ograniczenie rozmiaru bazy nagrań potrzebnej do wygenerowania głosu [4]. Każda jednostka fonetyczna (najczęściej difon fonem z jednostronnym kontekstem) posiada tylko jedną reprezentację w wejściowej bazie nagrań. W celu uzyskania odpowiednio zróżnicowanej wyjściowej mowy sygnały bazowych jednostek są przetwarzanie tak, aby po ich połączeniu cechy prozodyczne takie jak intonacja, iloczas czy akcentowanie były odpowiednie dla syntetyzowanego zdania. Docelowe wartości parametrów reprezentujących te zjawiska obliczane są przy użyciu regresji liniowej na podstawie analizy językowej zdania. Analiza oparta jest o modele wykorzystujące drzewa decyzyjne. Za pomocą drzew decyzyjnych sprawdza się takie cechy jak: pozycja difonu w sylabie, wyrazie, zdaniu, rodzaj generowanej głoski, kontekst wystąpienia difonu, rozkład akcentów [5] itp. Niedoskonałość modeli matematycznych opisujących sygnał mowy oraz konieczność stosowania szeregu algorytmów cyfrowego przetwarzania sygnałów sprawia, że generowana w ten sposób mowa jest bardzo nienaturalna i często mało zrozumiała [6]. W związku z tym synteza difonów jest obecnie coraz rzadziej stosowana i z powodzeniem zastępowana przez inne jej rodzaje. 2.2. Selekcja jednostek Naturalnym rozwiązaniem problemów syntezy difonów jest zwiększenie ilości przykładów reprezentujących każdą jednostkę fonetyczną. W ten sposób można całkowicie odrzucić użycie zarówno niedoskonałych modeli matematycznych, jak i cyfrowego przetwarzania, które degraduje jakość sygnału. Możliwe jest skupienie się wyłącznie na znajdowaniu jednostek dających naturalne połączenia bez konieczności ich modyfikowania [2]. Aby jednak zapewnić ilość jednostek będącą w stanie pokryć ogromną ilość zjawisk akustycznych, kontekstów głosek, sylab i wyrazów występujących w danym języku, rozmiar korpusu mowy musi być odpowiednio duży. Dla uzyskania dobrej jakości głosu długość nagrań korpusu powinna sięgać kilkunastu, kilkudziesięciu godzin [5]. Synteza korpusowa oparta o selekcję jednostek jest zatem rozwiązaniem bardzo kosztownym. Dodatkową wadą jest również to, że na skutek wykluczenia 11
wszelkich metod przetwarzania sygnału z jednego korpusu mowy można stworzyć tylko jeden głos będący odwzorowaniem korpusu. Skutkuje to wielokrotnym wzrostem kosztu produkcji komercyjnych systemów, które oferują wiele różnych głosów. Dobór jednostek w syntezie korpusowej determinowany jest przez odpowiednio zaprojektowaną funkcję kosztu zawierającą dwie zasadnicze grupy kosztów: koszt łączenia i koszt celu [2]. Pierwszy z nich określa jakość połączenia dwóch jednostekkandydatów. Sprawdzane jest tu podobieństwo widm, amplitudy i częstotliwości. Składowe kosztu celu służą natomiast określeniu, czy cechy kontekstowe danego kandydata zgadzają się z cechami jednostki, która ma być produktem syntezy. Mowa tu o zgodności pozycji jednostki w sylabie, wyrazie, zdaniu, zgodności lewego i prawego kontekstu, akcentu, części mowy czy sąsiedztwa interpunkcji. Konieczność sprawdzania jakości łączenia i zgodności cech tak dużej ilości jednostek sprawia, że synteza mowy typu selekcja jednostek jest również najbardziej złożoną obliczeniowo i czasochłonną metodą syntezy [1][2]. Fakt ten bardzo ogranicza możliwości jej implementacji i stosowania. Korpusowe syntezatory mowy sprawdzają się jako systemy odczytywania komunikatów i wiadomości. Usłyszeć je można na dworcach kolejowych, w sklepach, w systemach odczytujących e-maile czy też w infoliniach telefonicznych. Potrzeba przechowywania dużej bazy nagrań oraz wymaganie dużej mocy obliczeniowej wykluczają w dużym stopniu ten rodzaj syntezy z masowej implementacji na urządzeniach mobilnych czy w systemach wbudowanych. Stosunkowo długi czas syntezy sprawia również, że staje się ona mało użyteczna w rozwiązaniach służących sprawnemu komunikowaniu się człowieka z maszynami. Nowoczesne inteligentne urządzenia (telefony, samochody, wirtualni asystenci, boty internetowe, systemy zarządzania domem) wymagają wydajnych algorytmów będących w stanie zapewnić odpowiednio szybką reakcję komputera na komendy człowieka, niezbędną dla swobodnej i komfortowej interakcji. 2.3. Synteza parametryczno-statystyczna Najmłodszą oraz ciągle rozwijaną metodą syntezy jest synteza parametrycznostatystyczna [3]. W przeciwieństwie do syntezy difonów i selekcji jednostek jest to synteza typu generatywnego otrzymywany sygnał mowy jest w całości syntetyczny, rzeczywiste nagrania głosu nie biorą udziału w jego generacji. Baza nagrań mowy służy 12
jedynie wytrenowaniu statystycznych modeli głosu do opisu pojedynczych jednostek fonetycznych najczęściej wykorzystywane są ukryte modele Markova [7]. Zastosowanie statystycznego opisu mowy sprawia, że przechowywanie nagrań korpusu w gotowym systemie staje się już niepotrzebne. Dodatkowo fakt, iż każda jednostka reprezentowana jest tylko przez jeden prosty model (nie zaś setki lub tysiące próbek jak w selekcji jednostek) sprawia, że proces syntezy mowy staje się o wiele mniej złożony obliczeniowo, a tym samym szybszy niż w przypadku selekcji jednostek. Podstawowym źródłem dźwięku w syntezie parametryczno-statystycznej jest tzw. vocoder [8]. Jest to rodzaj generatora sygnałów umożliwiającego regulację częstotliwości i obwiedni widma pobudzenia. Generacja mowy odbywa się poprzez pobieranie wartości tych parametrów z wytrenowanych modeli statystycznych i modyfikowanie przy ich użyciu sygnału pobudzenia vocodera. Niewielki rozmiar pamięci komputerowej potrzebnej do przechowywania takich systemów, ich lepsza niż w syntezie korpusowej szybkość działania oraz zachowanie dobrej jakości generowanej mowy sprawiają, że są one atrakcyjną alternatywą dla syntezy typu selekcja jednostek [5]. Skalowalność parametrów modeli umożliwia również zmienianie i dostrajanie wyjściowego brzmienia głosu, dzięki czemu przy użyciu tylko jednego treningowego korpusu mowy uzyskać można wiele różnych syntetycznych głosów [9]. 3. Szczegółowy opis realizacji projektu 3.1. Ogólny schemat systemu W procesie tworzenia syntezatora parametryczno-statystycznego HMM wyróżnić można dwa zasadnicze etapy odpowiadające przygotowaniu dwóch głównych elementów całego systemu - bazy modeli HMM oraz narzędzi pozwalających na przetworzenie zawartych w modelach parametrów na sygnał mowy. Ogólny schemat systemu przedstawiony został na rysunku 1. 13
Rysunek 1. Ogólny schemat systemu syntezatora Pierwszy etap, nazywany treningiem, rozpoczyna się od przygotowania bazy mowy, która posłuży w dalszych etapach jako zbiór danych treningowych, z których czerpana będzie informacja o wartościach parametrów akustycznych mowy. Głównym elementem bazy jest zbiór nagrań zawierający przykłady ludzkiej mowy. Najczęściej każde nagranie zawiera jedno zdanie, odczytywane przez profesjonalnego lektora. Takie korpusy mowy, dla zastosowania w syntezie HMM, obejmują od kilku do kilkunastu godzin nagrań jednego głosu, co przekłada się na ilość zdań równą około dwóch do dziesięciu tysięcy. Oprócz nagrań baza mowy powinna zawierać także pliki z transkrypcją fonetyczną każdego zdania oraz pliki zawierające informacje o dokładnych ramach czasowych każdej jednostki fonetycznej w danym zdaniu (tzw. anotacja nagrania). Informacje te umożliwiają wydzielenie z sygnału mowy konkretnych, specyficznych fragmentów, na podstawie których sporządzane są statystyki dla modeli HMM [10]. Podstawowym celem każdego systemu TTS jest uzyskanie głosu jak najbardziej podobnego do głosu, na podstawie którego został wytrenowany. Aby stworzyć naturalnie 14
brzmiący syntezator, zdolny do odtworzenia różnorodności brzmienia ludzkiego głosu, należy przygotować odpowiedni korpus. Zebrany materiał dźwiękowy musi uwzględniać różnice związane z intonacją, frazowaniem i akcentowaniem różnych części wypowiedzi [11]. W praktyce dobry syntezator powinien brzmieć dokładnie tak samo jak głos lektora, na podstawie którego został stworzony. Wszelkie dalsze modyfikacje takiego głosu powinny stanowić jedynie element post-processingu. Analiza sygnału mowy w naturalnej reprezentacji jest trudna to przeprowadzenia. Nagrania mowy, w wersji cyfrowego zapisu, są wektorami próbek wyznaczającymi chwilową amplitudę sygnału. W kontekście percepcji dźwięku amplituda sygnału nie jest nośnikiem kluczowych dla obioru informacji. Słuch ludzki o wiele bardziej wyczulony jest na zmiany częstotliwości i barwę dźwięku. Stąd też przy projektowaniu syntezy parametryczno-statystycznej nie posługujemy się bezpośrednio oscylogramem zarejestrowanej fali dźwiękowej, lecz jego sparametryzowaną reprezentacją. Mając na uwadze konieczność wykorzystania później takich parametrów jako elementów kształtujących sygnał pobudzający vocodera, będącego ostatnim ogniwem syntezy HMM, naturalnym staje się wybór reprezentacji częstotliwościowych cech sygnału. Podstawowymi parametrami opisującymi przebieg sygnału dźwiękowego są tu ton podstawowy (krtaniowy) głosu F0 oraz melowo-częstotliwościowe współczynniki cepstralne MFCC [8]. W taki sposób sparametryzowana baza mowy stanowi argument wejściowy dla algorytmów odpowiadających za trening modeli HMM. Produktem treningu jest baza modeli HMM, będących formą statystycznego opisu parametrów akustycznych ekstrahowanych z bazy nagrań. Drugim głównym etapem projektowania systemu syntezy HMM jest przygotowanie szeregu narzędzi służących do realizacji głównego zadania syntezy, czyli przetwarzaniu tekstu pisanego na sygnał mowy, przy użyciu tylko i wyłącznie wytrenowanych wcześniej modeli HMM. Na tym etapie pierwszym zadaniem jest normalizacja wejściowego tekstu, który chcemy poddać syntezie. Polega ona na znalezieniu i odpowiednim przetworzeniu takich fragmentów tekstu, których wymowa nie jest jednoznaczna. Do tej grupy należą m.in. liczby, skróty, skrótowce, inicjały czy też słowa obce lub nieznane. Wszelkie skróty należy rozwinąć, a liczby, daty czy godziny zapisać w formie słownej. Tak przygotowany 15
tekst poddawany jest transkrypcji fonetycznej. Kolejne difony w transkrybowanym tekście tworzą łańcuch, do którego dopasowywany jest odpowiadający mu ciąg modeli HMM. Poprzez połączenie w ten sposób pojedynczych modeli HMM uzyskiwany jest jeden duży, wielostanowy model. Na jego podstawie generowany jest ciąg obserwacji (wektory parametrów) reprezentujący całą wejściową wypowiedź. Generacja kolejnych obserwacji polega na wyborze takich wartości parametrów, dla których spełniony zostaje warunek maksymalizacji prawdopodobieństwa ciągu obserwacji przy zadanym modelu HMM [12]. Ostatnim etapem syntezy jest przekazanie wygenerowanych parametrów akustycznych do vocodera. Vocoder jako samodzielne urządzenie jest jedynie generatorem jednostajnego pobudzenia (najczęściej jest to połączenie sygnału piłokształtnego oraz szumu białego). Dostarczone parametry akustyczne służą ukształtowaniu nowego, zmiennego w czasie sygnału. Parametry częstotliwościowe odpowiadają za zmienność częstotliwości pobudzenia, a parametry spektralne nadają wyjściowemu sygnałowi odpowiednie widmo. Symultaniczne modelowanie obu tych zależności daje w rezultacie sygnał będący imitacją ludzkiego głosu [8]. 3.2. Wybór narzędzi programowych Każdy z etapów projektowania parametryczno-statystycznego syntezatora mowy wymaga posługiwania się specjalistycznymi narzędziami programowymi pozwalającymi na efektywne przetwarzanie ogromnej ilości danych pochodzących z nagrań korpusu mowy, jak i na wykonywanie złożonych algorytmicznie obliczeń w czasie treningu systemu. Wykorzystanie takich narzędzi pozwala projektantowi systemu na bardzo precyzyjne i szczegółowe kontrolowanie każdego aspektu projektu, zapewniając jednocześnie pewien stopień automatyzacji wykonywania powtarzających się sekwencji obliczeniowych. Pierwszym z programów wykorzystanych w projekcie przez autora jest stworzony przez Zespół Przetwarzania Sygnałów Katedry Elektroniki Akademii Górniczo Hutniczej system generacji transkrypcji fonetycznej tekstów Ortfon 2.0. Program ten służy do zamiany tekstu ortograficznego na zapis fonetyczny. Jego działanie oparte jest na wykorzystaniu tabel z regułami zamiany różnych łańcuchów znaków ortograficznych na odpowiadające im znaki fonetyczne. Znaki transkrypcji fonetycznej pochodzą 16
z wewnętrznego alfabetu Ortfona, będącego jednoznakowym zapisem symboli polskiej wersji międzynarodowego alfabetu fonetycznego SAMPA [13]. W alfabecie Ortfona dodany został jeszcze jeden specjalny znak - P - oznaczający fonem ciszy. Tabele reguł zostały opracowane przez Steffen-Batóg, Nowakowski [14] oraz Pluciński [15]. Tabela 1. Lista symboli alfabetu SAMPA wraz z opowiadającymi im symbolami w alfabecie Ortfona oraz przykładami transkrypcji SAMPA Ortfon Ortograficzny zapis Transkrypcja i i PIT pit Z T żyto ZIto I y typ tip s' Y świt s'vit e e test test z' Z źle z'le a a pat pat x x hymn ximn o o pot pot ts I cyk tsik u u puk puk dz U dzwon dzvon e~ D gęś ge~s' ts Q czyn tsin o~ E wąs vo~s dz X dżem dzem p p pik pik ts' O ćma ts'ma b b bit bit dz' L dźwig dz'vik t t test test m m mysz mis d d dym dim n n nasz nas k k kit kit n' R koń kon' g g gen gen N N pęk penk f f fan fan l l luk luk v v wilk vilk r r ryk rik s s syk sik w w łyk wik z z zbir zbir j j jak jak S S szyk SIk Program Ortfon 2.0 wykorzystany został w projekcie do wykonania transkrypcji fonetycznej tekstów korpusu nagrań mowy. Drugim programem pozwalającym na przygotowanie kompletnej bazy mowy jest opracowany również w Zespole Przetwarzania Sygnałów AGH system rozpoznawania mowy polskiej Sarmata [16]. Na potrzeby projektu syntezatora użyty został jego moduł, służący wykonywaniu anotacji czasowej nagrań korpusu na podstawie przygotowanej wcześniej transkrypcji fonetycznej zdań. Program ten, przetwarzając kolejne nagrania korpusu, dokonuje ich segmentacji, wskazując dokładne ramy czasowe każdego występującego w nich fonemu. W wyniku takiej operacji każdemu nagraniu korpusu przyporządkowywany zostaje plik tekstowy zawierający pełną informacje czasowofonetyczną danego nagrania. 17
Następnym etapem po przygotowaniu bazy mowy jest parametryzacja jej nagrań. Do ekstrakcji cech z sygnału akustycznego zdecydowano się użyć pakietu programów Ahocoder [17]. Zasadniczą jego częścią jest zaawansowany vocoder typu mixedexcitation [18], będący dekoderem strumieni parametrów akustycznych w ostatnim etapie syntezy. Oprócz tego pakiet posiada również program służący odwrotnej operacji, tj. kodowaniu nagrań do postaci sparametryzowanej. Cały zestaw narzędzi dostępny jest zarówno w wersji wykonywalnych programów dla systemu Windows, jak i skryptów dedykowanych środowisku obliczeniowemu Matlab. Wielofunkcyjność pakietu oraz możliwość łatwej kontroli i prezentacji danych w Matlabie z pewnością ułatwia pracę i może stanowić argument za jego wyborem. Główną motywacją przy wyborze Ahocodera jako środowiska do vocodingu była jednak wysoka jakość generowanego przez niego sygnału mowy, potwierdzona m.in. w pracach nad słowackim syntezatorem mowy [19]. Szczegółowy opis działania systemu przedstawiony został w rozdziale 3.5. Narzędziem odpowiadającym za przygotowanie głównej części projektu jest zestaw programów służących przeprowadzaniu treningu ukrytych modeli Markova. Pakiet HTK, czyli Hidden Markov Model Toolkit [20][21] umożliwia budowanie, trenowanie oraz ewaluacje systemów opartych o ukryte modele Markova. Jest to narzędzie wykorzystywane powszechnie w zagadnieniach związanych z rozpoznawaniem mowy, zawiera ono jednak bardzo dużo funkcjonalności niezbędnych przy projektowaniu syntezy parametryczno-statystycznej. Chodzi tu m.in. o definiowanie modeli HMM, ich inicjalizację oraz wykonywanie kolejnych reestymacji parametrów modeli. Kolejnym narzędziem, stanowiącym uzupełnienie systemu HTK, jest pakiet programów HTS (HMM-based Speech Synthesis System) [22]. Jest to nakładka dla HTK uzupełniająca go o brakujące funkcjonalności niezbędne przy tworzeniu syntezatora HMM. Są to: algorytm generacji parametrów akustycznych na podstawie łańcucha modeli HMM oraz algorytm umożliwiający sporządzanie i zapis statystyk dotyczących czasu trwania poszczególnych jednostek fonetycznych w korpusie. Ostatnim elementem, służącym skomunikowaniu poszczególnych programów, jest pochodzący z innego pakietu do przetwarzania mowy Voicebox a [23] skrypt umożliwiający zapis sparametryzowanej reprezentacji sygnału dźwiękowego do formatu obsługiwanego przez HTK. 18
3.3. Korpus mowy Korpus mowy wykorzystany w projekcie syntezatora HMM pochodzi z zasobów Zespołu Przetwarzania Sygnałów AGH. Korpus ten przygotowywany był z myślą o zastosowaniach w systemach TTS. Na jego zawartość składają się 2123 nagrania pojedynczych zdań o łącznej długości ok. 3 godzin oraz tekstowy plik MLF (ang. Master Label File) zawierający listę nagrań korpusu, treść zdań odpowiadających danym nagraniom oraz informację o długości trwania każdego nagrania. Teksty korpusu pochodzą ze zbiorów Narodowego Korpusu Języka Polskiego [24][25] i zostały dobrane tak, aby ich zawartość fonetyczna była jak najbardziej zróżnicowana. Korpus został również przefiltrowany w celu usunięcia z niego zdań zawierających wyrazy problematyczne takie jak liczby, skróty, akronimy czy wyrazy obce, które utrudniają prawidłowe wykonanie transkrypcji fonetycznej. Nagrania korpusu zostały zarejestrowane w komorze bezechowej na Katedrze Wibroakustyki AGH. Lektorem była młoda kobieta, wykształcona wokalnie, pracująca w teatrze. Cechą charakterystyczną tego korpusu jest niezwykle monotonny ton głosu. Jest on pozbawiony wszelkiej ekspresji, intonacja pozostaje cały czas niezmienna, nawet w zdaniach pytających. Taki zabieg jest celowy i wynika z założeń projektowych korpusu. Niestety ma on swoje uzasadnienie wyłącznie w przypadku syntezy difonowej, gdzie wszystkie parametry brzmienia głosu są modelowane i modyfikowane na podstawie analizy struktury językowej syntetyzowanego zdania [4]. W przypadku syntezy korpusowej unit-selection oraz syntezy parametryczno-statystycznej cechy prozodyczne nie są w żaden sposób modelowane są jedynie odwzorowaniem cech głosu lektora. Należy zatem spodziewać się, że wyjściowy głos przygotowywanego w ramach projektu syntezatora będzie bardzo monotonny i z tego też powodu postrzegany jako mało naturalny. Nie będzie to jednak wina złego doboru parametrów modeli, lecz niewłaściwego wyboru korpusu, nieadekwatnego do zastosowanego rodzaju syntezy. Dla celów niniejszego projektu nie udało się niestety uzyskać dostępu do lepszej bazy nagrań. 19
3.4. Przygotowanie bazy mowy Aby uzyskać kompletną bazę mowy, możliwą do wykorzystania w syntezatorze HMM, należy uzupełnić ją o następującą zawartość: pliki z transkrypcją zdań korpusu oraz pliki zawierające anotację czasową nagrań na poziomie jednostek fonetycznych wybranych jako podstawowa struktura, która będzie modelowana ukrytymi modelami Markova [26]. Do wykonania transkrypcji fonetycznej użyto programu Ortfon 2.0. Transkrypcja oparta jest o tabele reguł dla polskiej wersji alfabetu fonetycznego SAMPA. Dla wygody przetwarzania wyjściowej transkrypcji i łatwiejszego rozdzielania łańcuchów symboli przygotowano skrypt w języku programowania Python, który zamienia każdy z 38 symboli alfabetu Ortfona, mogących mieć jedno lub dwuznakową formę (litery, cyfry, znaki specjalne), na jednoznakowe symbole w postaci małych lub wielkich liter alfabetu łacińskiego. Do wykonania anotacji czasowej nagrań wykorzystano moduł systemu rozpoznawania mowy Sarmata odpowiadający za segmentacje nagrań treningowych metodą force alignment. Produktem takiej operacji jest zestaw plików tekstowych (jedno nagranie jeden plik), w których linijka po linijce wypisane są wszystkie jednostki fonetyczne w zdaniu wraz z informacją o początku i końcu czasu ich trwania (tzw. label files). Czas wyznaczany jest z rozdzielczością 1ms, zaś jego zapis jest zgodny z formatem HTK, gdzie wartość jednostkowa odpowiada czasowi 100ns. Rysunek 2. Przykładowy plik z anotacją zdania "Nie było więc źle" na poziomie difonów 20
Już na etapie wykonywania plików z anotacją należy zdecydować, jaki rodzaj jednostek fonetycznych chcemy modelować później przy użyciu modeli HMM. Pojedynczych fonów w użytym alfabecie jest 38. Modelowanie tylko 38 bezkontekstowych jednostek radykalnie obniżyłoby różnorodność cech generowanego sygnału mowy. Każdy z modeli HMM ma za zadanie wytrenowanie uśrednionej wersji wszystkich dostarczonych do niego przykładów danej jednostki. Chcąc zwiększyć ilość modeli HMM, a tym samym zapewnić większą ilość możliwych do wygenerowania dźwięków, można posłużyć się inną niż fonemy jednostką fonetyczną, np. difonami. Jest to najpopularniejsza w przypadku syntezatorów mowy jednostka fonetyczna, jednak w zależności od rodzaju syntezy jest ona różnie definiowana. W syntezie typu unitselection difon definiowany jest najczęściej jako okres pomiędzy stanami ustalonymi sygnałów dwóch sąsiadujących ze sobą fonemów. Ustalenie takich granic jednostek zmniejsza ryzyko wystąpienia słyszalnej nieciągłości przy łączeniu ich ze sobą. W syntezie HMM difon definiowany jest jako fonem z ustalonym prawym kontekstem. Dla przykładu mając obok siebie sąsiadujące ze sobą fonemy X i Y, możemy utworzyć z nich difon XY, którego ramy czasowe będą pokrywały się z ramami fonemu X. W ten sposób ilość możliwych do uzyskania jednostek jest kwadratem ilości pojedynczych fonemów. Dla 38 znakowego alfabetu daje to 1444 difony. Ilość taka pozwala na pokrycie większości rozróżnianych przez ludzki słuch zjawisk dźwiękowych w mowie, zapewniając jednocześnie odpowiednią ilość danych treningowych dla każdego modelu. Przykład anotacji nagrania na poziomie difonów zaprezentowany został na rysunku 2. 3.5. Parametryzacja nagrań korpusu Ostatnim etapem przygotowania danych przed rozpoczęciem treningu modeli HMM jest parametryzacja nagrań korpusu. Dobór parametrów jest bezpośrednio związany z algorytmem vocodingu zastosowanym w wybranym do projektu vocoderze. Ahocoder jest vocoderem typu mixed-excitation. Oznacza to, że zastosowanym w nim pobudzeniem jest suma odpowiednio przefiltrowanych sygnałów w postaci okresowego przebiegu piłokształtnego oraz szumu białego [18]. W prostszych vocoderach pobudzenia okresowe i szumowe nie występują nigdy jednocześnie są one przełączane na podstawie określenia czy dany fragment zdania jest dźwięczny czy bezdźwięczny. Określenia takie dokonywane są na podstawie analizy przebiegu tonu podstawowego F0. 21
W Ahocoderze charakterystyka sygnału pobudzenia modyfikowana jest przy użyciu trzech strumieni parametrów: logarytmu częstotliwości podstawowej tonu krtaniowego LF0, maksymalnej częstotliwości dźwięcznej części sygnału MVF (ang. maximum voiced frequency) oraz wektora melowo-częstotliwościowych współczynników cepstralnych MFCC. We wszystkich etapach prac od treningu modeli HMM do syntezy sygnał mowy reprezentowany jest przez te trzy parametry. Do ich ekstrakcji z bazy nagrań korpusu posłużył koder stanowiący część pakietu programów Ahocodera. Wyjściowe pliki kodera są zapisywane w taki sposób, aby móc stanowić gotowe wejście dla vocodera. O wysokiej jakości Ahocodera świadczy otrzymywanie niemal bezstratnego sygnału (pod kątem jakości, naturalności i zrozumiałości) w testach wsobnych, które polegają na wtórnej reprodukcji sygnału dźwiękowego z jego sparametryzowanej reprezentacji. Pierwszy z wykorzystanych w projekcie parametrów logarytm częstotliwości podstawowej tonu krtaniowego (LF0) odpowiada za zmienność częstotliwości pobudzenia okresowego w procesie vocodingu. Ton podstawowy F0 w przypadku sygnału mowy jest wyznaczalny jedynie dla jej dźwięcznych fragmentów. W przypadku głosek bezdźwięcznych takich jak sybilanty, w których okresowy ton krtaniowy nie występuje, przyjmuje się, że wartość F0 w ich obrębie jest równa zeru. W Ahocoderze wartość logarytmu naturalnego z zera przyjmowana jest jako -10 10. Zastosowanie tak jednoznacznego podziału sygnału na fragmenty dźwięczne i bezdźwięczne wykorzystywane jest w prostszych vocoderach jako element przełączający rodzaj pobudzenia z okresowego na szumowe i odwrotnie. Vocodery typu mixed-excitation działają na zasadzie łączenia odpowiednio przefiltrowanych pobudzeń okresowego i szumowego. Pasmo wyjściowego sygnału podzielone jest na 3 węższe środkowe pasmo zajmowane jest przez sygnał okresowy, zaś pasma zewnętrze zawierają pobudzenie szumowe. Częstotliwość odcięcia filtru pasmowoprzepustowego oddzielającego sygnały z pasma niskiego i średniego wynika bezpośrednio z wartości częstotliwości tonu krtaniowego F0. W Ahocoderze jest więc realizowana ona przez parametr LF0. Do modelowania wartości częstotliwości odcięcia pomiędzy pasmem średnim a wysokim w Ahocoderze używany jest osobny parametr tzw. maksymalna dźwięczna częstotliwość MVF (ang. maximum voiced frequency). Może być ona interpretowana jako najwyższa chwilowa częstotliwość formantów występujących w sygnale mowy. Dwie częstotliwości graniczne częstotliwość tonu 22
krtaniowego (LF0) oraz maksymalna dźwięczna chwilowa częstotliwość (MVF) pozwalają wyznaczyć chwilowy zakres pasma dźwięcznej części sygnału mowy. Do tego pasma filtrowane jest okresowe pobudzenie vocodera sygnał piłokształtny. Pozostała część słyszalnego pasma zajmowana jest przez pobudzenie szumowe, co w rezultacie umożliwia generacje dużo naturalniej brzmiącego sygnału niż w przypadku vocoderów z przełączanym pobudzeniem. Ostatnim parametrem wykorzystywanym w Ahocoderze do modelowania cech sygnału pobudzenia są melowo-częstotliwościowe współczynniki cepstralne MFCC. Współczynniki MFCC jako popularna w zagadnieniach rozpoznawania mowy reprezentacja cech spektralnych sygnału znalazła swoje zastosowanie również w syntezie parametryczno-statystycznej. Przy ich użyciu generowana jest obwiednia widma sygnału vocodera. W Ahoderze wykorzystywanych jest 40 statycznych współczynników. Typowy zestaw dwunastu współczynników, charakterystyczny dla rozpoznawania mowy, sprawdza się jako element umożliwiający dobrą identyfikację poszczególnych fonów. W przypadku syntezy mowy zastosowanie współczynników MFCC jest zgoła inne służą one nie identyfikowaniu fonów, a ich szczegółowemu odwzorowaniu. Wymaganie to uzasadnia zwiększenie ilości współczynników MFCC. Na etapie ekstrakcji cech z nagrań korpusu uwzględniono również późniejsze zapotrzebowanie związane z koniecznością wykorzystania cech dynamicznych sekwencji parametrów LF0, MVF i MFCC w procesie ich generacji z modeli HMM [27]. Przez pojęcie cech dynamicznych rozumie się wartości pierwszych i drugich pochodnych, obliczonych dla danego wektora parametrów jako prosty iloraz różnicowy: (3.1) (3.2) Wektory cech dynamicznych zostały wyznaczone osobno zarówno dla każdego ze współczynników MFCC, jak i dla parametrów LF0 i MVF. Wyliczanie wartości pochodnych zostało zrealizowane w formie skryptu w środowisku obliczeniowym Matlab. 23
Ostatnim etapem przygotowywania sparametryzowanej wersji bazy nagrań jest zapis wyekstrahowanych wektorów parametrów i ich wartości dynamicznych do formatu obsługiwanego przez HTK. Czynność ta została zrealizowana również w środowisku Matlab, tym razem z wykorzystaniem funkcji writehtk, dostępnej w jednej z darmowych bibliotek do przetwarzania sygnałów Voicebox. 3.6. Inicjalizacja modeli HMM Po przygotowaniu sparametryzowanej i zanotowanej bazy mowy można przystąpić do właściwej części projektu, czyli wytrenowania modeli HMM, będących statystycznym opisem parametrów sygnału mowy. Pierwszym podstawowym zadaniem jest zdefiniowanie topologii modeli, które zostaną użyte w projekcie. Zakładając, że kolejne stany modelu HMM służą opisowi następujących po sobie ramek czasowych sparametryzowanego sygnału należy przyjąć przyczynową, jednokierunkową strukturę modelu HMM. Oznacza to, że jedynym możliwym przejściem pomiędzy stanami jest albo przejście z jednego stanu na następny albo pozostanie w aktualnym stanie. Niemożliwym jest przechodzenie wstecz pomiędzy stanami, ani też pomijanie któregokolwiek ze stanu. Odpowiada to podstawowemu założeniu, że każdy ze stanów ma opisywać konkretny, ustalony fragment danej jednostki fonetycznej. W przypadku modelu 3-stanowego podział ten wygląda następująco: stan pierwszy obejmuje początkową fazę generacji głoski, stan drugi odpowiada za modelowanie środkowej, ustalonej części sygnału, natomiast stan trzeci opisuje wybrzmienie głoski. Struktura takiego modelu zaprezentowana została na rysunku 3. 24
Rysunek 3. Struktura modelu HMM Dobór ilości stanów w pojedynczym modelu HMM uzależniony jest w dużym stopniu od rozmiaru treningowej bazy nagrań. Przyjęcie zbyt dużej ilości stanów może spowodować, że ilość danych treningowych przypadająca na pojedynczy stan będzie zbyt mała, aby możliwym było właściwe dopasowanie komponentów mikstury gaussowskiej GMM (ang. Gaussian Mixture Model) do rozkładu wartości parametrów. Duża ilość stanów może również doprowadzić do sytuacji, w której każdy z nich będzie obejmował tak krótki fragment sygnału mowy, że sąsiadujące stany będą zawierały niemal identyczne informacje ilość stanów będzie nadmiarowa. Z kolei przyjęcie zbyt małej ilości stanów w modelu uniemożliwi właściwe odzwierciedlenie wewnętrznej zmienności wartości parametrów w obrębie danej jednostki. W przypadku syntezy mowy najczęściej stosowane są modele trzy lub pięciostanowe, z dwoma dodatkowymi stanami nieemitującymi, które służą łączeniu modeli ze sobą. Dla kilkugodzinnych korpusów taka ilość stanów zapewnia optymalną ilość danych treningowych przypadających na jeden stan dając jednocześnie dobre właściwości uśredniające modelu. Definiowanie modeli HMM w HTK rozpoczyna się od utworzenia modeli prototypowych. Polega to na utworzeniu pliku tekstowego, w którym zawarta jest informacja o pełnej strukturze modelu, czyli ilości: modelowanych stanów, strumieni parametrów wewnątrz każdego stanu i współczynników modelowanych w obrębie 25
każdego strumienia, a także o liczbie komponentów GMM opisujących każdy współczynnik oraz macierzy prawdopodobieństw przejść pomiędzy stanami. Wartości tych prawdopodobieństw jak i wartości średnich i wariancji rozkładów każdego komponentu GMM mogą być na etapie tworzenia prototypów HMM ustalone w dowolny sposób. Znaczenie ma tu jedynie ustalenie struktury modelu. Nowe wartości początkowe zostaną automatycznie dobrane przy inicjalizacji modelu. W pierwszej wersji głosu zdecydowano się na stworzenie możliwie najprostszego modelu na podstawie którego możliwym byłoby sprawdzenie działania wszystkich zaangażowanych w projekcie narzędzi. W minimalistycznej koncepcji podstawowego modelu zawarte zostały następujące cechy: 3-stanowy model HMM modelowane jednostki - difony modelowanie tylko statycznych współczynników (brak cech dynamicznych) modelowanie trzech niezależnych modeli HMM osobno dla parametru LF0, MVF i MFCC. W późniejszych wersjach głosu przetestowano również koncepcje w której wszystkie trzy parametry trenowane są symultanicznie w ramach jednego modelu HMM model wielostrumieniowy. ~o <VecSize> 1 <USER> ~h "proto_mvf_model1" <BeginHMM> <NumStates> 5 <State> 2 <Mean> 1 0.0 <Variance> 1 1.0 <State> 3 <Mean> 1 0.0 <Variance> 1 1.0 <State> 4 <Mean> 1 0.0 <Variance> 1 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.6 0.4 0.0 0.0 0.0 0.0 0.0 <EndHMM> Rysunek 4. Przykładowy plik prostego prototypu modelu parametru MVF 26
HTK oferuje dwa rodzaje inicjalizacji prototypów modeli, obsługiwane przez programy HCompV [21] oraz HInit [21]. Pierwszy z nich wszystkim zdefiniowanym prototypom difonów nadaje te same, globalne wartości średnich i wariancji parametrów. Takie użycie stosowane jest w przypadku braku anotacji nagrań. Pod warunkiem dostępu do zanotowanej bazy nagrań lepszym programem do inicjalizacji modeli jest HInit. Narzędzie to wydziela z nagrań bazy wszystkie oryginalne jednostki (na podstawie przygotowanych w poprzednim etapie plików z anotacją) nadając im osobne początkowe wartości parametrów. Po przygotowaniu wektorów obserwacji dla każdego difonu wykonywany jest następujący iteracyjny algorytm: Iteracja 1: równomierne podzielenie długości wektorów obserwacji według ilości stanów. Obliczenie średniej i wariancji dla każdego odcinka. Przypisanie tych wartości kolejnym stanom modelu. Iteracje następne: Algorytm Viterbiego ustalenie najprawdopodobniejszej sekwencji stanów modelu dla zbioru obserwacji treningowych. Podzielenie wektorów danych treningowych na odcinki według długości stanów ze znalezionej najprawdopodobniej sekwencji. Obliczenie średnich i wariancji z odcinków o nowej długości. Aktualizacja wartości parametrów modelu. Sekwencja trzech ostatnich kroków powtarzana jest do ustabilizowania się wyjściowego prawdopodobieństwa generacji treningowych obserwacji przez aktualizowany w każdej iteracji model. HTK nie umożliwia równoczesnej inicjalizacji kilku modeli. W przygotowanym do projektu korpusie występuje aż 1086 jednostek (difonów). Dla każdej jednostki należało przygotować trzy osobne modele dla parametrów LF0, MVF i MFCC. W celu obsłużenia tak dużej ilości modeli napisany został skrypt w języku programowania Python, który automatyzuje cały proces. Inicjalizacja wszystkich modeli trwa kilka godzin. W wyniku tego procesu udało się przygotować komplet modeli HMM dla 1011 difonów korpusu. Dla 75 jednostek ilość danych treningowych okazała się zbyt mała, aby algorytm inicjalizacji mógł wykonać zawarte w nim obliczenia. Są to jednak jednostki na tyle rzadko występujące w języku polskim, że na potrzeby badań naukowych można je pominąć. 27
3.7. Reestymacja modeli HMM Modele HMM, jako statystyczny opis parametrów mowy LF0, MVF i MFCC, nie są jedynym niezbędnym elementem realizowanej idei syntezy parametrycznostatystycznej. Równie istotne jest przygotowanie plików zawierających rozkłady średniego czasu trwania każdego ze stanów w poszczególnych modelach, które stanowi dopełnienie bazy modeli. Informacja o średnim czasie trwania stanów wykorzystywana jest w algorytmie generacji parametrów akustycznych z modeli HMM jako element determinujący dobór sekwencji stanów, z których każdy generuje jeden wektor parametrów akustycznych odpowiadający jednej ramce czasowej wyjściowego sygnału. Informacja o średnim czasie trwania stanów wewnątrz modelu jest możliwa do uzyskania w ramach innego ważnego procesu służącego poprawie jakości modeli. Mowa tu o reestymacji modeli HMM. Reestymacja parametrów modeli polega na iteracyjnym zwiększaniu wiarygodności, że dany model wygeneruje konkretną obserwację z treningowego zestawu maksymalizacja prawdopodobieństwa P(O λ). Procedura ta realizowana jest przez optymalizacyjny algorytm Bauma-Welcha. Nowe wartości prawdopodobieństw wewnątrz modelu estymowane są na podstawie m.in. oczekiwanej ilości znalezienia się w danym stanie, oczekiwanej liczby przejść pomiędzy różnymi stanami czy też oczekiwanej liczby znalezienia się w danym stanie i wygenerowaniu danego wektora obserwacji. Wielkości te, charakteryzujące każdy model, uzyskiwane są w wyniku obliczania tzw. prawdopodobieństw forward i backward. Zwiększenie wiarygodności modelu HMM poprawia w efekcie jakość odwzorowania parametrów mowy w modelu. Do wykonywania reestymacji parametrów modeli w HTK służy program HRest [21]. Aby jednak móc gromadzić w trakcie obliczeń informacje o długości trwania poszczególnych stanów w modelu, należy skorzystać z dodatkowego pakietu, będącego rozszerzeniem dla standardowego HTK, czyli zestawu HTS. Funkcja HRest jest w tym pakiecie uzupełniona o opcję gromadzenia danych na temat długości trwania stanów w kolejnych iteracjach algorytmu reestymacyjnego. Rozkłady tych wartości zapisywane są w standardowej dla HTK formie, czyli w postaci średnich i wariancji rozkładów Gaussa dopasowywanych do każdego zestawu danych. 28
~o <STREAMINFO> 3 1 1 1 <MSDINFO> 3 0 0 0 <VECSIZE> 3 <NULLD><DIAGC><USER> ~h "ot" <BeginHMM> <NumStates> 3 <State> 2 <Stream> 1 <Mean> 1 6.216827e+00 <Variance> 1 4.767844e+01 <Stream> 2 <Mean> 1 9.392904e+00 <Variance> 1 1.879428e+01 <Stream> 3 <Mean> 1 3.976272e+00 <Variance> 1 6.125695e+00 <TransP> 3 0 1 0 0 0 1 0 0 0 <EndHMM> Rysunek 5. Przykładowy plik modelu długości stanów dla difonu "ot" Dla pierwszej wersji głosu wykonano 10 kolejnych reestymacji parametrów modeli. Razem z każdą reestymacją zapisywano również modele długości trwania stanów. Podobnie jak w przypadku inicjalizacji modeli, tak i przy ich reestymacji koniecznym okazało się napisanie skryptu w języku Python, który umożliwił automatyzację całego procesu. Późniejsza analiza gotowych głosów wykazała, że niezależnie od struktury zastosowanych modeli HMM ich parametry stabilizują się już po pierwszej reestymacji. Różnice pomiędzy wartościami parametrów w kolejnych reestymacjach są na tyle nieznaczne, że przestają mieć zauważalny wpływ na generowany sygnał mowy. Duży wpływ na szybkość stabilizacji parametrów modeli ma z pewnością obecność anotacji czasowej nagrań na poziomie fonemów. Możliwość oddzielenia od siebie tak niewielkich jednostek jeszcze przed rozpoczęciem treningu przyspiesza znacznie jego przebieg (np. w porównaniu do sytuacji, gdy do treningu dostarczana jest tylko anotacja na poziomie całych wyrazów). Z kolei wysoka jakość przygotowanej anotacji sprawia, że dane przydzielane poszczególnym jednostkom fonetycznym są spójne i jednorodne, dzięki czemu już sam algorytm inicjalizujący jest w stanie wygenerować modele o dużej 29
wiarygodności. Dodatkowym czynnikiem sprzyjającym szybkiej stabilizacji reestymowanych modeli jest też z pewnością ich stosunkowo niewielka złożoność. 3.8. Przygotowanie danych do syntezy Po zakończeniu procesu treningu w stworzonych zasobach systemu znajdują się: prototypy modeli parametrów LF0, MVF, MFCC (lub jeden wielostrumieniowy prototyp) modele HMM z zainicjalizowanymi wartościami modele HMM z reestymowanymi wartościami rozkłady czasu trwania stanów modeli Przed wykonaniem pierwszej syntezy należy wykonać jeszcze szereg czynności służący odpowiedniemu przygotowaniu wytworzonych w treningu danych. W ramach tego etapu przygotowano: listę wytrenowanych difonów plik z definicjami wszystkich modeli HMM plik konfiguracyjny: określenie rodzaju i rozmiaru parametrów, wybór cech dynamicznych, format zapisu danych. Ponownie cały proces został zautomatyzowany przy użyciu autorskich skryptów w języku Python. 3.9. Generacja parametrów z modeli HMM Odpowiednio przygotowane i wytrenowane modele HMM mogą posłużyć jako element generujący sekwencje parametrów akustycznych, które zostaną przetworzone w procesie vocodingu na wyjściowy sygnał mowy. Synteza mowy rozpoczyna się od wprowadzenia na wejście systemu tekstu, który ma zostać poddany syntezie. W przypadku przygotowanego w tym projekcie systemu polega to na wskazaniu pliku tekstowego zawierającego transkrypcję fonetyczną dowolnej ilości zdań. Transkrypcja każdego zdania zamieniana jest przez program na ciąg difonów. Modele HMM odpowiadające kolejnym difonom łączone są w jeden duży model HMM, z którego generowane są parametry akustyczne. 30
Algorytm generacji parametrów akustycznych działa na zasadzie maksymalizacji prawdopodobieństwa wyjściowej obserwacji przy zadanym modelu HMM. Mówiąc inaczej algorytm ten otrzymawszy jako wejściowy argument ciąg modeli HMM, generuje najprawdopodobniejszą sekwencję wektorów obserwacji o wskazanej długości. Elementem determinującym długość generowanej sekwencji są wytrenowane na etapie reestymacji modele czasu trwania poszczególnych stanów modeli. Narzucana jest zatem nie tylko całkowita długość generowanego sygnału, ale i długość trwania każdego pojedynczego tworzącego go stanu. Najprawdopodobniejszy czas trwania konkretnego stanu rozumiany jest jako wartość oczekiwana jego rozkładu, co w przypadku rozkładu Gaussa sprowadza się to pobrania jego wartości średniej. Jeśli wartość średnia takiego rozkładu jest wartością zawierającą część ułamkową, zaokrąglana jest ona do najbliższej wartości całkowitej ze względu na to, że czas trwania stanu przedstawiany jest w systemie jako ilość kolejnych jego powtórzeń przed przejściem do stanu następnego. Schemat determinacji sekwencji stanów modelu HMM przedstawia rysunek 6. Rysunek 6. Schemat modelu HMM z determinacją czasu trwania stanów 31
Korzystając z ustalonej sekwencji stanów, algorytm ma za zadanie wygenerować najprawdopodobniejszą wartość dla każdego z nich. Ponownie, z racji modelowania wartości parametrów akustycznych wewnątrz modelu przy pomocy prostych, jednokomponentowych rozkładów Gaussa, wygenerowanie najprawdopodobniejszej wartości parametru dla danego stanu sprowadza się do pozyskania wartości średniej przypisanej mu dystrybucji. Można zatem powiedzieć, że modele HMM na etapie generacji parametrów stanowią już jedynie swego rodzaju magazyn rozkładów - generując parametry nie korzystamy z prawdopodobieństw przejść pomiędzy stanami. Pełna struktura ukrytych modeli Markova wykorzystywana jest jedynie w czasie treningu modeli - wykorzystując wszystkie prawdopodobieństwa zawarte w danym modelu ustalana jest jego najprawdopodobniejsza (najlepsza) struktura. Do generowania parametrów akustycznych z modeli HMM wykorzystany został program HMGenS dostępny w pakiecie HTS [21]. Zawarty w nim algorytm wyszukuje w zbiorze definicji modeli HMM te modele, które odpowiadają wejściowemu ciągowi difonów (pobranego z transkrypcji fonetycznej syntetyzowanego tekstu). Następnie poszczególne modele łączone są ze sobą w jeden duży model HMM, na podstawie którego generowana jest najprawdopodobniejsza sekwencja wektorów parametrów akustycznych Wytworzone parametry stanowią wejście sterujące vocodera. Poprzez modyfikację sygnału pobudzenia vocodera kolejnymi wartościami parametrów generowane są kolejne fragmenty wyjściowego sygnału, którego całość jest odwzorowaniem ludzkiej mowy. Obsługa wejściowego tekstu, generacja sygnału dźwiękowego przez programy HMGenS i Ahodocer oraz zapis wyjściowych plików zostały ponownie zrealizowane przy użyciu skryptów w języku programowania Python. 3.10. Ewaluacja pierwszego modelu, rozkłady typu multi-space Pierwszy wygenerowany głos posiadał bardzo niską jakość. Otrzymany sygnał był w istocie ciągłym szumem, z którego dało się zrozumieć zaledwie pojedyncze wyrazy. Przyczyną takiego stanu rzeczy okazały się niewłaściwe modele parametrów LF0 i MVF. W projektowanym systemie przyjęte zostało założenie, że dla bezdźwięcznych fragmentów mowy częstotliwość tonu podstawowego F0 jest równa 0Hz. Logarytm z takiej częstotliwości, wynoszący minus nieskończoność, jest w Ahocoderze reprezentowany przez wartość -10 10. Ponieważ w pierwszej wersji głosu dystrybucja 32
wartości LF0 opisywana jest przez pojedyncze rozkłady Gaussa, dochodzi do sytuacji, w której pojawienie się chociaż jednej takiej wartości (-10 10 ) w danych treningowych powoduje gwałtowne przesunięcie się wartości średniej rozkładu w ujemną stronę. Ujemne wartości logarytmu F0 charakteryzują natomiast (według przyjętej konwencji) bezdźwięczną część sygnału mowy. Dlatego też w momencie dostarczenia na wejście vocodera tylko ujemnych wartości LF0, zgodnie z zasadą jego działania, jedynym wykorzystywanym pobudzeniem staje się szum biały. Użycie w generacji sygnału mowy tylko pobudzenia szumowego pozbawia ją wszelkiej zawartości harmonicznej, przez co otrzymany sygnał w żaden sposób nie przypomina mowy ludzkiej. Rozwiązaniem tego problemu jest wprowadzenie podziału na część dźwięczną i bezdźwięczną sygnału już na etapie projektowania modeli HMM. Zabieg ten realizowany jest poprzez rozwinięcie modelu prawdopodobieństw obserwacji generowanych przez dany stan na model zawierający ważone komponenty dźwięczny/bezdźwięczny. Komponent dźwięczny reprezentowany jest dalej jako pojedynczy rozkład Gaussa. Komponent bezdźwięczny reprezentowany jest jako dyskretna wartość -10 10. W sytuacji gdy algorytmy treningowe inicjalizujące i reestymujące parametry modeli HMM trafiają na nieciągłość w przebiegu parametru LF0 lub MVF (sygnał bezdźwięczny), automatycznie zwiększana jest waga komponentu dyskretnego. Dla sygnału ciągłego (bez przeskoków na wartości ujemne) zwiększana jest waga komponentu dźwięcznego oraz aktualizowany jest kształt rozkładu Gaussa. Na etapie generacji parametrów akustycznych z modeli wybierany jest komponent o większej wadze. Zastosowanie takiego rozwiązania w drugiej wersji głosu umożliwiło właściwe oddzielenie i niezależne zamodelowanie dźwięcznej i bezdźwięcznej części sygnału mowy. Rozkłady z ważonymi komponentami dźwięczny/bezdźwięczny (ang. multi-space distribution) [28] zostały zastosowane dla parametrów LF0 i MVF (rysunek 7). Parametr MFCC z racji swojego ciągłego charakteru modelowany jest dalej przy użyciu wielowymiarowego rozkładu Gaussa. 33
Rysunek 7. Schemat modelu HMM z ważonymi komponentami dźwięczny/bezdźwięczny 3.11. Integracja cech dynamicznych, wielostrumieniowa struktura modeli HMM Sygnał mowy otrzymany po wprowadzeniu dla parametrów LF0 i MVF rozkładów z ważonymi komponentami dźwięczny/bezdźwięczny posiada już dobrą zrozumiałość. Niestety naturalność brzmienia takiego sygnału prezentuje dalej niską jakość. Przyczyną nienaturalnego brzmienia jest mocno "schodkowy" charakter wygenerowanych przebiegów parametrów (rysunek 8). 34
Rysunek 8. Wygenerowany przebieg parametru LF0 z zastosowaniem cech statycznych Schodkowy kształt wygenerowanych przebiegów wynika bezpośrednio z użycia w algorytmie generacji parametrów akustycznych wyłącznie wartości statycznych parametrów. Każdy ze stanów modelu HMM, powtarzając się kilka lub kilkanaście razy, generuje za każdym razem tą samą, średnią wartość przypisanego mu rozkładu Gaussa. W celu wygładzenia generowanych przebiegów stosuje się przekształcenie zwane integracją cech dynamicznych [27]. Cechy dynamiczne wyznaczone zostały na etapie parametryzacji nagrań bazy mowy przy użyciu wzorów 3.1 i 3.2. Wyliczenie wartości cech dynamicznych dla całych wektorów parametrów można zapisać w postaci macierzowej (rysunek 9), gdzie macierz W zawiera odpowiednio zaaranżowane współczynniki pochodzące z równań 3.1 i 3.2. 35
Rysunek 9. Schemat integracji cech dynamicznych Integracja cech dynamicznych polega na odwróceniu powyższego równania korzystając z danego rozszerzonego wektora współczynników z cechami zarówno statycznymi, jak i dynamicznymi, redukujemy go do wektora cech wyłącznie statycznych. Odwrócona macierz W staje się wtedy filtrem, który integruje wytrenowane wartości pochodnych ze schodkowym przebiegiem powstałym w wyniku użycia tylko cech statycznych. W zależności od tego, czy do integracji wykorzystane zostaną tylko cechy dynamiczne pierwszego rzędu, czy jednocześnie cechy rzędu pierwszego i drugiego, otrzymywane są przebiegi o różniącym się charakterze (rysunek 10, rysunek 11). 36
Rysunek 10. Wygenerowany przebieg parametru LF0 z zastosowaniem cech dynamicznych pierwszego rzędu Rysunek 11. Wygenerowany przebieg parametru LF0 z zastosowaniem cech dynamicznych pierwszego i drugiego rzędu 37
W przypadku zastosowania tylko cech dynamicznych pierwszego rzędu wygenerowane przebiegi są w pewnym stopniu zaszumione. Dopiero wykorzystanie współczynników dynamicznych drugiego rzędu daje w pełni wygładzone przebiegi. Istnieje jednak ryzyko, że w takim wypadku stopień wygładzenia będzie zbyt duży i nie będzie odpowiadał on rzeczywistemu charakterowi mowy ludzkiej. Problem nadmiernego wygładzania generowanych przebiegów stanowi istotny problem w projektowaniu syntezy parametryczno-statystycznej. W zaawansowanych systemach jest on kompensowany użyciem specjalnych filtrów, redukujących na etapie postprocessingu ten niepożądany efekt [29]. W ramach realizowanej pracy skupiono się jednak na przeprowadzeniu testów odsłuchowych mających na celu sprawdzenie rzeczywistego odbioru syntezy z wykorzystaniem różnych wariantów integracji cech dynamicznych. Kolejnym czynnikiem mogącym mieć wpływ na jakość syntezy jest wybór ogólnej strategii treningu systemu czy każdy z parametrów (LF0, MVF, MFCC) będzie modelowany osobnym ukrytym modelem Markova, czy też do treningu użyty zostanie jeden wielostrumieniowy model zawierający w sobie wartości wszystkich parametrów. Po stworzeniu dwóch wersji głosu różniących się tylko pod tym względem stwierdzono, że generowane obserwacje w obydwu przypadkach są praktycznie identyczne. Wynika to z dużej korelacji pomiędzy poszczególnymi parametrami ich zmienność w czasie cechuje się dużą zbieżnością, dlatego średnie długości czasu trwania stanów w pojedynczych modelach są bardzo zbliżone. Zastąpienie trzech wartości średniej długości trwania stanu jedną wspólną nie zmienia zatem charakteru trenowanych dystrybucji. Użycie pojedynczego, wielostrumieniowego modelu HMM służy w związku z tym jedynie uproszczeniu struktury systemu oraz niewielkiemu przyspieszeniu procesu syntezy - ilość generowanych plików zmniejsza się trzykrotnie, przez co system staje się wydajniejszy. Podejście to zostało zastosowane we wszystkich następnych wersjach systemu. 38
3.12. Wielokomponentowe mikstury Gaussa W trakcie projektowania systemu analizie poddano następujące czynniki mające wpływ na jakość syntezy: Ilość stanów modeli HMM Użycie cech dynamicznych parametrów Zastosowanie rozkładów z/bez podziału na ważone komponenty dźwięczny/bezdźwięczny Dobór struktury systemu: osobne modele HMM dla 3 parametrów lub jeden wielostrumieniowy model. Ostatnim elementem wziętym pod uwagę w badaniach jest dobór liczby komponentów mikstur Gaussowskich jako czynnik mający wpływ na jakość odwzorowania dystrybucji wartości parametrów w modelach HMM. W dotychczasowym systemie dystrybucje wszystkich parametrów odwzorowywane były przy pomocy pojedynczych rozkładów Gaussa. Podobne podejście stosowane jest w wielu syntezatorach parametryczno-statystycznych [26]. Wybór takiego rozwiązania dyktowany jest często faktem, iż rozkłady poszczególnych parametrów są zwykle bardzo bliskie rozkładowi normalnemu, dlatego użycie tylko jednokomponentowych mikstur GMM jest zazwyczaj wystarczające. Zwiększając jednak ilość komponentów mikstury, znacząco powiększa się również wymagany rozmiar wejściowego korpusu niezbędny dla prawidłowego wytrenowania nowych komponentów. Biorąc pod uwagę fakt, iż nagrania bazy mowy zostały podzielone na 1011 części, według ilości jednostek fonetycznych w korpusie (difonów), ilość obserwacji treningowych przypadających na każdą jednostkę jest w porównaniu do rozmiaru całej bazy stosunkowo niewielka. Stąd też bierze się wymuszenie znacznego powiększania korpusu dla rozkładów wielokomponentowych, które w obliczu zadowalających rezultatów otrzymywanych dla rozkładów jednokomponentowych staje się rozwiązaniem nieopłacalnym. W celu sprawdzenia sensowności modyfikowania systemu pod kątem zwiększenia ilości komponentów GMM wygenerowano szereg histogramów prezentujących rzeczywiste rozkłady wejściowych danych korpusu. W przypadku parametru MFCC (rysunek 12) obserwowane rozkłady niemal zawsze miały charakter bliski idealnemu rozkładowi normalnemu. Dla parametru LF0 (rysunek 13) w niektórych przypadkach silne podobieństwo do rozkładu normalnego było nieznacznie zaburzane przez 39
sporadycznie występujące niskie wartości (wynikające z błędów algorytmu wyznaczającego F0). Duże odstępstwo od rozkładu normalnego stwierdzono jedynie w przypadku parametru MVF. Obserwowane tutaj rozkłady (rysunek 14) oprócz dużej nieregularności kształtu posiadały również ograniczenie dopuszczalnego przedziału wartości pomiędzy 1000 a 8000 Hz. W takim przypadku użycie wielokomponentowych mikstur GMM (lub zastosowanie rozkładu innego typu) może wydawać się rozsądnym rozwiązaniem. Rysunek 12. Histogram wartości parametru MFCC - difon ok" 40
Rysunek 13. Histogram wartości parametru LF0 difon ok Rysunek 14. Histogram wartości parametru MVF difon ok 41
W ramach badań postanowiono wykonać kolejne dwie wersje głosu z dwu i czterokomponentowymi miksturami GMM dla parametrów LF0 i MVF. Pierwsza próba zakończyła się niepowodzeniem przy inicjalizacji modeli dla znacznej części difonów program HTK wyrzucał błędy o braku danych treningowych potrzebnych do wytrenowania wszystkich komponentów mikstury. Bezpośrednią tego przyczyną okazało się być stosowanie w modelu rozkładów typu multi-space z dodatkowym komponentem dyskretnym dla bezdźwięcznych fragmentów sygnału. Problem polegał na "zatykaniu" się systemu na tym właśnie komponencie w przypadku jednostek bezdźwięcznych - dla nich dominacja komponentu bezdźwięcznego była tak duża, że większość z kilku komponentów dźwięcznych nie otrzymywała żadnych danych treningowych. Rozwiązaniem powyższego problemu była rezygnacja z rozkładów typu multispace. Oddzielenie części dźwięcznej sygnału od bezdźwięcznej powinno ukształtować się samoczynnie część komponentów przesunie się w treningu w stronę dużych ujemnych wartości (bezdźwięczne F0), pozwalając pozostałym komponentom prawidłowo odwzorować subtelne zmiany w wartościach dodatnich. Wytrenowany w ten sposób system wygenerował jednak sygnał mowy o jakości o wiele niższej niż poprzednie wersje głosu. Wynika to ze zbyt małego rozmiaru bazy mowy przy zwiększonej ilości komponentów GMM ilość danych przypadających na jeden komponent była zbyt mała, aby prawidłowo określić wartości ich średnich i wariancji. Z racji niemożności dostarczenia większej ilości danych treningowych powrócono do tradycyjnej koncepcji modelowania dystrybucji parametrów przy użyciu pojedynczych rozkładów Gaussa i modeli typu multi-space. 4. Ewaluacja systemu testy odsłuchowe W celu określenia jakości przygotowanego syntezatora mowy oraz wskazania zestawu parametrów, dla których dany głos jest postrzegany jako najlepszy, przygotowano zestaw testów odsłuchowych, w których porównanych zostało 6 różnych wersji głosu. Biorąc pod uwagę konieczność generowania dużej ilości przykładowych nagrań dla każdego badanego parametru, w ramach testów odsłuchowych postanowiono skupić się na ewaluacji modeli syntezy z dwoma zmiennymi parametrami (wykazującymi największy wpływ na jakość syntezy w trakcie projektowania systemu): ilością stanów 42
modeli HMM oraz zastosowaniem cech dynamicznych różnego rzędu. Kolejne z sześciu wersji głosu będących przedmiotem badań odsłuchowych posiadały następujący dobór cech: Model 1 3 stany, cechy statyczne Model 2 5 stanów, cechy statyczne Model 3 3 stany, cechy statyczne + dynamiczne 1-rzędu Model 4 5 stanów, cechy statyczne + dynamiczne 1-rzędu Model 5 3 stany, cechy statyczne + dynamiczne 1 i 2-rzędu Model 6 5 stanów, cechy statyczne + dynamiczne 1 i 2-rzędu. Testy odbywały się za pośrednictwem strony internetowej przygotowanej na potrzeby projektu. Pierwszy test służył bezwzględnej ocenie kluczowych cech syntetyzowanej mowy: jej zrozumiałości i naturalności brzmienia. W ramach testu prezentowane były po trzy nagrania każdej wersji głosu (w kolejności losowej). Zadaniem słuchaczy było ocenienie osobno zrozumiałości i naturalności mowy każdego nagrania według pięciopunktowej skali MOS (ang. Mean Opinion Score): 1 zła 2 słaba 3 średnia 4 - dobra 5 znakomita W teście wzięło udział 74 przypadkowych, anonimowych osób. Średnie wartości ocen wraz z odchyleniami standardowymi przedstawione zostały na rysunku 15. 43
Rysunek 15. Wyniki testu MOS - średnia zrozumiałość i naturalność syntetyzowanej mowy Najwyższe wyniki w obydwu kategoriach uzyskał model 4 (5-stanowy z cechami dynamicznymi pierwszego rzędu): zrozumiałość 3,8 oraz naturalność 2,6. Większość osób oceniła zrozumiałość nagrań tego modelu jako dobrą, zaś ich naturalność jako średnią lub słabą. Ze względu na duże wartości odchylenia standardowego uzyskanych wartości niemożliwym jest jednoznaczne wskazanie najlepszej wersji głosu. W celu uściślenia wyników przeprowadzono drugi test odsłuchowy tzw. test różnicujący DMOS (ang. Differential Mean Opinion Score). W teście tym słuchacz porównywał 2 próbki, odsłuchując je jedną po drugiej. Ocena ogólnego wrażenia słuchacza polegała na wskazaniu próbki o subiektywnie lepszej jakości. W tym teście wzięło udział 25 osób. Ocenie poddane zostały nagrania wszystkich możliwych par różnych wersji głosu. Otrzymane wyniki (rysunek 16) określają procent z jakim nagrania danej wersji głosu były wskazywane jako lepsze w porównaniu z nagraniami innych wersji głosu. 44
Rysunek 16. Wyniki testu DMOS - procent wskazań poszczególnych modeli jako lepszych spośród pary Kształt otrzymanego wykresu jest bardzo zbliżony do tego otrzymanego w pierwszym teście. Ponownie najwyższą ocenę uzyskał model 4 w porównaniach z innymi modelami wybierany był on jako lepszy w 82% przypadków. Analiza otrzymanych wyników wskazuje na konieczność stosowania integracji cech dynamicznych w projektowaniu modeli syntezy. Obydwa modele, w których stosowano wyłącznie cechy statyczne, uzyskały zdecydowanie najgorsze wyniki w teście: model 1 3%, model 2 19%. W obydwu testach najlepszy wynik uzyskany został przez model wykorzystujący współczynniki dynamiczne pierwszego rzędu. Gorszy odbiór modeli z cechami dynamicznymi pierwszego i drugiego rzędu może wynikać z dwóch przyczyn jedną z nich jest występowanie efektu nadmiernego wygładzania generowanych przebiegów przy zastosowaniu integracji cech dynamicznych drugiego rzędu. Drugą prawdopodobną przyczyną jest niewielki rozmiar korpusu treningowego, który mógł się okazać zbyt mały dla prawidłowego wytrenowania odpowiednio większej ilości współczynników. Drugim czynnikiem będącym przedmiotem badań był wpływ doboru ilości stanów modeli HMM na jakość syntezy. Wyniki testów odsłuchowych jednoznacznie wskazują na przewagę modeli pięciostanowych nad modelami trzystanowymi. Większa ilość 45