Popis postupů české syntézy použitých ve festival-czech ======================================================= * Základní jednotky řeči Základní jednotky řeči byly definovány dle difonové sady vypracované Mgr. Pavlem Machačem. Tento materiál je dostupný v balíku voice-czech-ph. ** Fonémy Fonémová sada je definovaná standardním způsobem v czech.scm. Vlastnosti fonémů definované v czech.scm byly definovány dle potřeb české syntézy, bez přímé návaznosti na konkrétní jazykové nebo fonetické poznatky. Různé fonémy přitom mohou mít zcela shodné vlastnosti, nebylo snahou učinit fonémy svými vlastnostmi unikátní. ** Difony Používáme difonovou sadu z výše zmíněného materiálu Mgr. Pavla Machače. Ta v rozumné míře aproximuje množinu dvojic hlásek vyskytujících se v češtině. ** Přidávání segmentů Část procesu stanovení výsledné sekvence difonů se provádí až před samotnou syntézou, v czech-after-analysis-hooks. Do sekvence segmentů se zde přidávají umělé segmenty. Cílem těchto akcí je dosažení lepšího výsledného zvuku a případně též konverze fonémů pro syntetizéry používající jinou fonémovou sadu. Protože se přidávání segmentů provádí až těsně před syntézou, není nutno je nijak zohledňovat v určování prozodie. Propagace prozodických informací do přidaných segmentů je zajištěna automaticky. ** Slabiky Ve festival-czech je za slabiku považováno celé mluvené slovo. Prvním důvodem je, že je to výhodné při určování prozodie. Druhým důvodem je, že rozklad slov na slabiky je v češtině obtížně určitelný. Při zkoumání slabik je relevantní pouze jejich počet, který je dán výskytem samohlásek a slabikotvorných souhlásek. Na to není rozklad na slabiky zapotřebí. * Výslovnost jednotlivých slov Určování výslovnosti jednotlivých slov je řešeno primárně LTS pravidly `czech'. Korekce fonetické formy, již nezávislé na pravopisných pravidlech, se provádí ve funkci czech-adjust-segments. Tato funkce se volá až po zpracování pauz, protože pauzy jsou pro určení výsledné fonetické podoby podstatný. Protože současný český pravopis je příliš nepravidelný, je nutno si při převodu psané formy na fonetickou vypomáhat lexikonem. Lexikon je pojatý jako seznam přesně těch slov, která nejsou a ani rozumně být nemohou pokryta LTS pravidly nebo pro která by nesprávně proběhl převod z tokenu na slovo (například v případě slova _pst_, které by bylo hláskováno). ** Jak postupovat při nalezení nesprávné výslovnosti slova Pokud je slovo obsaženo v lexikonu, příslušný záznam se jednoduše opraví. Pokud slovo není obsaženo v lexikonu, mělo by být v první řadě posouzeno, zda příslušný problém není širšího rázu a nestálo by za to jej ošetřit přidáním LTS pravidla. Jedná-li se spíše o výjimku, kterou nemá smysl zohledňovat v LTS pravidlech, přidá se do lexikonu. Jde-li o slovo ohebné, měly by být přidány všechny jeho tvary, jsou-li vyslovovány chybně též. Je dobré zamyslet se i nad formami vytvořenými přidáním nebo odebráním předpon. Pokud dojde na přidání nového LTS pravidla, je zapotřebí prověřit, jaké změny způsobí. Optimální by bylo nechat vygenerovat výslovnost všech českých slov před změnou LTS pravidel a po ní a následně srovnat jejich diff výstupy. To je však na běžných strojích poměrně zdlouhavá záležitost a je tedy praktičtější ji aplikovat pouze na množinu slov, které mohou být příslušným pravidlem dotčeny. Je-li nové LTS pravidlo řádně ověřeno, může být přidáno. Volitelně lze prověřit slova v lexikonu, zda se výslovnost některých z nich neshoduje s výsledkem po aplikaci nových LTS pravidel, a taková slova z lexikonu vyřadit. ** Tokeny, které se expandují na více slov Je-li zápis určitého slova expandován na vícero slov, je nutno jeho expanzi definovat v proměnné czech-multiword-abbrevs. Taková slova nepatří do lexikonu -- lexikon definuje jen výslovnost jednotlivých slov. ** Pravidla pro přepis z textu do fonetické podoby Při přepisu textu do fonetické podoby je v lexikonu dovoleno používat veškeré fonémy definované v české fonémové sadě. Přitom musí být dodržena následující pravidla. *** Konverze znělých souhlásek na neznělé a naopak Neprovádí se konverze znělých souhlásek na neznělé a naopak, kde to není vyloženě nutné. Například správný (z hlediska festival-czech) fonetický přepis slova _ovce_ je (o v c e), nikoliv (o f c e). Výslovnost difonu v-c se totiž jednak v tomto slově podstatně neliší od výslovnosti tohoto difonu v jiných slovech a jednak se s opravdovou znělou výslovností tohoto difonu v češtině nesetkáme (ani na hranicích slov a slovech přejatých). Jeho správná výslovnost tedy bude zajištěna v difonové databázi nebo jejích konverzních pravidlech. Naproti správný přepis slova _magnetismus_ je (m a g n e t i z m u s), protože v něm se skutečně jedná o pozměněnou výslovnost slova přejatého a v koncovce je český difon z-m, nikoliv český difon s-m. Toto pravidlo nedává z fonetického hlediska smysl. Jeho cílem je však zjednodušení tvorby položek lexikonu (přispěvatel se může více držet psané formy a nemusí se zabývat speciálními případy) a zamezení lidové tvořivosti v nejednoznačných případech. *** Vkládání rázů Je nutno nezapomínat na vložení rázů mezi samohláskami. Správný přepis slova _neefektivní_ je (n e _ e f e k t i v n~ i:). Naopak správný přepis slova _poet_ je (p o e t). *** Dvojhlásky Dvojhlásky se reprezentují odpovídající dvojicí hlásek. Speciálním případem jsou dvojhlásky obsahující `i' nebo `i:'. Ve skutečnosti se nejedná o dvojhlásky, vyslovuje se totiž mezi nimi hláska `j'. Správný přepis slova _poezie_ tedy je (p o e z i j e). * Prozodie Prozodie ve festival-czech zahrnuje intonaci, délku, pauzy a přízvuk. Tyto parametry jsou konstruovány převážně na základě pravidel publikovaných v [palková:04]. Větné úseky a přízvukové takty jsou konstruovány ve fázi Word, jako zvláštní relace IntUnit a StressUnit. ** Intonace Pravidla pro intonaci byla převzata z [palková:04]. Konkrétní intonační tabulka kadencí byla převzata z [palková-ptáček:97]. V publikovaných prozodických pravidlech jsou určité nejasnosti, které byly rozřešeny následujícím způsobem: - Pro šesti a víceslabičné přízvukové takty se v pozici F používá intonační křivka ze skupiny A (v [palková-ptáček:97] příslušné pravidlo pro pozici F chybí). - Pro pozici F se volí intonační křivka ze skupiny A (v [palková:04] není specifikováno). - Pro pozici F-1 se vybírá pouze z intonačních křivek povolených pro skupinu F (pro jistotu -- v [palková:04] není specifikováno, k čemu by s ohledem na předchozí úpravu měly být F-křivky skupiny B). Nedořešena je detekce doplňkových tázacích vět ve funkci czech-yes-no-question, kde chybí dostatečně obsáhlý seznam tázacích zájmen, číslovek a příslovcí. Mělo by být možné jej získat s pomocí českého ispellu. ** Délka Délka se stanovuje na základě počtu slabik v přízvukovém taktu dle tabulky z [palková:04]. ** Pauzy Používáme pauzy tří délek: nejdelší (BB), střední (B) a krátká (SB). Umisťování pauz se definuje v proměnné czech-phrase-cart-tree a funkci czech-adjust-phrase-breaks. Použitá metoda určování pauz vychází z [palková-ptáček:66], není však přesnou implementací těchto pravidel. ** Přízvuk Dle [palková:04], sekce 1.2db), není v syntéze češtiny žádoucí přízvuk explicitně generovat změnou dynamiky. Přízvuk je modelován intonační křivkou. * Odkazy [palková:04] Zdena Palková: Soubor fonetických pravidel jako podklad pro prozodický komponent automatické syntézy TTS v češtině [palková-ptáček:97] Zdena Palková, Miroslav Ptáček: Modelling Prosody in TTS Diphone Synthesis in Czech; Forum Phoneticum 63, Frankfurt am Main 1997 [palková-ptáček:66] Zdena Palková, Miroslav Ptáček: TTS Issues: Prosody modifications in Text; in Speech processing, 6th Czech-German Workshop, Prag 1966, R. Vích (ed.) pp.32-34 + interní materiál Z. Palková, Závěrečná zpráva grantu GAČR 405/96/0301 -- Milan Zamazal Local variables: mode: outline end: