Historia syntezy mowy

Pierwsze badania nad syntezą mowy zostały zainicjowane już w roku 1773 przez Ch.G.Kratzensteina - profesora fizjologii w Kopenhadze, który zrealizował urządzenie generujące dźwięki samogłoskowe wykorzystując w tym celu rezonans specjalnych tub połączonych z organowymi piszczałkami. Maszyna ta pozwalała na dość ograniczone, niemniej jednak realne wytworzenie mowy syntetycznej. Dokładny opis "maszyny mówiącej" umieścił Wolfgang von Kempelen w książce "Mechanismus der menschlichen Sprache nebst Beschreibung einer sprechenden Maschine" (1791).W 1835 urządzenie to zostało zrekonstruowane na podstawie tej książki i zaprezentowane przez Wheatstone'a w Dublinie jako nowsza wersja "maszyny mówiącej" (jak na zdjęciu).W Londynie w 1846 roku Joseph Faber zaprezentował urządzenie nazwane jako "Euphonia", które jako pierwsze generowało nie tylko mowę ludzką, ale także śpiew. Podobne urządzenie, jednak generujące dźwięk bardziej przybliżony do naturalnej mowy ludzkiej zaprezentował w 1937 roku R.R.Riesz w Stanach Zjednoczonych.Na początku dwudziestego wieku postęp techniczny umożliwił wykorzystanie zjawisk elektrycznych przy budowie syntezatora mowy. Pierwsze takie urządzenie elektryczne zostało wykonane przez Homera Dudley'a i zaprezentowane pod nazwą "VODER" (ang. voice demonstrator) w Nowym Yorku w 1939 roku. Wszystkie te urządzenia służyły głównie rozrywce jednak w planach było wykorzystanie ich w telekomunikacji. Nowy kierunek rozwoju tego typu urządzeń nadał Frank Cooper tworząc w 1950 roku tzw. Pattern Playback , który to sczytywał przy pomocy odbitej wiązki światła tekst a następnie przetwarzał go na mowę.Od 1970 roku dalszy rozwój syntezy mowy był bezpośrednio związany z technologią komputerową. Komputery umożliwiły tworzenie syntezatorów mowy dla praktycznych celów dzięki czemu większe grono naukowców na świecie zainteresowało się zmienianiem tekstu na mowę. Najnowsze osiągnięcia naukowców pozwalają już nie tylko na wytwarzanie mowy ludzkiej, lecz także umożliwiają dokładne ustalenie płci oraz wieku osoby wypowiadającej słowa. Można przykładowo określić, że wytwarzana mowa odpowiada kobiecie w wieku 40 lat, dziecku w wieku 15 lat lub mężczyźnie w wieku 25 lat.

Zastosowanie syntezatorów mowy

Obecnie zastosowanie syntezatorów mowy staje się coraz szersze. Syntezatory mowy są bardzo pomocne dla osób niewidomych i niedowidzących jednak są one także niezastąpione w innych sytuacjach. Otóż coraz częściej spotyka się możliwość głosowej komunikacji maszyny z człowiekiem. Przykładem może być bankofon, czyli urządzenie umożliwiające klientowi uzyskiwanie za pośrednictwem telefonu informacji o stanie własnego konta. W niedalekiej przyszłość bankofony będą powszechną ofertą wszystkich polskich banków. Syntezatory mowy są wykorzystywane w serwerach fonicznych, gdzie służą one do przekazania rozmaitych informacji użytkownikowi. Mogą to być przykładowo informacje dotyczące repertuaru kin, aktualnych ofert cenowych i asortymentowych, ogłoszeń, różnych porad, regulaminów, godzin otwarcia, aktualnych kursów walut i papierów wartościowych, potrzebnych dokumentów w działalności gospodarczej, wyrobienia dowodu osobistego, paszportu, prawa jazdy , itd. Syntezator mowy umożliwia przekazanie użytkownikowi głosem (np. drogą telefoniczną) wszelkiego typu pożądanej informacji i może to być usługa dostępna przez całą dobę. Współcześnie większość sieci telefonów komórkowych posiada tzw. usługę dostępu głosowego wykorzystującą technologię text to speech (TTS) do odsłuchiwania wiadomości elektronicznych, czyli na przykład wiadomości email. Coraz częściej spotyka się także wykorzystanie technologii TTS w słownikach. Przykładem takiego słownika może być wielojęzyczny słownik Babylon, który korzysta z technologii text-to-speech do poprawnego czytania haseł. Dodatkowo coraz bardziej popularny staje się nowy język VoiceXml umożliwiający prowadzenie dialogu między rozmówcą, a komputerem z oprogramowaniem rozpoznającym mowę oraz zamieniającym tekst na mowę stosowany przykładowo w serwerach IVR (Interactive Voice Response). Coraz więcej systemów Call Center / Contact Center stosuje technologię TTS (Text-To-Speech - zamiana tekstu na mowę) i ASR (Automatic Speech Recognition - rozpoznawanie mowy) w serwerach IVR zastępując w ten sposób żywych agentów informujących telefonicznego klienta. Rozwiązanie takie, zmniejsza koszty obsługi każdego dzwoniącego klienta o 80%. Ponadto taki inteligentny elektroniczny konsultant (moduł TTS i ASR z aplikacjami VoiceXml) dostępny może być wielojęzycznie oraz o każdej porze dnia i nocy. Dziś nawet podróż tramwajem może odbywać się z towarzystwem sztucznej mowy. Syntezator mowy informuje o kolejnych przystankach. Jak widać korzyści ze stosowania syntezy mowy mogą być bardzo duże, a sama synteza mowy (z dnia na dzień coraz lepsza) staje się bezkonkurencyjna w wielu rozwiązaniach.

