Festival syntézy řeči

Festival je multiplatformní program pro počítačovou syntézu řeči vyvíjený na univerzitě v Edinburgu. Protože je to svobodný software (BSD-like licence), můžete si jej sami zdarma vyzkoušet. Co umí a jak jej nainstalovat?
7. dubna 1996: začali jsme pracovat, 12. dubna: máme první slovo – „hello“

To čtu na začátku souboru NEWS. Následující text je hlavně pro ty, které zajímá, jaké záznamy jsou dál, co festival dnes již umí, jak se dá využít a v neposlední řadě, jak jej nainstalovat.

Festival je velmi kvalitní komplexní systém pro syntézu řeči, je zadarmo a můžete si jej stáhnout. Možná by ale na začátek neškodilo naťuknout, co to vlastně syntéza řeči je.

Syntézou řeči nazýváme převod textu na mluvené slovo. S pomocí Festivalu si tedy můžete např. nechat přečíst článek z Internetu, obchodní dopis či mail od přítele.

Na mém GNU/Linuxu si „poslechnu“ hlavní americkou stránku projektu festival třeba takto:

lynx http://festvox.org/festival/ –dump | festival –tts

Od dubna 1996 už uplynulo mnoho vody a Festival dnes zvládá opravdu mnoho. Byla by chyba zaměňovat jej s „programem“ na syntézu řeči, protože Festival není program, je to velký soubor programů a skriptovacích souborů. Můžete jej propojovat s jinými hlasovými syntetizátory, přidávat do něj nové jazyky a tvořit v něm vlastní skripty.

Sami autoři předpokládají, že tento systém bude využíván dvěma hlavními způsoby. Koncoví uživatelé jej mohou využívat pro samotnou syntézu řeči, ale hlavně umožní ostatním vědcům zkoumat celý obor syntézy řeči a testovat různé techniky a vylepšení bez toho, aby museli tvořit celý program od začátku.

Ve standardní distribuci máte k dispozici tři anglické hlasy. Don a Roger jsou britští, Kurt mluví s americkým přízvukem. Na Internetu jich ale můžete stáhnout mnohem více, a to i pro jiné jazyky. Jistě vás teď zajímá čeština. Ta bohužel ve Festivalu plně podporována není. Protože je ale systém velmi otevřený, můžeme jej použít pro převod psaného textu na speciální meziformát popisující výslovnost a ten pak syntetizovat pomocí programu MBROLA.

MBROLA je čistý syntetizátor. Jako vstup požaduje již předžvýkané soubory. Ke svému fungování tedy potřebuje nějaký TTS (Text To Speech) systém, což je součást funkce Festivalu. I program MBROLA můžete získat zdarma na Internetu, je však škoda, že se již nejedná o volný software. Autoři to odůvodňují tím, že distribuci chtějí udržovat pouze oni, aby jim všichni tvůrci nových hlasů byli nuceni tyto soubory posílat, a nemohli si je tak nechat pro sebe a zatajit ostatním.

Co se týče mých pokusů, musím uznat, že i anglické hlasy zněly přes syntézu MBROLA lépe než ty, které syntetizoval přímo Festival. Nevyzkoušel jsem ale všechny, možná Festivalu křivdím. Každopádně propojení obou systémů je poměrně jednoduché a krátký návod uvedu na konci článku.

Ti zvídavější brzy objeví, že jádrem Festivalu je programovací jazyk SCHEME a v něm se také provádí většina složitějších věcí. Pokud vám na mysli zrovna vytanulo „proboha, to jsou ty strašné závorky?“, pak má odpověd zní: „Ano:)“ I když se SCHEME od programovacích jazyků založených na C liší opravdu hodně, jistě jej brzy pochopíte alespoň na základní úrovni. Pokud ne, nevadí, k běžnému užívání programu to samozřejmě nepotřebujete.

