2010 m. gruodžio 2 d., ketvirtadienis

Kompiuterinė lingvistika: balso sintezė iš teksto (2)

2. KALBOS SINTEZĖS IŠ TEKSTO SISTEMOS

Kaip jau buvo minėta ankstesniame įraše – kalba yra pagrindinė žmonių bendravimo priemonė. Būtent dėl to jau pakankamai seniai yra bandoma ją išgauti dirbtinai. Iki elektroninių kompiuterių atsiradimo buvo konstruojamos mechaninės kalbos sintezės sistemos, tačiau kompiuterių atsiradimas ir ypač jų skaičiavimo pajėgumų didėjimas lėmė didelį kalbos sintezės sistemų progresą. Noras bendrauti su kompiuteriu žmogui elementariausia priemone – garsine kalba – lėmė balso atpažinimo bei sintezės sistemų kūrimą ir vystymą.

Žinoma, kalbos sintezės iš teksto sistemos turi savotiškų trūkumų arba, kitaip vadinant, ribojimų. Užrašytas tekstas jau savaime nebeturi tiek informacijos, kiek jos perduoda kalbantis žmogus. Užrašytame tekste nebelieka intonacijos bei kitokios išraiškos informacijos. Ją galima (ir yra bandoma) atkurti, tačiau tai jau būna tik spėjama, viena iš galimų, intonacijų. Yra sukurta įvairių kalbų, skirtų užrašyti intonaciją bei kalbėtojo išraiškas, tačiau dauguma teksto srautų internete yra grynas tekstas, be tokios išraiškos informacijos, dėl to pirmiausia reikia sistemos, sugebančios tvarkytis su paprastu tekstu. Žinoma, imant atskirus tekstų tipus galima daryti tam tikras prielaidas: pavyzdžiui, analizuojant internetinių pokalbių tekstus, apie intonaciją galima bandyti spręsti iš emocijoms ir jausmams perteikti naudojamų šypsenėlių ir kitų išraiškos priemonių (pavyzdžiui, didžiųjų raidžių).

Šiame skyriuje pasistengsime bendrai apžvelgti kalbos sintezės iš teksto sistemas – jų pritaikymo sritis, naudojimą bei skirstymą. Taip pat pateiksime kelias bendras sintezatorių schemas bei paanalizuosime vienos iš jų sudedamąsias dalis.

2.1. Kalbos sintezės sistemų naudojimas

Šiame poskyryje pažvelgsime į kalbos sintezės sistemų panaudojimo galimybes. Žinoma, čia nebus pateiktos visos sritys, kur galima naudoti tokias sistemas.

Pagrindinės sritys, kur gali būti ir yra naudojamos kalbos sintezės sistemos:

  • akliesiems bei kitiems neįgaliesiems skirtose programose bei sistemose;
  • mokomosiose programose;
  • telekomunikacijose;
  • kitose interaktyviose bei įvairialypėse terpėse.

Akliesiems skirtos kompiuterinės programos bei kitos sistemos, turinčios balso sintezės galimybių, žymiai pagerina informacijos perdavimo naudotojui patogumą. Kurtiesiems arba turintiems didelių klausos problemų asmenims kalbos sintezės sistemos gali padėti bendrauti su kitais žmonėmis, nes dažnai tokiems asmenims yra sunku išmokti kalbėti.

Mokomosiose programose kalbos sintezė gali būti kaip pakaitalas tiesiog pateiktam tekstui, taip sudominantis mokinius bei palengvinantis mokymosi procesą. Ypač pažengusios kalbos sintezės sistemos gali pasitarnauti mokantis užsienio kalbų.

Telekomunikacijose naudojamos balso sintezės sistemos atstoja operatorius ir padeda interesantui gauti reikiamą informaciją jam patogiu metu tinkamoje vietoje.

Balso sintezės sistemos gali būti taikomos interaktyviose sistemose, pavyzdžiui, prie interesanto prisitaikančiose reklamose ir pan. Taip pat turint išraiškingą kalbą generuojančias sistemas galima jas naudoti kompiuteriniuose žaidimuose ar kitose interaktyviose, greitai kintančio turinio programose, kuriose reikia pateikti kaip galima daugiau informacijos visais įmanomais žmogui suvokimo kanalais.