Po co komu mówiący komputer?

Chyba każdy woli słuchać co jest napisane, niż czytać co wyświetla monitor i męczyć tym niepotrzebnie oczy. Jak zdążyłem się przekonać syntezatory mowy mogą być pomocne i przydatne wielu osobom przynależących do różnych grup społecznych. Okazuje się bowiem, że taki niewielki program znacznie potrafi ułatwić życie każdemu posiadaczowi komputera. Na podstawie własnych obserwacji osoby najbardziej zainteresowane tą tematyką mogę przedstawić następująco:

  1. studenci, uczniowie i wszyscy czytający dużo z monitora - syntezator pozwala oszczędzać wzrok i potrafi czytać tekst szybciej niż ludzkie oko, ponadto syntezator mowy się nie męczy natomiast oczy ludzkie czytając tekst z ekranu monitora męczą się bardzo szybko.
  2. osoby niewidome i niedowidzące - przyjęto, że głównie dla nich tworzy się tego typu programy, gdyż syntezatory mowy są często pomostem między osobą niewidomą, a bogactwem informacji zawartej w komputerze i internecie.
  3. multimedialiści, czyli osoby korzystający z syntezatorów mowy do rozrywki i zabawy - przykładem może być wprowadzona opcja czytania napisów do filmów w syntezatorze, która obecnie cieszy się szerokim zainteresowaniem.
  4. kadra naukowa - zainteresowanie syntezą mowy wykazują także nauczyciele (być może mający styczność z osobami niepełnosprawnymi) oraz osoby pracujące w różnych instytutach szkół wyższych (przypuszczalnie badających problematykę syntezy).
  5. przedsiębiorstwa z usługami telekomunikacyjnymi - ich zainteresowanie opiera się głównie na wykorzystywaniu syntezy mowy do serwerów ISR (Interactive Speech Response), w celu zastąpienia żywych agentów poprzez "elektronicznego rozmówcę", tańszego i dostępnego przez całą dobę.
  6. osoby leniwe, którym po prostu nie chce się czytać to co przeczytać muszą.

Testowanie syntezatorów mowy

Pisząc własny syntezator mowy poznałem, co tak naprawdę sprawia trudności programom w wypowiedzeniu słów i w jaki sposób można ocenić zdolności wymowy tekstu dowolnego syntezatora. Przeciętny człowiek myśli zwykle o wpisaniu kilku trudnych zdań do wypowiedzenia przez istotę ludzką i sprawdzeniu jak sobie poradzi z tym syntezator. Okazuje się, że dla syntezatorów nie stanowi większego problemu wypowiedzenie zdań w stylu:

  • "lojalna jola, jola nielojalna",
  • "w szczebrzeszynie chrząszcz brzmi w trzcinie",
  • "król karol kupił królowej karolinie korale koloru koralowego",
  • "grzegorz brzęczyszczykiewicz",
  • "szedł sasza suchą szosą"
  • "stół z powyłamywanymi nogami"
