Poczytaj mi, pececie…

Programy zamieniające tekst na mowę są znane już od dawna, ale jeszcze kilka lat temu każdy słuchacz potrafił bez problemu odróżnić metaliczne, pozbawione intonacji wypowiedzi komputera od naturalnego brzmienia zdań wypowiadanych przez żywą osobę. Wraz z rozwojem teorii syntezy głosu staje się to jednak coraz trudniejsze. Według zapewnień producentów już wkrótce, słuchając przez telefon relacji o stanie naszego konta, nie będziemy w stanie określić, czy mówi do nas miły urzędnik bankowy czy też jest to tylko wyposażona w odpowiednie algorytmy aplikacja.

Trochę historii

Pierwsze bazujące na skomplikowanych układach mechanicznych próby generowania ludzkiej mowy miały miejsce ponad dwieście lat temu. Rolę płuc spełniały miechy, a intonację krtaniową naśladowały specjalnie ukształtowane rezonatory. Głos wydobywało się albo przez zasłanianie rękami odpowiednich otworów, albo – już w wieku dziewiętnastym – za pomocą układu pedałów i czegoś, co przypominało klawiaturę. Dźwięk tworzony w tego typu urządzeniach miał zupełnie “obce” brzmienie i wymagał znacznej sprawności operatora, co kwalifikowało tego rodzaju mechanizmy głównie jako zabawki prezentowane na dworach możnych ówczesnego świata.

Synteza głosu zaczęła się upowszechniać w pierwszej połowie XX stulecia. Stało się to możliwe dzięki raczkującej jeszcze wtedy elektronice, a pierwszym znaczącym syntezatorem był Voder, który ubarwiał słuchowiska science-fiction w amerykańskich rozgłośniach radiowych i na trwale odcisnął się w zbiorowej świadomości jako wyobrażenie mowy robota (patrz: CHIP-CD/DVD, plik Voder.wav).

Do początku lat siedemdziesiątych ubiegłego stulecia w syntezie głosu dominowały urządzenia artykułujące dźwięk za pomocą różnego rodzaju filtrów elektrycznych, którychnakładanie się na siebie symulowało ludzki głos. Do najbardziej znanych należą syntezator OVE, skonstruowany przez Gunnara Fanta z Królewskiego Instytutu Technicznego w Sztokholmie, oraz PAT, którego twórcą był Walter Lawrence (patrz:

CHIP-CD/DVD, plik Ove.wav

).

Pojawienie się komputerów zmieniło przede wszystkim sposób artykulacji, bo rolę szeregu cewek i kondensatorów przejął procesor, generujący ciąg odpowiednich próbek. W sposobie modelowania dźwięku zmieniło się jednak niewiele. Zarówno konstrukcje z pierwszej połowy dwudziestego wieku, jak i późniejsze, oparte na technice cyfrowej, wykorzystywały tzw. teorię formantów.

Matematyka górą

Opracowana w połowie ubiegłego stulecia przez Denisa Klatta teoria zakładała, że każda głoska składa się z określonych formantów, które można interpretować jak zmieniające się w czasie obwiednie sygnału. Jest to bardzo duże uproszczenie i dlatego synteza bazująca na takim rozwiązaniu tworzy głos, który nie ma wielu “ludzkich” cech: otrzymujemy “blaszane”, nienaturalne brzmienie, pozbawione intonacji i czasami, mimo precyzyjnego odcinania końcówek, trudno zrozumieć taką wypowiedź (patrz: CHIP-CD/DVD, plik Pat.wav).

Początkowo, ze względu na zbyt dużą jak na owe czasy złożoność algorytmów syntezy formantowej, stosowano ją tylko na dużych komputerach klasy mainframe. Gdy pojawiły się dostatecznie silne pecety, przeniesiono ją również na nie. Wszyscy, którzy swoją zabawę z komputerami zaczynali od Amigi, pamiętają zapewne polecenie Say, które śmiesznym głosem czytało angielski tekst. Metoda formantowa jest znacznie łatwiejsza do zaimplementowania i nie wymaga mnóstwa próbek, które są wykorzystywane w innej popularnej metodzie, tzw. konkatenacyjnej. Z tego względu metoda formantowa często jest do dziś stosowana tam, gdzie istnieją wyraźne ograniczenia pamięci, jak na przykład w wyspecjalizowanych urządzeniach przeznaczonych dla osób niewidomych.

Łącz i zwyciężaj

W metodzie konkatenacyjnej zrezygnowano z matematyki na rzecz praktyki. Zamiast naśladować naturę, posłużono się nią w ten sposób, że wyselekcjonowano z prawdziwego głosu poszczególne fonemy, czyli najmniejsze części języka mówionego. Program syntezatora łączy je razem (ang. concatenation), tworząc właściwą wypowiedź (patrz: CHIP-CD/DVD, plik Syntalk.wav).

Niestety, nie jest to zbyt dobre podejście, bo brzmienie fonemu silnie zależy od jego poprzednika i następnika. Sklejając wyidealizowane próbki, otrzymamy głos znacznie odbiegający od naturalnego brzmienia, stąd najczęściej w tej metodzie wspomagamy się difonami, czyli wyekstrahowanymi z sesji lektorskiej parami fonemów. Warto zauważyć, że złożoność tego problemu rośnie wykładniczo wraz z długością analizowanego ciągu. Przykładowo: w języku polskim występuje 37 fonemów, więc liczba difonów może być równa kwadratowi tej wartości, ale gdybyśmy chcieli kolekcjonować dłuższe sekwencje, wkrótce wyczerpiemy zasoby dowolnego systemu (patrz:

CHIP-CD/DVD, plik Lektor.wav

).

Grunt to dobry akcent

Metoda konkatenacji difonów sauté działa całkiem nieźle, gubi natomiast informację o prozodii, czyli o intonacji zdań i akcentach poszczególnych wyrazów. Oczywiście możemy odtworzyć określoną próbkę szybciej bądź wolniej, ale ceną za to będzie zmiana brzmienia całego difonu. Rozwiązanie tego problemu pojawiło się dopiero kilka lat temu wraz z algorytmami, które umożliwiają modyfikację wysokości i długości trwania difonu bez zmiany jego brzmienia. Na tej zasadzie działała większość współczesnych, zaawansowanych technicznie syntezatorów (patrz:

CHIP-CD/DVD, plik Spiker.wav

).

Awangarda

Najbardziej efektywny algorytm syntezy powstał zupełnie niedawno. Nazwano go techniką selekcji segmentów (unit selection technique), a jego działanie polega na wyszukiwaniu w bazie nagrań nie difonów, ale najdłuższego łańcucha, który można wpasować w określony fragment tekstu. Algorytm nie dokonuje prawie żadnych manipulacji na sklejanych segmentach, więc to, co otrzymujemy, do złudzenia przypomina głos żywej osoby. Niestety, wysoka jakość jest okupiona gigantycznymi rozmiarami bazy danych (patrz:

CHIP-CD/DVD, plik Sayso.wav

).

Więcej:bezcatnews