2.2. Bendra sintezatoriaus schema

Šiame poskyryje bus pateikta bendra garsus jungiančio sintezatoriaus schema bei aprašytos pagrindinės tokio sintezatoriaus dalys.

2 pav. pateikta garsus jungiančio sintezatoriaus schema. Ši schema yra pakankamai bendra. Priklausomai nuo konkrečios kalbos ir sistemos realizavimo kai kurios dalys gali skirtis ar būti išskirstytos į smulkesnes (pavyzdžiui, [MV05] yra aprašoma šiek tiek kitokia bei į smulkesnes dalis suskirstyta sistema, o [Sch05] pateikiama dar bendresnė, ne tik garsus jungiančius sintezatorius atitinkanti schema).

2 pav. Bendroji garsus jungiančio sintezatoriaus schema

Išskirtinos trys pagrindinės tokio sintezatoriaus dalys:

  1. Išankstinio paruošimo modulis.
  2. Teksto analizės (arba kitaip – lingvistinio teksto apdorojimo) modulis.
  3. Sintezės modulis.

Išankstinio paruošimo modulis. Tai išankstiniai skaičiavimai ir duomenų, reikalingų kitiems dviem moduliams, paruošimas. Šiame modulyje gali būti suformuojamas žodynas, skirtas fonetinei arba kitai analizei (pavyzdžiui, žodžio kalbos dalies atpažinimui). Taip pat sudaroma garso signalų duomenų bazė. Ji sudaroma segmentuojant didelės apimties profesionaliai įrašytą diktoriaus kalbą. Dažnai segmentavimas atliekamas automatiškai, tačiau neretai po to patikrinamas žmogaus, kad būtų kuo tikslesnis. Segmentų duomenų bazėje laikomi jau suskirstyti ir sužymėti segmentai. Segmentų ilgis ir kiekis priklauso nuo pasirinkto sintezės metodo.

Teksto analizės modulyje atliekama teksto analizė ir transformavimas. Jo įvestis – pradinis tekstas, o išvestis – (dažniausiai) fonemos su trukmės bei intonacijos informacija. Pagrindinės šio modulio dalys yra:

  1. Teksto analizės dalis.
  2. Fonetinės analizės dalis.
  3. Prozodinės analizės dalis.

Analizuojant tekstą atliekama jo pirminė transformacija. Tekstas paruošiamas išskleidžiant santrumpas (pavyzdžiui: t. y. -> tai yra; t. t. -> taip toliau), pakeičiant įvairius kitus elementus į žodžius (pavyzdžiui, išskleidžiant datas: 1986-02-03 -> tūkstantis devyni šimtai aštuoniasdešimt šeštųjų metų vasario mėnesio trečia diena) ir pan.

Fonetinės analizės rezultatas – tekstas, paverstas į fonemas su papildoma informacija. Čia gali būti naudojamas žodynas (pavyzdžiui, norint atpažinti kalbos dalis), taisyklės ar taisyklių ir žodyno derinys. Lietuvių kalbos teksto vertimo į fonemas neatskiriama dalis yra teksto kirčiavimas. Kirčiavimas irgi gali būti atliekamas naudojantis žodynu arba taisyklėmis. Lietuvių kalbos teksto automatinis kirčiavimas išsamiai aprašomas [Kas01] taip pat [KR04] ir [NKR04].

Vykdant prozodinę analizę fonemoms suteikiami (arba jeigu joms jau anksčiau buvo suteikti, tai modifikuojami) ilgiai bei tono aukščiai. Šiame modulyje kuriama intonacija. Fonemų (bei pauzių) ilgius gali sąlygoti kitos fonemos (esančios prieš ir po), žodžiai, sakinio frazės (segmentai) ir kt. [NKR06] trumpai apžvelgiami keli populiariausi garsų trukmės modeliai bei bandoma pritaikyti klasifikavimo ir regresijos medžių metodą lietuvių kalbai.

Išsamus teksto analizės modulio, pritaikyto lietuvių kalbai, aprašymas pateikiamas [Kas01].