Co zatem może sprawić trudność syntezatorowi mowy w mowie ?
Chcąc dobrze przetestować dowolny syntezator mowy radzę zwrócić uwagę na poniższe aspekty:

  1. Wymowa liczb.
  2. Na początek najlepiej sprawdzić czy syntezator potrafi składać liczby na postać mówioną czy też je po prostu literuje jako cyfry.
    Przykładowo wymowa liczby "1204009":
    • fatalnie, gdy syntezator przeczyta liczbę jako "jeden dwa zero cztery zero zero dziewięć",
    • dobrze, jeśli syntezator przeczyta "jeden milion dwieście cztery tysiące dziewięć",
    • a już najlepiej, gdy przeczyta w sposób jeszcze bardziej inteligentny pomijając zbędne "jeden" przed słowem "milion".
    Czytanie liczb po przecinku - różnie z tym bywa i nie zawsze jest pożądane. W szczególności, gdy mamy do czynienia z ciągiem liczb całkowitych oddzielonych od siebie przecinkiem. Czytanie wówczas dwóch takich liczb jako jedna liczba ułamkowa może być mylące.

  3. Wymowa wyjątków.
  4. Język polski jest bardzo oporny, jeśli chodzi o reguły czytania wyrazów i podobnie jak w języku angielskim niektóre wyrazy mogą odbiegać w wymowie od wszelkich przyjętych reguł. Syntezator mowy powinien rozpoznawać, że ma do czynienia z takim wyjątkiem i poprawnie go przeczytać odbiegając od ustalonych zasad. Oto parę przykładów:
    • słowa "marznąć","zamarznąć","przymarznął","tarzan" i inne odmiany takich słów powinien przeczytać nie składając "rz" w "ż"
    • słowa "klient", "klientowi","kliencki" i inne jego odmiany powinien czytać rozdzielając fragment "kli" od "ent" lub przedłużając literę "i"
  5. Rozpoznawanie skrótów.
  6. Fajnie jest, jeśli syntezator takie skróty jak "np.", "inż.", "kg ","mhz ","p.n.e.","n.p.m.", "tel.", "tzn." itp. przeczyta odpowiednio je rozwijając, czyli jako "na przykład", "inżynier", "kilogramów", "megaherców", "przed naszą erą", "nad poziomem morza", "telefon" czy tez "to znaczy". Pisząc własny syntezator doliczyłem się około 120 takich fundamentalnych skrótów, które w codziennym piśmie się często pojawiają.

  7. Literowanie inicjałów i skrótów nazw.
  8. Bardzo często pojawia się problem ze sposobem przeczytania pewnych wyrazów złożonych z pierwszych liter nazw jakiegoś określenia, np. nazwy firmy, przedmiotu lub terminu. Ważne jest, aby syntezator potrafił przeliterować napotkaną nietypową nazwę, zamiast czytać ją jako niezrozumiałe słowo. Przykładem mogą być skróty PKO, SDK, MS, IE, WWW, które powinny być literowane, a nie czytane jak zwykłe słowo.

  9. Test odpornościowy.
  10. Taki test polega na wprowadzeniu tekstu ciężkiego do przełknięcia przez syntezator. Jaka to mogłaby być treść ? Proponowałbym wypróbować następujące:
    • Wprowadzenie tekstu maksymalnie długiego. Najdłuższym polskim wyrazem nierozłącznym jest "konstantynopolitańczykiewiczówianeczka". W języku polskim dłuższych wyrazów raczej się nie spotka, zatem szybkie i poprawne przeczytanie wyrazu takich rozmiarów jak ten, dobrze świadczy o syntezatorze mowy.
    • Wprowadzenie tekstu składającego się ze znaków niealfabetycznych. Dobry syntezator mowy powinien poradzić sobie z różnymi dziwnymi znakami w środku tekstu i je prawidłowo przeczytać. Przykładem może być losowy ciąg "Só@#$!saf$~'%_+-\{q".
    • Wprowadzenie dowolnego tekstu i przyspieszenie mowy w celu wychwycenia momentu, gdy mowa przestaje być zrozumiała. Podobny test można wykonać spowalniając mowę. Syntezator powinien czytać zrozumiale w jak najszerszym wachlarzu wprowadzonych zmian.
  11. Akcentowanie.
  12. Akcentowanie pojedynczych wyrazów jest bardzo trudne do osiągnięcia w syntezatorze mowy, natomiast akcentowanie całych zdań to już prawdziwy "rarytas". Testując sposób akcentowania wyrazów przez syntezator mowy najlepiej posłużyć się analogicznymi przykładami:
    • słowa "mama", "tata", "alibaba" posiadają dwie jednakowe sylaby sąsiadujące ze sobą, jednak mimo to sylaby te powinny być czytane w różny sposób (na ogół pierwszy fonem bardziej akcentowany niż drugi). Nie powinny one brzmieć tak samo.
    • słowa krótkie jak "na", "do", "za" lub "pod" nie powinny brzmieć jakby były wyjęte z innych wyrazów.
    Testując sposób akcentowania całych zdań najlepiej jest wpisać klika zdań zakończonych znakiem zapytania i kilka zakończonych wykrzyknikiem. Radzę zwrócić uwagę, czy zdanie zakończone kropką brzmi inaczej, niż to samo zdanie bez kropki kończącej. Powinno oczywiście być słyszalne akcentowanie w dół wyrazu kończącego zdanie.

  13. Obciążalność systemu.
  14. Zwykle bywa tak, że im syntezator mowy więcej potrafi przeczytać i jest inteligentniejszy w wyłapywaniu tekstu z obcych okien systemu operacyjnego, tym bardziej obciąża procesor i spowalnia pracę komputera. Jest to nadal główna i uciążliwa wada wielu dobrych screenreaderów i syntezatorów mowy. Warto zwrócić uwagę na to jak system zachowuje się podczas pracy takiego syntezatora mowy i czy swobodnie można wykonywać inne zadania na komputerze.

  15. Niekolidujący interfejs.
  16. Istotne jest czy skróty klawiszowe obsługujące syntezator mowy, wywoływane w dowolnym innym oknie (np. w celu przechwycenia przez syntezator treści) nie przeszkadzają w normalnej pracy z inną aplikacją. Bywa, że syntezatory mowy lub jeszcze częściej tzw. screenreadery (programy czytające okna innych aplikacji) kolidują swoimi skrótami ze skrótami aplikacji która jest na pierwszym planie. Ponieważ te sktóry klawiszowe z wiadomych przyczyn muszą być globalne, tzn. działać bez względu na to które okno jest aktywne często jest to problem drażniący użytkownika.

