Logo Search packages:      
Sourcecode: festival-czech version File versions  Download package

README.Czech.cs

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:

Generated by  Doxygen 1.6.0   Back to index