Ve SCHEME skriptech si můžete třeba naprogramovat módy pro zpracovávání různých typů souborů. Festival umí zpracovávat HTML (kurzíva či tučné písmo se prostě od normálního písma liší a znamenají zvýraznění, tak proč by to měl TTS systém ignorovat) nebo například emaily (zprávy z threadů se znaky `>` znamenají, že něco napsal jeden člověk a něco zas jiný, tak proč by je měl TTS číst stejným hlasem). Lidi s vadou zraku zase jistě potěší, že Festival má i speciální mód pro matematiku, a ve spolupráci s modulem pro vstup z TeXu jim to může velmi ulehčit život při čtení oborných prací.

Potěšilo mne, když jsem ve Festivalu našel XML DTD pro speciální jazyk popisující způsob čtení textu. Pokud zkratkám jako XML a DTD stále ještě moc nerozumíte, nevadí; vězte, že pomocí DTD souboru lze definovat nové značkovací jazyky, jako je třeba HTML. SABLE – jak se jmenuje – je tak velmi podobný HTML. Vybral jsem krátkou ukázku:

Adresa je <RATE SPEED="-40%"> Main Street 10 </RATE>.

V textu se může měnit hlas.
<SPEAKER NAME="male3">Můžeme použít jednoho, <SPEAKER NAME="male2">
vstoupí druhý,</SPEAKER> ale zase se vrátíme k prvnímu </SPEAKER>

Prosím mluvte <VOLUME LEVEL="loud">více nahlas</VOLUME>,
pokud vás zrovna nežádám, <VOLUME LEVEL="quiet">abyste mluvili
potichu.</VOLUME>.

Jak tedy Festival nainstalovat a jak jej propojit se syntetizátorem MBROLA, abyste mohli převádět na řeč i český text? Pokusím se to zde stručně popsat očima uživatele GNU/Linuxu. Uživatelé ostatních systémů budou asi muset nahlédnout do manuálu (na MS Windows by se vám zřejmě kompilovalo dost ztěžka), ale očekávám, že to bude podobné. Pokud jste pod MS Windows, stáhněte si binární distribuci ze stránky www.cse.ogi.edu/CSLU. Integreace s MBROLOU bude zřejmě stejná jako pod GNU/Linuxem (viz níže).

Nejprve si ze stránky stáhněte všechny soubory potřebné k základní instalaci.

Rozbalte speech_tools do nějakého adresáře a příkazem

./configure; make
su root
<musíte zadat rootovské heslo>
make install

je zkompilujte a nainstalujte. Poté můžete přikročit k instalaci samotného festivalu. Rozbalte do nějakého jiného adresáře všechny archivy a stejným příkazem proveďte:

./configure; make; make install

Pokud vše proběhlo úspěšně, máte již systém schopný syntézy angličtiny. Zkuste program spustit příkazem: festival

Nejrychlejší cesta, jak ověřit jeho funkčnost, je zadáním:

festival> (SayText "Hello world.")

Nezapomeňte na závorky – přece jen je to SCHEME.

SayText je vlastně taková zkratka. Pokud chceme lépe pochopit, jak Festival pracuje, zkusíme asi spíše

festival> (set! utt1 (Utterance Text "Hello world."))

provedeme převod na symbolický zápis řeči

festival> (utt.synth utt1) a vlastní syntézu
festival> (utt.play utt1)

To mohou být naše první krůčky v objevování jazyka SCHEME implementovaného ve Festivalu. Jak jsem ale slíbil, budu pokračovat integrací s MBROLOU. Prozatím jej tedy opustíme.

festival> (quit)

Potřebujeme k tomu jednak samotnou MBROLU, český hlas a také SCHEME skript pro Festival. Český .scm skript umístíme do

lib/voices/czech/cz2_mbrola/fest_vox/

Český hlas (zde jsou i binární verze MBROLA pro různé systémy) pak do

lib/voices/czech/cz2_mbrola/cz2/

Rychle nastavíme správnou cestu k binární verzi MBROLA na začátku souboru lib/mbrola.scm u proměnné mbrola_progname.

