Skip to content
Home " IT ir technologijos " Kaip veikia kalbos sintezė

Kaip veikia kalbos sintezė

Nuo teksto iki garso: kelionė per mašinos gerklę

Turbūt visi esame girdėję tuos šiek tiek mechaniškai skambančius balsus, kai GPS navigacija liepia sukti į dešinę arba kai virtualus asistentas perskaito gautą žinutę. Tai kalbos sintezės – arba kaip dažnai sakoma, teksto į kalbą (text-to-speech) – technologijos rezultatas. Bet kaip iš eilučių teksto kompiuteris sugeba sukurti kažką panašaus į žmogaus balsą?

Pirmiausia reikia suprasti, kad kompiuteris nemoka “kalbėti” tokia prasme, kaip tai darome mes. Jis neturi balso stygų, plaučių ar burnos. Visa kalba yra tik garso bangų generavimas pagal tam tikras taisykles. Galima sakyti, kad kompiuteris sukuria iliuziją kalbos, o ne tikrąją kalbą. Tačiau šiuolaikinės technologijos šią iliuziją daro tokią įtikinamą, kad kartais sunku atskirti, ar kalba žmogus, ar mašina.

Kalbos sintezės sistema turi atlikti kelis pagrindinius žingsnius: suprasti, ką reiškia tekstas, kaip jis turėtų būti tariamas, kokia intonacija ir ritmu, o tada visa tai paversti garso bangomis. Skamba paprasta, bet tikrovėje tai sudėtingas procesas, kurį žmonės atlieka intuityviai, o mašinoms reikia kruopščiai suprogramuoti kiekvieną detalę.

Kaip kompiuteris “skaito” tekstą

Pirmasis žingsnis – teksto analizė. Kai į sistemą patenka sakinys, ji turi suprasti ne tik žodžius, bet ir kontekstą. Pavyzdžiui, žodis “gyvena” lietuvių kalboje tariamas su kirčiu ant pirmo skiemens, bet sistema turi žinoti, kad tai veiksmažodis, o ne kokia nors kita žodžio forma.

Tekstas pirmiausia išskaidomas į atskirus žodžius, tada į skiemenis ir galiausiai į fonemas – mažiausius garso vienetus. Lietuvių kalboje yra apie 45 fonemos, anglų – apie 44, priklausomai nuo dialekto. Kiekviena raidė ar raidžių kombinacija turi būti “išversta” į atitinkamą fonemą. Čia ir prasideda sudėtingumai, nes viena raidė gali skambėti skirtingai priklausomai nuo konteksto.

Pavyzdžiui, lietuvių kalboje raidė “e” gali būti tariama kaip [ɛ] arba [eː], priklausomai nuo to, ar ji kirčiuota. Sistema turi turėti žodyną su taisyklėmis, kaip kiekvienas žodis turėtų būti tariamas. Bet kas nutinka su naujais žodžiais, kurių nėra žodyne? Čia į pagalbą ateina fonetinės taisyklės – algoritmai, kurie bando “atspėti” tarimą pagal žodžio struktūrą.

Senoji mokykla: konkatenatyvinis sintezavimas

Ankstyvosios kalbos sintezės sistemos veikė gana paprastai – jos turėjo įrašytų garso fragmentų biblioteką. Įsivaizduokite didžiulį archyvą, kuriame saugomi visi įmanomi skiemenų, žodžių ar net frazių įrašai. Kai reikėdavo “ištarti” sakinį, sistema tiesiog suklijuodavo atitinkamus garso gabalėlius vienas prie kito.

Ši technologija vadinama konkatenatyvine sinteze. Ji veikė panašiai kaip tas senas triukas su laikraščio raidėmis – iškirpate reikiamas raides ir sudėliojate jas į žodžius. Tik čia vietoj raidžių buvo garso fragmentai. Problema ta, kad net ir turėdami tūkstančius įrašytų fragmentų, neįmanoma turėti visų galimų kombinacijų. O kai sistema bandydavo sujungti fragmentus, kurie nebuvo įrašyti kartu, garsas skambėdavo nenatūraliai – lyg robotas kalbėtų per skardinę dėžutę.

Kad pagerintų rezultatą, kūrėjai pradėjo įrašinėti ne tik atskirus garsus, bet ir difonus – perėjimus tarp dviejų garsų. Tai padėjo, bet vis tiek neišsprendė pagrindinės problemos: natūrali kalba turi melodiją, ritmą, emocijas. Žmogus nekalbėdamas nesujungia žodžių kaip LEGO kaladėles – viskas teka sklandžiai, su nuolat besikeičiančia intonacija.

Parametrinė sintezė: matematika už garso

Kita kryptis buvo parametrinė sintezė, kur vietoj tikrų įrašų sistema generuoja garsą iš nulio naudodama matematinius modelius. Čia garso banga kuriama remiantis parametrais: dažniu, amplitūde, trukmė ir kitais akustiniais požymiais.