Sintezės modulyje jau dirbama su garso signalais. Vyksta:

  1. Garso signalų parinkimas.
  2. Galutinio garso signalo generavimas.

Garso signalų parinkimas vyksta pagal įeities parametrus parenkant tinkamiausius garso signalus iš turimos duomenų bazės. Duomenų bazėje gali būti ne vienas tam tikro reikiamo signalo atitikmuo, tokiu atveju parenkamas tinkamiausias (intonacijos arba sujungimo požiūriu) signalas. Dabar populiarėja vienetų parinkimo metodas (angl. unit selection), kurio esmė ta, kad duomenų bazėje yra ne vienas tam tikro reikiamo signalo variantas, ir, pasinaudojus tam tikromis kainos funkcijomis, išrenkamas tinkamiausias tam tikrai situacijai. Toks metodas pirmą kartą buvo pritaikytas japonų kalbai, o vėliau – ir anglų [BC95]. Šis metodas turi kelis trūkumus. Pirmasis, kad norint gauti geros kokybės sintezuotą kalbą, reikia turėti didelę garsų duomenų bazę. Antrasis, kad nors atskiros sintezuotos kalbos dalys skamba teisingai, bendrai visa kalba (pavyzdžiui, sakinys) kartais gali skambėti keistai.

Galutinio signalo generavimas – tai pakankamai platus funkcijų rinkinys. Taip pat jis priklauso ir nuo naudojamų metodų. Pavyzdžiui, naudojant anksčiau minėtą vienetų parinkimo metodą, teoriškai, turint gerą ir pakankamai išsamią duomenų bazę, galutinio signalo generavimui užtektų tik gebėjimo sujungti atskirus garsus į vientisą signalą. Tačiau dažniausiai to neužtenka. Dėl to šioje vietoje dar naudojami ir garsų signalus modifikuojantys metodai. Dažniausiai reikia keisti atskirų signalų ilgį bei tono aukštį (pavyzdžiui, norint išgauti intonaciją), bet tai nėra paprastas uždavinys, nes nuo to žymiai priklauso sintezuotos kalbos kokybė. Šioms užduotims vykdyti yra pasiūlyti keli algoritmai, ir jie bus aprašyti tolimesniuose poskyriuose.

Visų šių funkcijų bei metodų rezultatas – iš teksto sugeneruotas kalbos signalas.

TĘSINYS BUS :)

Kitame įraše apžvelgsime kalbos sintezės iš teksto sistemų skirstymą. Tad iki kito karto!

LITERATŪRA

[BC95] A. Black and N. Campbell. Optimising selection of units from speech databases for concatenative synthesis. Proceedings of Eurospeech, 1995, pp. 581-584.

[Kas01] P. Kasparaitis. Lietuvių kalbos kompiuterinė sintezė. Daktaro disertacija, Vilniaus universitetas, Vilnius, 2001.

[KR04] A. Kazlauskienė, G. Raškinis. Veiksmažodžių automatinio kirčiavimo galimybės. Kalbos teorija ir praktika. Kaunas: Technologija, 2004, pp. 80–82.

[MV05] E. Morais and F. Violaro. Data-Driven Text-to-Speech Synthesis. XXII Simpósio Brasileiro de Telecomunicações – SBrT’05, 2005.

[NKR04] G. Norkevičius, A. Kazlauskienė, G. Raškinis. Bendrinės lietuvių kalbos daiktavardžių ir būdvardžių kirčiavimo struktūrinis modelis, algoritmas ir realizacija. Kalbų studijos. Kaunas: Technologija, 2004, Nr. 6, pp. 72–76.

[NKR06] G. Norkevičius, A. Kazlauskienė, G. Raškinis. Garsų trukmės modeliavimas naudojant klasifikavimo ir regresijos medžius. Konferencijos „Informacinės technologijos 2006“ pranešimų medžiaga. Kaunas: Technologija, 2006, pp. 82-85.

[Sch05] J. Schroeter. Text-to-Speech (TTS) Synthesis. Knygoje: C. Dorf, Circuits, Signals, Speech And Image Processing. 2005.

Komentarų nėra:

Rašyti komentarą