NV Speech Player. Syntéza reči postavená na systéme Klatt, napísaná vjazyku c++.

Úvod

NV Speech Player je voľne dostupný prototyp syntézy reči s otvoreným kódom. Môžete ho používať s čítačom obrazovky NVDA. Na generovanie reči sa používa Syntéza Klatt, ktorá pripomína v zahraničí populárne syntézy reči ako Dectalk alebo Eloquence. (Poznámka prekladateľa: Syntéza v súčasnosti podporuje len Angličtinu).

Licencia a autorské práva

Copyright (c) 2014, dielo vývojárov NV Speech playeru. Distribúcia je možná pod licenciou GNU General Public License 2.0. Tento produkt môžete voľne šíriť a meniť rôznym spôsobom, podmienkou však je pripojiť k nemu túto licenciu a sprístupniť zdrojový kód každému, kto si to vyžiada. Týka sa to oboch pôvodných, aj upravených kópií daného software a odvodených diel. Celú licenciu si môžete prečítať (anglicky) na http://www.gnu.org/licenses/old-licenses/gpl-2.0.html

Pozadie

V sedemdesiatych a osemdesiatych rokoch bolo viacero výskumov zameraných na syntézu reči. Jedným z najvýznamnejších modelov bola formantová syntéza, známa ako Klatt syntéza. Veľmi známe Klatt syntézy reči sú Dectalk a Eloquence. Sú veľmi vhodné pre nevidiacich používateľov, lebo majú rýchlu odozvu, výslovnosť je zrozumiteľná a nezaberajú veľa pamäte. Výskum sa však v súčasnosti posunul k iným formám syntézy, napríklad k syntéze založenej na hlasových vzorkách, ktorá má pomalšiu odozvu, ale viac pripomína ľudský hlas. Toto sa ukazuje ako výhoda v telefónnych systémoch, alebo GPS zariadeniach, ale ako nevýhoda pre nevidiacich, ktorí uprednostňujú rýchlu odozvu a presnosť pred dobre znejúcim hlasom.

Hoci hlasy ako Dectalk a Eloquence sa používajú už vyše dvadsať rokov, je čoraz ťažšie sa k nim dostať, lebo firmy ich považujú za zastaralé a viac ich nevyvíjajú.

hlasy založené na hlasových vzorkách majú v súčasnosti čoraz lepšiu odozvu a zvyšuje sa aj zrozumiteľnosť ich prejavu. Takmer všetky kvalitné produkty sú komerčné a pomerne drahé.

Aj Dectalk a Eloquence boli komerčné produkty s uzavretým kódom. Existuje však množstvo zdrojových kódov a výskumov zameraných na Klatt syntézu. NV Speech Player sa pokúša využiť tieto možnosti a byť tak novodobím prototypom Klatt syntézy, v snahe byť náhradou produktov Dectalk alebo Eloquence, alebo aspoň obnoviť výskum a diskusiu o tomto type syntézy.

Hlasový výstup eSpeak, ktorý je voľne dostupný a má otvorený kód, sa pre mnohých ukázal ako dobrá náhrada. Avšak veľa ľudí, ktorí ho počuli, poukazujú na jeho "plechový" zvuk a nedokážu ho dlhodobo používať. Autori NV Speech Playeru stále primárne používajú eSpeak, snažia sa však pochopiť tento zvláštny otpor k eSpeaku. Domnievame sa, že jedným z problémov môže byť spektrálna analýza vs. Klatt syntéza. Je tiež možné, že problém spôsobujú spoluhlásky, ktoré pochádzajú z reálnych nahratých vzoriek a sú preto vnímané ako umelo vložené do toku reči.

Implementácia

Samotná syntéza je napísaná v jazyku C++ s použitím moderného jazyka, ale pridržiavali sme sa implementácie klsyn-88, ktorú môžete nájsť (anglicky) na http://linguistics.berkeley.edu/phonlab/resources/

Text na fonémy reprezentované v IPa rozkladáme pomocou eSpeaku, aby bolo možné zachovať existujúce slovníky pre eSpeak. eSpeak môžete nájsť na http://espeak.sourceforge.net/

Klatt formantové dáta pre fonémy vychádzajú z projektu PyKlatt: http://code.google.com/p/pyklatt/ avšak dáta sme ďalej vylepšili testovaním a porovnaním s dátami v eSpeaku.

pravidlá pre dĺžku foném, pauzy, rýchlosť a intonáciu sme ručne napísali v Pythone, pričom sme sa snažili čo najviac držať sa intonácie použitej v eSpeaku.

Kompilovanie doplnku

Potrebujete: - Python 3.7: http://www.python.org - SCons 3: http://www.scons.org/ - Visual Studio 2019 Community

Na skompilovanie: spustite scons

po skompilovaní by ste v koreňovom adresári mali vidieť súbor nvSpeechPlayer_xxx.nvda-addon, kde XXX je Git revízia alebo nastavené číslo verzie. Po nainštalovaní doplnku do NVDA môžete syntézu okamžite používať. Všetko, čo potrebujete je priamo v doplnku, nie sú vyžadované externé knižnice a súbory.