MARY TTS
Autori: Dejan Čugalj i Dejan Maglov
Nedeljno poslepodne nekako je rezervisano za dosadu i ubijanje vremena neobaveznim stvarima kao što je neobavezno „surfovavnje” internetom. Kako može da se završi i kuda može da odvede to dosadno nedeljno poslepodne, nikada se ne zna. Elektronska pošta koja stiže nedeljom ili je spam, ili su obaveštenja na koja ste se pretplatili. Registracijom na razne blogove, web IT časopise, pretplatili ste se na potencijalna inbox obaveštenja koja pristižu nedeljom. Ako ste pritom programer – freelancer, blog-freelancer… sigurni smo da se baš u tom istom inbox-u nedeljom pojavljuju i obaveštenja kako ste baš vi taj koji bi mogao da dobije određen posao. Poslovna obaveštenja su korisna, ali dosadna. Ponekad se i u tom poslovnom sadržaju krije potencijalna „inicijalna kapisla” koja bi mogla da „istisne” članak u LiBRE! časopisu. Jedna od takvih slučajnosti je povod pisanja ovog članka, a usko je vezan za „multilingual text-to-speech synthesis”, prevedeno, multi-lingvističko okruženje (eng. framework) za implementaciju TTS (eng. skraćenica od Text-to-speech – tekst u govor) sinteze. Na prvi pogled ništa komplikovano: otkucaš tekst i neki „robot – sintetički glas” (eng. synthesis) to isto izgovori. Naime, problem je „malo” veći nego što se čini. Svaki jezik, svaka fonetska razlika jezika, usko je vezana za fino podešavanje algoritma implementacije TTS-a u kojoj se jezička sinteza diverzibilnosti razlikuje sama po sebi, kao i svaka fonetska distorzija koja čini isti jedinstvenim samom govornom područiju (eng. slang).
U kojoj meri je ova tehnologija značajna, veoma je diskutabilno, camo oni koji imaju problema sa vidom su ti koji mogu objektivno da kažu koliko je to značajno i korisno, dok ostali … LiBRE! se ograničio na slobodan softver. Naziv „slobodan softver” ne znači samo slobodno korišćenje nego slobodan razvoj, unapređenje i modifikovanje softvera. TTS softver upravo pokazuje jednu od glavnih mana ovakvog razvoja softvera, barem u Srbiji. Softver koji zavisi od lokalizacije podrazumeva veću angažovanost lokalne zajednice na njenom razvoju, jer ne možemo da očekujemo od stranaca da razvijaju i našu lokalizaciju. Činjenica je da skoro svi projekti slobodnog softvera, kod nas nastaju kao posledica zadovoljavanja ličnih potreba samih programera. U ovakvim uslovima, razvoj TTS-a možemo očekivati samo od programera koji su lično zainteresovani za taj softver. To znači da se krug mogućih razvijatelja svodi samo na slabovide programere ili na programere koji imaju nekog svog koji je slabovid, a to je prava retkost u Srbiji. U Srbiji je razvoj slobodnog softvera, za nekog drugog, bez lične satisfakcije misaona imenica. Čak ni humanitarni razlozi nisu dovoljan motiv ili se još niko nije setio, a to u ovom slučaju uskraćuje slobodu čitavoj jednoj grupaciji ljudi – ljudima oštećenog vida i slabovidim.
Zato LiBRE! tim želi malo da „zatalasa”, podseti da i humanitarni razlozi mogu da budu motiv za razvoj slobodnog softvera.
Trenutno, jedna od najboljih implementacija TTS-a poseduje srpska kompanija „AlfaNum” http://www.alfanum.co.rs/, koja naravno, TTS usluge i naplaćuje. Kôd su zatvorili i drže ga u svojim „sigurnim rukama”. Gore navedeni link to i demonstrira. (Imao sam priliku da vidim forum post upravo jednog od CEO „AlfaNum”-a koji tvrdi da je mnogo ljudi uključeno u samu realizaciju projekta, te da mora da se naplaćuje. Nismo sigurni da li link ka forumu radi, ali probajte: http://www.elitesecurity.org/t38544-SERBIAN-Speech-engines)
Mislimo da bi to moglo da se promeni, jer upravo ovde predstavljamo projekat otvorenog koda, koji bi taj problem u Srbiji mogao da preusmeri na put slobodnog softvera i slobode.
Predstavljamo vam: MARY TTS – an open-source, multilingual text-to-speech synthesis system written in pure java
Onako, na prvi „programerski” pogled (eng. first view), dokumentacija je više nego dobra: https://github.com/marytts/marytts/wiki, tako da to u celom nekom budućem projektu ne bi bio problem. Naime, malo da „zakočimo” i da objasnimo šta je ovde stvaran problem. Razvoj tekst-u-govor (eng. TTS) sistema je ekvivalentan razvoju sistema gde osoba, koja zna da čita i izgovara pravilno, čita tekst naglas. Iako svi mislimo da je to lako, i da smo u ubeđenju da znamo to da radimo, činjenično stanje je malo drugačije. Drugim rečima, skoro 80% građana ne čita po lingvističkim pravilima i to predstavlja jedan od prvih problema u razvoju TTS-a. Tako da bi jedan od prvih modela u implementaciji TTS-a za srpski jezik, bio znanje kako nešto pročitati (eng. knowing how to read). Bez tog lingvističkog znanja, implicitne radnje algoritma bi po automatizmu prerasle u eksplicitno, a samim tim i složenost istog bi eksponencijalno porasla. Kako bi to sveli na neki minimum, u TTS-u postoje pravila koja se dele na:
- prelom rečenica
- normalizacija teksta
Prelom rečenica u fonetskom kontekstu je jedan od bitnijih delova razvoja TTS-a, jer se nastavak izgovora rečenice veoma razlikuje posle interpunkcijskih znakova, kao što su zarezi, znakovi uzvika, tačke… pa čak ni tu nema pravila, npr. „dr Mirko Mirković”, nije isto kada se izgovara u sredini ili na kraju rečenice. Normalizacija teksta je vezana za razdvajanje reči iz rečenica, tj. drugim rečima trebalo bi da postoji baza izgovorenih reči koju koristi TTS sistem za sam izgovor i to u konjukciji sa prelomom rečenica i pravilom interpunkcijiskih znakova srpskog jezika. Samo malu smernicu o kompleksnosti možete da pogledate na linku: http:www.srpskijezik.rs/gramatika/podela-reci-na-slogove. Samo smo zagrebali vrh ledenog brega, kompleksnost implementacije TTS sistema. Pokušaj individualnog implementiranja bi bio ništa manje do programerske velike avanture, ali, srećom, ne moramo da počnemo iz početka, jer projekat „MARY TTS”, koji je otvorenog koda (eng. open source) nam daje ogromnu odskočnu dasku.
Pregledom API celog sistema „MARY TTS”, stiče se utisak da ne bi trebalo da bude teško implementirati podršku za novi jezik. Nikako nećemo reći da nema posla, ali sa sigurnošću možemo da potvrdimo da je moguće, i to besplatno. Nadamo se da smo makar malo zagolicali maštu nekim budućim programerima, kojim bi „MARY TTS” projekat bio odskočna daska. Jedan takav projekat motivisan humanitarnim razlozima bio bi značajan za srpski FLOSS pokret.
Korisni linkovi:
1. Projekat: https://github.com/marytts/marytts
2. Podrška novom jeziku: https://github.com/marytts/marytts/wiki/New-Language-Support
3. Ideje: https://github.com/marytts/marytts/wiki/Ideas-for-future-work