Vienas populiariausių metodų buvo formantiniu pagrindu veikianti sintezė. Formantai – tai rezonansiniai dažniai, kurie susidaro mūsų balso trakte. Kai tariame skirtingas balses, keičiame burnos ir liežuvio padėtį, o tai keičia formantų dažnius. Pavyzdžiui, garsas “a” turi visai kitokius formantus nei “i”.

Parametrinė sintezė leido sukurti kompaktiškesnes sistemas – nereikėjo saugoti gigabaitų garso įrašų. Tačiau rezultatas dažnai skambėdavo dar labiau robotiškai nei konkatenatyvinis metodas. Kodėl? Nes žmogaus balsas yra neįtikėtinai sudėtingas. Jame yra šimtai subtilių niuansų, kuriuos sunku aprašyti matematinėmis formulėmis. Tai lyg bandyti nupiešti Mona Lizą naudojant tik geometrines figūras – gali gauti kažką panašaus, bet trūks gyvybės.

Dirbtinio intelekto revoliucija

Tikrasis proveržis įvyko pastarąjį dešimtmetį, kai į žaidimą įsijungė dirbtinis intelektas ir gilieji neuronų tinklai. Vietoj to, kad programuotojams reikėtų rankiniu būdu aprašyti visas kalbos taisykles, sistema gali išmokti jų pati – tiesiog klausydamasi tūkstančių valandų žmogaus kalbos įrašų.

Šiuolaikinės sistemos, tokios kaip WaveNet, Tacotron ar jų patobulintos versijos, veikia visai kitaip. Jos naudoja gilųjį mokymąsi – technologiją, kuri leidžia kompiuteriui atpažinti sudėtingus šablonus duomenyse. Sistema “maitinama” milžinišku kiekiu garso įrašų su atitinkamu tekstu. Laikui bėgant, ji išmoksta, kaip tekstas koreliuoja su garso bangomis.

Įdomiausia tai, kad sistema išmoksta ne tik tarti žodžius, bet ir perduoti intonaciją, emociją, net kvėpavimo garsus ir kitas natūralios kalbos ypatybes. Ji supranta, kad klausimo pabaigoje balsas kyla aukštyn, kad po kablelio reikia trumpos pauzės, kad svarbus žodis sakinyje tariamas su didesniu akcentu.

WaveNet, kurį sukūrė DeepMind, generuoja garso bangą taškas po taško – 16 000 taškų per sekundę. Kiekvienas naujas taškas prognozuojamas remiantis visais ankstesniais taškais. Tai neįtikėtinai daug skaičiavimų, bet rezultatas stulbinantis – balsas skamba beveik neatskiriamai nuo tikro žmogaus.

Kaip sistema išmoksta kalbėti jūsų balsu

Viena įdomiausių šiuolaikinės kalbos sintezės galimybių – balso klonavimas. Teoriškai, turėdami pakankamai jūsų balso įrašų (paprastai reikia bent kelių valandų), sistema gali išmokti kalbėti jūsų balsu. Ji analizuoja jūsų balso unikalias charakteristikas: tembro, dažnio diapazoną, tariamų garsų ypatumus, intonacijos modelius.

Procesas prasideda nuo balso analizės. Sistema išskaido įrašus į mažus fragmentus ir kiekvienam ištraukia šimtus akustinių požymių. Tai lyg balso “pirštų atspaudai”. Tada, kai reikia sintezuoti naują tekstą, sistema generuoja garsą, kuris atitinka tuos pačius akustinius požymius.

Moderniausios sistemos gali tai padaryti net su labai nedideliu duomenų kiekiu – kartais užtenka vos kelių minučių įrašų. Tai veikia naudojant transfer learning techniką – sistema jau yra išmokusi bendrus kalbos principus iš tūkstančių kitų balsų, todėl jai reikia tik “suderinti” parametrus konkrečiam balsui.

Žinoma, tai kelia ir etinių klausimų. Jei kas nors gali sukurti jūsų balso kopiją, kaip apsisaugoti nuo sukčiavimo? Jau dabar yra atvejų, kai nusikaltėliai naudoja sintetintą balsą telefono sukčiavimui. Todėl kartu su technologija vystosi ir balso autentiškumo tikrinimo metodai.

Prozodija: tai, kas daro kalbą gyvą

Vienas didžiausių iššūkių kalbos sintezėje – prozodija. Tai viskas, kas susijęs su kalba, bet nėra tiesiogiai žodžiai: intonacija, ritmas, akcentai, pauzės, tempas, emocinis tonas. Tas pats sakinys “Puiku” gali reikšti nuoširdų džiaugsmą arba sarkazmą priklausomai nuo to, kaip jį ištariate.

Ankstyvosios sistemos su prozodija nesusidorodavo visiškai. Jos kalbėdavo monotoniškai, lyg skaitydamos telefonų knygą. Šiuolaikinės AI sistemos išmoksta prozodijos iš duomenų, bet vis dar ne visada supranta kontekstą teisingai. Pavyzdžiui, sistema gali nesuprasti, kad tam tikras sakinys yra ironiškas, ir ištars jį neutraliai.

