уторак, 23 априла, 2024
Сам свој мајстор

MARY TTS

Аутори: Дејан Чугаљ и Дејан Маглов

Недељно послеподне некако је резервисано за досаду и убијање времена необавезним стварима као што је необавезно „сурфовавње” интернетом. Како може да се заврши и куда може да одведе то досадно недељно послеподне, никада се не зна. Електронска пошта која стиже недељом или је спам, или су обавештења на која сте се претплатили. Регистрацијом на разне блогове, web IT часописе, претплатили сте се на потенцијалнa inbox обавештења која пристижу недељом. Aко сте притом програмер – freelancer, blog-freelancer… сигурни смо да се баш у том истом inbox-у недељом појављују и обавештења како сте баш ви тај који би могао да добије одређен посао. Пословна обавештења су корисна, али досадна. Понекад се и у том пословном садржају крије потенцијална „иницијална каписла” која би могла да „истисне” чланак у ЛиБРЕ! часопису. Једна од таквих случајности је повод писања овог чланка, a уско је везан за „multilingual text-to-speech synthesis”, преведено, мулти-лингвистичко окружење (енг. framework) за имплементацију TTS (енг. скраћеница од Text-to-speech – текст у говор) синтезе. На први поглед ништа компликовано: откуцаш текст и неки „робот – синтетички глас” (енг. synthesis) то исто изговори. Наиме, проблем је „мало” већи него што се чини. Сваки језик, свака фонетска разлика језика, уско је везана за фино подешавање алгоритма имплементације TTS-а у којој се језичка синтеза диверзибилности разликује сама по себи, као и свака фонетска дисторзија која чини исти јединственим самом говорном подручију (енг. slang).

У којој мери је ова технологија значајна, веома је дискутабилно, caмo они који имају проблема са видом су ти који могу објективно да кажу колико је то значајно и корисно, док остали … ЛиБРЕ! се ограничио на слободан софтвер. Назив „слободан софтвер” не значи само слободно коришћење него слободан развој, унапређење и модификовање софтвера. TTS софтвер управо показује једну од главних мана оваквог развоја софтвера, барем у Србији. Софтвер који зависи од локализације подразумева већу ангажованост локалне заједнице на њеном развоју, јер не можемо да очекујемо од странаца да развијају и нашу локализацију. Чињеница је да скоро сви пројекти слободног софтвера, код нас настају као последица задовољавања личних потреба самих програмера. У оваквим условима, развој TTS-а можемо очекивати само од програмера који су лично заинтересовани за тај софтвер. То значи да се круг могућих развијатеља своди само на слабовиде програмере или на програмере који имају неког свог који је слабовид, а то је права реткост у Србији. У Србији је развој слободног софтвера, за неког другог, без личне сатисфакције мисаона именица. Чак ни хуманитарни разлози нису довољан мотив или се још нико није сетио, а то у овом случају ускраћује слободу читавој једној групацији људи – људима оштећеног вида и слабовидим.

Зато ЛиБРЕ! тим жели мало да „заталаса”, подсети да и хуманитарни разлози могу да буду мотив за развој слободног софтвера.

Тренутно, једна од најбољих имплементација TTS-а поседује српска компанија „AlfaNumhttp://www.alfanum.co.rs/, која наравно, TTS услуге и наплаћује. Kôд су затворили и држе га у својим „сигурним рукама”. Горе наведени линк то и демонстрира. (Имао сам прилику да видим форум пост управо једног од CEOAlfaNum”-а који тврди да је много људи укључено у саму реализацију пројекта, те да мора да се наплаћује. Нисмо сигурни да ли линк ка форуму ради, али пробајте: http://www.elitesecurity.org/t38544-SERBIAN-Speech-engines)

Мислимо да би то могло да се промени, јер управо овде представљамо пројекат отвореног кода, који би тај проблем у Србији могао да преусмери на пут слободног софтвера и слободе.

Представљамо вам: MARY TTS – an open-source, multilingual text-to-speech synthesis system written in pure java

http://mary.dfki.de

Онако, на први „програмерски” поглед (енг. first view), документација је више него добра: https://github.com/marytts/marytts/wiki, тако да то у целом неком будућем пројекту не би био проблем. Наиме, мало да „закочимо” и да објаснимо шта је овде стваран проблем. Развој текст-у-говор (енг. TTS) система је еквивалентан развоју система где особа, која зна да чита и изговара правилно, чита текст наглас. Иако сви мислимо да је то лако, и да смо у убеђењу да знамо то да радимо, чињенично стање је мало другачије. Другим речима, скоро 80% грађана не чита по лингвистичким правилима и то представља један од првих проблема у развоју TTS-а. Тако да би један од првих модела у имплементацији TTS-а за српски језик, био знање како нешто прочитати (енг. knowing how to read). Без тог лингвистичког знања, имплицитне радње алгоритма би по аутоматизму прерасле у експлицитно, а самим тим и сложеност истог би експоненцијално порасла. Како би то свели на неки минимум, у TTS-у постоје правила која се деле на:

  1. прелом реченица
  2. нормализација текста

Прелом реченица у фонетском контексту је један од битнијих делова развоја TTS-а, јер се наставак изговора реченице веома разликује после интерпункцијских знакова, као што су зарези, знакови узвика, тачке… па чак ни ту нема правила, нпр. „др Мирко Мирковић”, није исто када се изговара у средини или на крају реченице. Нормализација текста је везана за раздвајање речи из реченица, тј. другим речима требало би да постоји база изговорених речи коју користи TTS систем за сам изговор и то у конјукцији са преломом реченица и правилом интерпункцијиских знакова српског језика. Само малу смерницу о комплексности можете да погледате на линку: http:www.srpskijezik.rs/gramatika/podela-reci-na-slogove. Само смо загребали врх леденог брега, комплексност имплементације TTС система. Покушај индивидуалног имплементирања би био ништа мање до програмерске велике авантуре, али, срећом, не морамо да почнемо из почетка, јер пројекат „MARY TTS”, који је отвореног кода (енг. open source) нам даје огромну одскочну даску.

Прегледом API целог система „MARY TTS”, стиче се утисак да не би требало да буде тешко имплементирати подршку за нови језик. Никако нећемо рећи да нема посла, али са сигурношћу можемо да потврдимо да је могуће, и то бесплатно. Надамо се да смо макар мало заголицали машту неким будућим програмерима, којим би „MARY TTS” пројекат био одскочна даска. Један такав пројекат мотивисан хуманитарним разлозима био би значајан за српски FLOSS покрет.

Корисни линкови:

1. Пројекат: https://github.com/marytts/marytts

2. Подршка новом језику: https://github.com/marytts/marytts/wiki/New-Language-Support

3. Идеје: https://github.com/marytts/marytts/wiki/Ideas-for-future-work