Využití Freetts Pro Voicexml
Total Page:16
File Type:pdf, Size:1020Kb
MASARYKOVA UNIVERZITA F}w¡¢£¤¥¦§¨ AKULTA INFORMATIKY !"#$%&'()+,-./012345<yA| Využití FreeTTS pro VoiceXML BAKALÁRSKÁˇ PRÁCE VojtˇechZavˇrel Brno, podzim 2006 Prohlášení Prohlašuji, že tato bakaláˇrskápráce je mým p ˚uvodnímautorským dílem, které jsem vypra- coval samostatnˇe.Všechny zdroje, prameny a literaturu, které jsem pˇrivypracování použí- val nebo z nich ˇcerpal,v práci ˇrádnˇecituji s uvedením úplného odkazu na pˇríslušnýzdroj. Vedoucí práce: Mgr. Pavel Cenek ii Podˇekování Pˇredevšímbych chtˇelpodˇekovatvedoucímu práce Mgr. Pavlu Cenkovi za ochotné a kon- struktivní konzultace, dále HanˇeDvoˇráˇckovéa Tat’ánˇeZavˇrelovéza jazykové korektury a také všem ostatním, kteˇrímˇepodpoˇrilipˇritvorbˇetéto práce. iii Shrnutí FreeTTS je ˇreˇcovýsyntetizér napsaný v jazyce Java. Je zajímavý pˇredevšímdíky snadné pˇrenositelnostimezi r ˚uznýmioperaˇcnímisystémy. Jedno z dnešních nejˇcastˇejšíchvyužití ˇreˇcovýchsyntetizér ˚ujsou VoiceXML platformy, kde se syntetizéry uplatˇnujípˇrigenerování ˇreˇcovéhovýstupu. Bohužel FreeTTS nelze s VoiceXML platformami pˇrímoˇcaˇreintegrovat, protože nepodporuje potˇrebnéstandardy, zejména SSML a MRCP. Tato práce demostruje, že taková integrace pˇrestomožná je, za použití proprietárních technologií a urˇcitýchfunkˇcních ústupk ˚u.Pro integraci byla zvolena VoiceXML platforma OptimTalk. V práci je pˇredstavena technická realizace a podrobnˇediskutovány možnosti a limity navrženého ˇrešení. iv Klíˇcováslova text-to-speech, FreeTTS, MBrolla, Flite, OptimTalk, JNI, VoiceXML, SSML, syntéza ˇreˇci v Obsah 1 Úvod ............................................. 1 2 Syntéza ˇreˇci ......................................... 2 2.1 Historie ......................................... 2 2.2 Postupy pˇrisyntéze ˇreˇci ............................... 2 2.2.1 Syntéza ˇreˇciv ˇcasovéoblasti . 3 2.2.1.1 Výbˇersegment ˚u . 3 2.2.1.2 Difónová/trifónová syntéza ˇreˇci. 4 2.2.1.3 Doménovˇespecifická syntéza ˇreˇci . 4 2.2.2 Syntéza ˇreˇcive frekvenˇcníoblasti . 4 2.2.3 Artikulaˇcnísyntéza ˇreˇci . 5 2.3 Ovlivˇnovánívýstupu ˇreˇcovésyntézy ........................ 5 2.4 Využití syntézy ˇreˇci .................................. 5 3 Reˇcovésyntetizéryˇ ..................................... 7 3.1 Standardy pro ˇreˇcovésyntetizéry .......................... 7 3.1.1 SSML (Speech Synthesis Markup Language) . 7 3.1.2 Komunikaˇcníprotokoly klient/server . 8 3.1.2.1 MRCP (Media Resource Control Protocol) . 8 3.1.2.2 TTSCP (Text-to-Speech Control Protocol) . 9 3.2 OpenSource TTS systémy .............................. 9 3.2.1 MBROLA . 9 3.2.2 Festival TTS . 10 3.2.3 FreeTTS . 10 3.2.4 Další systémy . 10 3.2.4.1 Epos . 10 3.2.4.2 GNUSpeech . 11 3.3 KomerˇcníTTS systémy ................................ 11 3.3.1 TTS spoleˇcnostiNuance . 11 3.3.2 TTS Acapela Group . 11 3.3.3 TTS spoleˇcnostiLoquendo . 12 3.3.4 TTS spoleˇcnostiSpeechTech . 12 3.4 Vlastnosti FreeTTS .................................. 12 3.4.1 Hlasy podporované FreeTTS . 13 3.4.2 Standardy podporované FreeTTS . 14 3.4.2.1 JSAPI (Java Speech Application Programming Interface) . 14 3.4.2.2 SSML a jazyky pro ovlivˇnovánívýstupu . 14 3.4.2.3 Klient/server komunikaˇcníprotokol . 15 3.4.3 Výkonnost FreeTTS vs. Flite . 15 4 W3C Speech Interface Framework a platforma OptimTalk ............. 17 4.1 VoiceXML 2.0 (Voice eXtensible Markup Language) ............... 18 4.1.1 ProˇcVoiceXML . 19 vi 4.1.2 Struktura VoiceXML dokumentu . 19 4.2 SSML (Speech Synthesis Markup Language) ................... 20 4.3 Další jazyky z rodiny W3C Speech Interface Framework ............ 23 4.3.1 CCXML (Call Control eXtensible Markup Language) . 23 4.3.2 SRGS (Speech Recognition Grammar Specification) . 23 4.3.3 SISR (Semantic Interpretation for Speech Recognition) . 23 4.4 Platforma OptimTalk ................................. 23 4.4.1 Životní cyklus výstupní komponenty . 24 5 Integrace FreeTTS s platformou OptimTalk ...................... 25 5.1 JNI (Java Native Interface) .............................. 25 5.1.1 Schéma aplikace využívající JNI . 26 5.2 Možné varianty integrace .............................. 27 5.2.1 Jednosmˇernáintegrace . 27 5.2.2 Obousmˇernáintegrace pomocí JNI . 28 5.2.2.1 Rešeníˇ pomocí doˇcasnýchsoubor ˚u . 28 5.2.2.2 Rešeníˇ pomocí audio stream ˚u . 28 5.2.3 Obousmˇernéintegrace pomocí socket ˚u . 29 5.2.4 Srovnání integraˇcníchpostup ˚u . 29 5.3 Praktická realizace .................................. 29 5.3.1 Výstupní komponenta free_tts_ouput . 30 5.3.2 Knihovna OptimTalkFreeTTSComponent . 31 5.3.3 Nastavení free_tts_output komponenty . 32 6 Závˇer ............................................. 34 Literatura . 35 A Výkonnost FreeTTS vs. Flite ............................... 36 vii Kapitola 1 Úvod V dobˇe,kdy informaˇcnítechnologie jsou stále pokroˇcilejšía osobní poˇcítaˇcevýkonnˇejší,se s jejich pomocí snažíme docílit dˇrívenemyslitelných úkon ˚u.Pár let zpˇetbyla možnost, že by poˇcítaˇcpromlouval v kvalitˇesrovnatelné s ˇclovˇekem,jen obtížnˇepˇredstavitelná. V poslední dobˇese situace znaˇcnˇezlepšila a stroje jsou schopné psaný text interpretovat natolik kva- litnˇe,že témˇeˇrnepoznáme rozdíl mezi automatem a živou osobou. S ohledem na rozšiˇrující se dostupnost informaˇcníchzroj ˚u,používání elektronických knih a mnoho dalších oblastí se rozšiˇrujímožnosti použití kvalitní syntézy ˇreˇci.Tahounem sektoru jsou komerˇcníaplikace (automatizované telefonní služby, statistické a reklamní systémy, naviganˇcnípˇrístroje atd). Velký užitek z tˇechtostále zdokonalovaných technologií mají také slabozrací a nevidomí, pro které je hlasová syntéza dalším prostˇredkem,jak se zapojit do bˇežnéhoživota. Stranou zájmu však nez ˚ustavajíani bˇežníuživatelé. Témˇeˇrkaždý operaˇcnísystém již má integrován nˇekterýˇreˇcovýsyntetizér a pˇrestožek velké rozšíˇrenostijejich používání zatím nedošlo, je možné to v budoucnu oˇcekávat. Cílem této práce je prozkoumat stav na poli ˇreˇcovýchsyntetizér ˚u,pˇredevšímpak mul- tiplatformního ˇreˇcovéhosyntetizéru FreeTTS a prozkoumat možnost spolupráce FreeTTS s VoiceXML. FreeTTS je syntetizér výjimeˇcnýpˇredevšímdíky použitému programovacímu jazyku Java a tím snadné pˇrenositelnosti a široké použitelnosti. FreeTTS bohužel není možné pˇrímovyužít pro jedno z nejˇcastˇejšíchvyužití ˇreˇcovýchsyntetizér ˚u,integraci s VoiceXML platformami, protože nepodporuje patˇriˇcnéstandardy, zejména SSML a MRCP. Tato práce demonstruje, že taková integrace pˇrestomožná je za použití proprietárních technologií a urˇcitýchfunkˇcníchústupk ˚u.Pro integraci byla zvolena VoiceXML platforma OptimTalk. Zbytek práce je organizován následujícím zp ˚usobem.V kapitole 2 se dozvíme nˇecomálo o historii, projdeme techniky používané pˇriˇreˇcovésyntéze a zdiskutujeme možnosti pou- žití ˇreˇcovýchsyntetizér ˚u.V další kapitole 3 pˇredstavímenˇekteréznámé text-to-speech sys- témy a také si ˇreknˇemenˇecoo vlastnostech systému FreeTTS. Následující ˇcást 4 se zabývá standardy z rodiny "Voice Browser" Activity a také pˇredstavía zˇcástipopíše platformu Op- timTalk, na které bude v poslední ˇcásti 5 ukázána možnost integrace FreeTTS s platformou podporující VoiceXML. 1 Kapitola 2 Syntéza ˇreˇci Syntézou ˇreˇcinazýváme poˇcítaˇcovouprodukci mluveného slova. Automaty, které se syté- zou ˇreˇcizabývají, nazýváme ˇreˇcovýmisyntetizéry. Mnohdy je možné se setkat s anglickým výrazem text-to-speech, odkud pochází zkratka TTS. P ˚uvodnˇetext-to-speech znamenalo komplexnˇejšísystém, který umožˇnujepˇrevodybˇežnéhopsaného textu do mluvené podoby, zatímco ˇreˇcovésyntetizéry tuto vlastnost nemˇely. V tomto textu však budeme oba výrazy chápat jako synonyma. Text-to-speech systémy se obvykle skládají ze dvou ˇcástí.Front-end a back-end. Front- end má za úkol pˇrevéstvšechny symbolické znaˇcky, ˇcíslaapod. na jejich psaný ekvivalent (napˇr.9 na "nine"). Tato ˇcástse zjednodušenˇeoznaˇcujejako pˇredzpracování(pre-processing), normalizace a rozdˇeleníkorpusu na slova (tokenizace) textu. Následuje fonetický pˇrepis každého slova, segmentace (fráze, vˇety),identifikace pauz, intonace apod. Back-end se na- proti tomu stará o samotnou zvukovou syntézu. Pˇripravenýtext pˇrevededo zvukové po- doby na základˇesymbolického zápisu, který je produktem front-endu. [11, 3, 4] 2.1 Historie V minulosti se lidé ˇcastopokoušeli vyrobit mluvící stroj, ale s ohledem na ˇcistˇemechanické možnosti byla kvalita výstupu a rozsah promluvy znaˇcnˇeomezené. Vˇedcise snažili pˇrede- vším napodobit fungování lidského vokálního ústrojí na mechanické úrovni. V roce 1939 byl na výstavˇev New Yorku pˇredstavenVODER, který srozumitelnˇepˇred- ˇcítaltexty zadané na klávesnici. V druhé polovinˇepadesátých let 20. století se zrodil první poˇcítaˇcovýˇreˇcovýsyntetizér. Pˇribližnˇeo 10 let pozdˇejisvˇetlosvˇetaspatˇriltaké první kom- pletní text-to-speech systém. Od té doby se syntetizaˇcnítechniky výraznˇevylepšily a dnes se k nim používá témˇeˇr výhradnˇepoˇcítaˇcovátechnika. [11] 2.2 Postupy pˇrisyntéze ˇreˇci V souˇcasnédobˇerozeznáváme tˇrizákladní postupy pˇrisyntéze ˇreˇci. Konkatenativní neboli ˇcasovásyntéza se zakládá na skládání promluvy z malých ˇcástí slov. Tyto ˇcásti(segmenty) jsou namluvené ˇclovˇekema zaznamenané do databáze. Databáze segment ˚ubývají také nazývány hlasy. Castoˇ se databáze skládá z foném ˚u,difón ˚uapod., po- kud se jedná o tzv. obecnou doménu (general domain), resp. z vˇetšíchcelk ˚u(slov, ˇcástívˇet), 2 2.2. POSTUPY PRIˇ SYNTÉZE REˇ CIˇ pokud se jedná o omezenou doménu (limited domain). Pokud hlasy podporují obecnou do- ménu, je možné pˇrijejich využití syntetizovat libovolný text. Pokud však podporují