Poslední, co zbývá, je spustit Festival a nastavit

festival> (set! voice_default `voice_cz2_mbrola)

Nyní již můžeme zkusit něco přehrát

festival> (SayText "Kolik je hodin?")

Mezi hlasy samozřejmě můžete přepínat

festival> (voice.list)

(objeví se seznam hlasů)

festival (voice_don_diphone)

Až vás to omrzí, můžete zkusit nějaký soubor. Opusťte Festival a napište

festival –tts test.txt

přičemž test.txt je soubor s nějakým textem. Festival jej začne předčítat. Možná budete chtít použít

festival –language english –tts test.txt

Užitečná utilitka je text2wave – převede vám tištěný text do zvukového souboru, nejčastěji .wav.

text2wave test.txt

Změnu hlasu nebo nějakých parametrů můžete provést tak, že donutíte Festival vyhodnotit některý váš požadavek ještě před započetím syntézy.

text2wave -eval "(voice_rab_diphone)" test.txt > test.wav

S Festivalem si můžete hrát dlouho –- zkoušet různé doplňující moduly, různé typy syntéz. V distribuci také najdete řadu nástrojů pro gramatický rozbor vět, analýzu intonace, generování spektrogramů a další.

Neděste se delší instalace. Jistě existuje i mnoho TTS, které se instalují snáze. Instalaci může hodně usnadnit i použití binární CSLU distribuce. Mějme ale na paměti, že Festival je z velké části výzkumný projekt a není zase až tak přímo určen pro koncového uživatele. Pokud nechcete pouze černou skříňku, která vám čas od času něco přečte, ale chcete experimentovat, chcete se snažit pochopit, jak co funguje a jaké techniky se při syntéze řeči používají, co za tím stojí, pak je Festival přesně pro vás.

A až vás hraní a zkoumání přestane bavit, najdete v něm i užitečného pomocníka. Spusťte třeba,

lynx www.bbc.co.uk –dump | festival –tts nastavte si na reproduktorech vyšší hlasitost a jděte si v klidu dát svačinu.

Diskuze (5) Další článek: Multimédia a (versus) škola?

Témata článku: Software, Hella, Hlasový příkaz, Su, Festival, Code, Fest, Roger, Řeč, Syn, Hlasový syntetizátor, Stejný příkaz, Kurzíva, Nový hlas, Různé systémy, Krátký článek, Mluvené slovo, Lynx, Různá móda, Nejrychlejší cesta, První slovo, Hell, REC, Speciální mód, Přízvuk


Určitě si přečtěte

Internet poslední naděje. Kdo má nejlepší tarif „LTE na doma“?

Internet poslední naděje. Kdo má nejlepší tarif „LTE na doma“?

** Srovnali jsme fixní LTE připojení od tuzemských operátorů ** Liší se rychlostmi, cenou i podmínkami ** Na co všechno dát pozor?

Lukáš Václavík | 30

DeOldify: Téměř zázračná technologie, která obarvuje 2. světovou válku, nebo vaše fotky z dětství

DeOldify: Téměř zázračná technologie, která obarvuje 2. světovou válku, nebo vaše fotky z dětství

** Neuronová síť DeOldify obarvuje fotky ** Můžete si ji vyzkoušet sami i bez superpočítače ** YouTube je plný obarvených ikonických videí

Jakub Čížek | 20

Otestovali jsme 8 mobilů do 8 000 Kč: rozdíly ve výkonu jsou ohromné

Otestovali jsme 8 mobilů do 8 000 Kč: rozdíly ve výkonu jsou ohromné

** Mobil za 8 000 Kč uspokojí většinu uživatelů ** Klasické foťáky stačí, širokáče ale zklamaly ** Zásadní jsou rozdíly ve výkonu

Časopis Computer | 4


Aktuální číslo časopisu Computer

Megatest mobilů do 8 000 Kč

Test bezdrátových headsetů

Linux i pro začátečníky

Jak surfovat anonymně