Strony i artykuły o syntezie mowy

Materiały i inne strony poświęcone syntezie mowy.

Artykuły o syntezie mowy Artykuły dotyczące syntezy mowy
Strona: Synteza i rozpoznawanie mowy polskiej
Język: polski.
Opis: strona Krzysztofa Sz. z opisem metod tworzenia syntezy mowy. Na stronie znajdują się także opisy aplikacji TTS oraz ASR.

Artykuł o syntezie mowy Artykuł pt. "Protokół XML w aplikacjach głosowych"
Strona: NetWorld
Język: polski.
Opis: artykuł poświęcony standardowi VoiceXML stosowanemu przy oprogramowywaniu aplikacji mowy.

Artykuł o syntezie mowy Głosowy interfejs użytkownika - VoiceXML
Strona: Artegence
Język: polski.
Opis: praca magisterska Marcina T. Dotyczy próby stworzenia polskiej przeglądarki stron VoiceXML z syntezą mowy otrzymaną w oparciu o składanie difonów. Zawiera przykłady WAV otrzymanej syntezy oraz pliki źródłowe dotyczące syntezy i rozpoznawania mowy.

Artykuł o syntezie mowy Gadające komputery
Strona: IDN - Internet dla niepełnosprawnych
Język: polski.
Opis: strona stworzona przez osobę niewidomą poświęcona informacjom dotyczącym przystosowania komputera do wykorzystania przez osoby niewidzące.

Artykuł o syntezie mowy Speech Research
Strona: Perceptual Science Lab
Język: angielski.
Opis: bardzo bogaty zbiór linków do stron naukowych organizacji zajmujących się dziedziną syntezy mowy.

Artykuł o syntezie mowy Kognitywistyka
Język: polski.
Opis: wortal naukowy poświęcony tematyce umysłu, mózgu i sztucznej inteligencji. Zawiera ciekawe artykuły i mnóstwo interesujących linków.