NV Speech Player. Klatt-bazirana govorna jedinica, napisana u jeziku c++

Pregled

NV Speech Player je eksperimentalna govorna jedinica otvorenog koda i može se koristiti u NVDA čitaču. NV Speech Player generira govor koristeći Klatt sintezu te je sličan govornim jedinicama kao što su Dectalk i Eloquence.

Licenca i autorska prava

Autorska prava (c) 2014. NV Speech Player doprinositelji. NV Speech Player je licenziran pod GNU općom javnom licencom (verzija 2). Program se smije slobodno mijenjati i dijeliti na bilo koji način, dok god ga prati ova licenca i dok se omogući pristup izvornom kodu svakome tko to zatraži. To vrijedi za originalne i izmijenjene kopije ovog programa, kao i za svaki drugi rad, izveden iz njih. Daljnje informacije je moguće naći na: http://www.gnu.org/licenses/old-licenses/gpl-2.0.html

Povijest nastajanja

U sedamdesetim i osamdesetim godinama je bilo puno istraživanja na području sinteze govora. Jedna od najistaknutijih je bila Klatt sinteze govora. Neki od poznatijih Klatt govornih jedinica su Dectalk i Eloquence. Vrlo su korisni za slijepe zbog njihovog brzog odaziva, njihov izgovor je vrlo čist i predvidljiv i zauzimaju malo memorije. Ali, istraživanje je brzo prešlo na druge oblike sinteze govora kao što je konkatenacijski (spojeni) govor. Iako sporiji, mnogo je bliži ljudskom glasu. Ovo je bila prednost za korištenje u aplikacijama kao što su GPS uređaji ili telefonski sustavi, ali ne toliko za slijepe, kojima su brz odaziv i predvidljivost važniji od lijepog zvuka.

Iako su govorne jedinice kao što su Dectalk i Eloquence bile dostupne skoro dvadeset godina, sad ih je sve teže dobiti. Mnoge kompanije govore o tome, da su te govorne jedinice kao i njihove varijante, zastarjele i da ih se više neće ažurirati.

U međuvremenu, konkatenacijski (spojeni) govor obećaje postati dobra zamjena, budući da se odaziv i predvidljivost poboljšavaju. Na žalost, većina govornih jedinica prihvatljive kvalitete su komercijalne i skupe.

Dectalk i Eloquence su bili komercijalni proizvodi zatvorenog koda. Međutim, postoji materijal i određeni dio koda Klatt sinteze govora, koji su dostupni zajednici. NV Speech Player pokušava tu činjenicu iskoristiti kako bi bio moderan prototip Klatt sinteze govora, u nadi da će nadomjestiti Dectalk ili Eloquence ili da barem ponovo započne istraživanja i rasprave o ovoj metodi sinteze govora.

Govorna jedinica otvorenog koda eSpeak, za određeni broj ljudi zajednice bila je dobra zamjena, no mnogi korisnici zamjeraju njegov „metaličan” zvuk i ne žele je dalje koristiti. Iako autori NV Speech Playera najradije koriste eSpeak kao govornu jedinicu, pokušavaju razumijeti protivljenje korisnika da koriste eSpeak. Razlog tomu je možda upotreba sinteze rasponom frekvencija nasuprot Klatt sinteze govora. Možda ima veze i s tim, da se suglasnici skupljaju iz snimljenog govora te stoga djeluje kao da su ubačeni u govor.

Implementacija

Govorna jedinica je napisana u jeziku C++ korištenjem modernih idioma, ali usko prati implementaciju klsyn-88, koju je moguće naći na http://linguistics.berkeley.edu/phonlab/resources/

eSpeak se koristi za raščlanjivanje teksta u foneme koji se prikazuju IPA znakovima, koristeći postojeću obradu eSpeak rječnika. eSpeak se može naći na: http://espeak.sourceforge.net/

Klatt podaci za svaki pojedini fonem su prikupljeni uglavnom iz projekta PyKlatt: http://code.google.com/p/pyklatt/ Međutim, dalje se sve podešavalo na osnovi testiranja i uspoređivanja s eSpeak podacima.

Pravila za dužinu fonema, razmak između fonema i intonaciju ručno su programirana u Pythonu, iako se pokušalo kopirati eSpeakove podatke za intonaciju, koliko god je bilo moguće.

Izgradnja NV Speech Playera

Potreban je sljedeći softver: - Python 3.7: http://www.python.org - SCons 3: http://www.scons.org/ - Visual Studio 2019 Community

Za izdradnju: pokreni scons

Nakon izgradnje, u glavnoj mapi nalazit će se datoteka nvSpeechPlayer_xxx.nvda-addon, gdje je xxx broj prve verzije dodatka. Instaliranjem ovog dodatka u NVDA čitaču, moguće je koristiti govornu jedinicu Speech Player u NVDA čitaču. Sve što je potrebno se već nalazi u dodatku, nije potrebno kopirati nikakve dodatne datoteke.