Kad pagerintų prozodijos valdymą, kai kurios sistemos leidžia vartotojui nurodyti papildomus parametrus: emociją (linksmas, liūdnas, piktas), kalbos greitį, net konkretų intonacijos kontūrą. Profesionaliose sistemose galima redaguoti sintezuotą kalbą beveik kaip muzikos įrašą – keisti atskirų žodžių aukštį, trukmę, garsumą.

Lietuvių kalboje prozodija ypač svarbi dėl kirčiavimo sistemos. Turime ne tik kirtį (kuris skiemuo pabrėžiamas), bet ir priegaides (kaip tas kirčiuotas skiemuo tariamas). Žodžiai “kálnas” ir “kalnàs” rašomi beveik vienodai, bet tariami skirtingai. Sistema turi žinoti šias taisykles, kitaip kalba skambės keistai net lietuviams, kurie galbūt nesąmoningai nepastebi kirčių, bet jaučia, kai kažkas negerai.

Praktinis panaudojimas ir ateities perspektyvos

Šiandien kalbos sintezė yra visur. Virtualūs asistentai – Siri, Google Assistant, Alexa – visi naudoja pažangias sintezės sistemas. Navigacijos programos, ekrano skaitytuvai neįgaliesiems, garsinės knygos, švietimo programos, klientų aptarnavimo botai – sąrašas ilgas.

Viena įdomiausių sričių – prieinamumo technologijos. Žmonės, praradę kalbėjimo gebėjimą dėl ligos ar traumos, gali naudoti sintezuotą balsą bendrauti. Yra sistemų, kurios gali atkurti žmogaus balsą pagal senus įrašus – pavyzdžiui, jei kas nors žino, kad serga liga, kuri paveiks kalbą, gali iš anksto “įrašyti” savo balsą būsimai naudoti.

Versle kalbos sintezė taupo didžiulius resursus. Vietoj to, kad samdytų aktorius įrašinėti tūkstančius frazių skirtingomis kalbomis, kompanijos gali naudoti sintezę. Tai ypač naudinga turinį, kuris dažnai keičiasi – pavyzdžiui, oro prognozės, akcijų kainos, naujienos.

Lietuvių kalbai kalbos sintezė vis dar yra iššūkis. Mūsų kalba morfologiškai sudėtinga, turi daug linksnių, galūnių, kirčiavimo niuansų. Nors yra lietuviškų sintezės sistemų, jos dažnai atsilieka kokybe nuo anglų ar kitų pagrindinių kalbų sistemų. Priežastis paprasta – mažiau duomenų, mažiau investicijų į tyrimą. Tačiau situacija gerėja, ypač su atvirojo kodo projektais ir akademiniais tyrimais.

Kai technologija tampa neatskirama nuo tikrovės

Žvelgiant į ateitį, kalbos sintezė artėja prie taško, kai bus visiškai neatskirama nuo tikros žmogaus kalbos. Jau dabar geriausi modeliai Turing testą praeina be problemų – žmonės negali pasakyti, ar kalba žmogus, ar mašina. Bet tai ne pabaiga – technologija juda link dar sudėtingesnių tikslų.

Vienas jų – realaus laiko vertimas su balso išsaugojimu. Įsivaizduokite pokalbį, kur jūs kalbate lietuviškai, o jūsų pašnekovas girdi jus angliškai, bet jūsų balsu, su jūsų intonacija. Arba filmų dubliavimas, kur aktorius kalba originalia kalba, bet jūs girdite jį savo kalba, ir lūpų judesiai atitinka garsą.

Kita kryptis – emociškai intelektualūs balsai. Sistemos, kurios ne tik teisingai taria žodžius, bet ir supranta kontekstą, emocijas, gali pritaikyti savo toną prie situacijos. Virtualus asistentas, kuris jaučia, kad esate susierzinęs, ir atitinkamai keičia savo kalbos stilių – nebe fantastika.

Technologija vystosi neįtikėtinu greičiu, bet kartu kyla klausimų. Kaip apsaugoti žmones nuo balso klastojimo? Kaip užtikrinti, kad technologija būtų prieinama visiems, ne tik didelėms kalboms? Kaip išlaikyti žmogiškumą pasaulyje, kur mašinos kalba kaip žmonės?

Viena aišku – kalbos sintezė jau pakeitė mūsų gyvenimą ir toliau keis. Nuo paprastos pagalbinės technologijos ji virsta fundamentaliu būdu, kaip žmonės sąveikauja su mašinomis ir vienas su kitu. Ir nors technologija gali sukurti tobulą garso iliuziją, tikroji žmogaus kalbos vertė – ne tik garso bangose, bet ir mintyse, emocijose ir sąmonėje, kuri už jų slypi. Bent jau kol kas.