Balso asistento kalbos supratimas

Kaip mašinos išmoko mus suprasti

Prisimenu, kai pirmą kartą pabandžiau paprašyti telefono paskambinti mamai. Vietoj to jis atsidarė orų programėlę ir parodė prognozę Bamai, Azerbaidžane. Juokinga? Taip. Bet tai puikiai iliustruoja, kokia sudėtinga užduotis yra išmokyti mašiną suprasti žmogaus kalbą. Šiandien balso asistentai – Siri, Google Assistant, Alexa ar kiti – jau gerokai protingesni, nors kartais vis dar pasimeta. Bet kaip iš tikrųjų veikia ši technologija, kuri leidžia mūsų telefonams, kolonėlėms ir automobiliams suprasti, ko mes iš jų norime?

Balso asistentų kalbos supratimas – tai ne vienas procesas, o visa technologijų grandinė, kuri veikia kartu. Galima įsivaizduoti tai kaip estafetę, kur informacija perduodama iš vieno etapo į kitą, kol galiausiai mašina supranta jūsų užklausą ir atlieka veiksmą. Šiame straipsnyje panagrinėsime kiekvieną šios grandinės grandį ir pamatysime, kaip technologijos evoliucionavo nuo primityviausių sistemų iki dabartinių dirbtinio intelekto stebuklų.

Nuo garso bangų iki skaitmeninių duomenų

Viskas prasideda nuo mikrofono. Kai kalbate į savo telefoną ar išmanųjį garsiakalbį, jūsų balso virpesiai keliauja oru kaip garso bangos. Mikrofonas šias mechanines bangas paverčia elektriniais signalais – analoginiu signalu, kuris dar nėra skaitmeniniu formatu. Čia įsijungia analoginio-skaitmeninio keitiklis (ADC – Analog-to-Digital Converter), kuris šį analoginį signalą paverčia skaičių seka – skaitmeniniais duomenimis, su kuriais kompiuteris gali dirbti.

Šis procesas vyksta neįtikėtinu greičiu. Tipiškai garso signalas yra imamas 16 000 kartų per sekundę (16 kHz dažniu), o kartais net 44 100 kartų per sekundę – tokia pat kokybe, kaip įrašomi muzikos CD. Kiekvienas šis „momentinis kadras” užfiksuoja garso bangos amplitudę tą akimirką, ir visa ši informacija tampa duomenų srautu, kurį sistema gali analizuoti.

Bet prieš perduodant šiuos duomenis tolesnei analizei, dažniausiai atliekamas triukšmo mažinimas. Jūsų aplinkoje gali būti šunų lojimas, automobilių ūžesys, vėjo šūkavimas – visa tai sistema bando atfiltruoti, palikdama tik jūsų balso dažnius. Modernūs įrenginiai naudoja kelis mikrofonus vienu metu, kad galėtų tiksliau nustatyti, iš kurios krypties ateina jūsų balsas, ir atfiltruoti šoninius triukšmus.

Žodžių atpažinimas: kai mašina išgirsta, ką sakote

Dabar prasideda pats įdomiausias dalykas – kalbos atpažinimas (Speech Recognition arba STT – Speech-to-Text). Tai procesas, kurio metu sistema bando suprasti, kokius žodžius ištarėte. Ir čia viskas tampa sudėtinga, nes žmonės kalba labai skirtingai – su akcentais, dialektais, skirtingu greičiu, kartais nuryja garsus ar susijungia žodžius.

Ankstyvosios kalbos atpažinimo sistemos veikė pagal šablonus. Jos turėjo iš anksto įrašytų žodžių pavyzdžių ir bandė jūsų pasakytus žodžius sulyginti su tais šablonais. Problema buvo ta, kad tokios sistemos galėjo atpažinti tik labai ribotą žodžių skaičių ir reikalavo, kad kalbėtumėte labai aiškiai ir lėtai. Kai kurios sistemos net reikalavo, kad tarp kiekvieno žodžio darytumėte pauzę. Įsivaizduokite, kaip tai atrodytų: „Alexa… kokia… šiandien… temperatūra?”

Viskas pasikeitė, kai pradėjo naudoti statistinius modelius ir mašininį mokymą. Vietoj to, kad sistema žinotų, kaip skamba konkretus žodis, ji išmoksta tikimybių – kokia tikimybė, kad tam tikra garso bangų seka atitinka konkretų žodį. Šios sistemos buvo treniruojamos su tūkstančiais valandų įrašytos žmonių kalbos, ir jos išmoko atpažinti ne tik žodžius, bet ir jų kontekstą.

Šiuolaikinės sistemos naudoja gilųjį mokymąsi (deep learning) ir dirbtinių neuroninių tinklų architektūras. Viena populiariausių yra RNN (Recurrent Neural Networks) ir jos patobulintos versijos – LSTM (Long Short-Term Memory) tinklai. Šie tinklai puikiai tinka kalbos analizei, nes turi „atmintį” – jie gali atsiminti, ką girdėjo anksčiau, ir tai padeda suprasti dabartinį kontekstą.

Kalbos modeliai ir konteksto svarba

Bet vien žodžių atpažinimas dar nėra viskas. Sistema turi suprasti, kokia žodžių seka yra tikėtina konkrečioje kalboje. Čia į žaidimą įsijungia kalbos modeliai (Language Models). Jie naudoja statistiką, kad nustatytų, kokie žodžiai dažniausiai eina vienas po kito.

Pavyzdžiui, jei sistema išgirdo „paskambink…” – ji žino, kad toliau greičiausiai seks vardas arba telefono numeris, o ne, tarkime, „bulvė” ar „langai”. Jei išgirdo „kokia šiandien…”, greičiausiai seks „temperatūra”, „data” ar „diena”, o ne „kėdė”. Šie modeliai padeda sistemai pasirinkti tarp kelių galimų interpretacijų, kai garsas nėra visiškai aiškus.

Moderniose sistemose naudojami transformerių (Transformer) architektūros modeliai, tokie kaip BERT ar GPT variantai. Šie modeliai gali analizuoti visą sakinį iš karto, o ne tik žodį po žodžio, ir suprasti sudėtingesnius kontekstus. Jie gali atsižvelgti į tai, ką sakėte anksčiau pokalbio metu, ir net į jūsų ankstesnes užklausas.

Natūralios kalbos supratimas: kai mašina supranta prasmę

Gerai, dabar sistema žino, kokius žodžius pasakėte. Bet ar ji supranta, ką tie žodžiai reiškia? Čia prasideda natūralios kalbos supratimas (NLU – Natural Language Understanding). Tai procesas, kurio metu sistema bando nustatyti jūsų ketinimą (intent) ir išgauti svarbią informaciją (entities).

Pavyzdžiui, jei pasakote „Paskambink mamai rytoj 3 valandą”, sistema turi suprasti:
– Ketinimas: skambinimas
– Gavėjas: mama
– Laikas: rytoj 15:00

Arba jei sakote „Kokia bus temperatūra Vilniuje šį savaitgalį?”, sistema turi identifikuoti:
– Ketinimas: oro prognozės užklausa
– Vieta: Vilnius
– Laikas: šis savaitgalis

Tai nėra paprasta užduotis. Žmonės kalba labai įvairiai. Tą patį dalyką galima pasakyti dešimtimis skirtingų būdų: „Kiek lauko?”, „Kokia temperatūra?”, „Ar šilta lauke?”, „Ar reikia striukės?” – visi šie klausimai iš esmės klausia to paties, bet žodžiai visiškai skirtingi.

NLU sistemos naudoja klasifikatorius, kurie yra ištreniruoti su tūkstančiais pavyzdžių. Jos išmoksta atpažinti šablonus ir suprasti, kad skirtingi žodžiai gali reikšti tą patį dalyką. Taip pat jos naudoja žodžių įterptis (word embeddings) – tai būdas reprezentuoti žodžius kaip skaičių vektorius taip, kad panašios reikšmės žodžiai būtų arti vienas kito matematinėje erdvėje.

Dialogų valdymas ir konteksto palaikymas

Viena iš didžiausių problemų kuriant balso asistentus yra dialogų valdymas. Žmonės nekomunikuoja vienu sakiniu – mes vedame pokalbius. Ir norime, kad mašina suprastų kontekstą per visą pokalbį.

Įsivaizduokite tokį dialogą:
– Jūs: „Kokia temperatūra Kaune?”
– Asistentas: „Kaune dabar 15 laipsnių.”
– Jūs: „O Vilniuje?”
– Asistentas: „Vilniuje 17 laipsnių.”
– Jūs: „Ar ten lis?”

Paskutiniame klausime žodis „ten” reiškia Vilnių, nors jūs jo nepasakėte. Sistema turi atsiminti kontekstą ir suprasti, kad „ten” reiškia paskutinę minėtą vietą. Tai reikalauja dialogų valdymo sistemos, kuri stebi pokalbio būseną ir atsimena svarbią informaciją.

Modernūs balso asistentai naudoja būsenos mašinas (state machines) arba sudėtingesnius dirbtinio intelekto modelius, kurie gali sekti pokalbio eigą. Jie saugo informaciją apie tai, ką aptarėte, ir gali užpildyti trūkstamą informaciją iš konteksto.

Nuo supratimo iki veiksmo

Kai sistema supranta, ko norite, ji turi tai įvykdyti. Tai reiškia integraciją su įvairiomis paslaugomis ir API (Application Programming Interfaces). Jei prašote oro prognozės, sistema kreipiasi į oro prognozių paslaugą. Jei prašote paleisti muziką, ji bendrauja su muzikos srautinio perdavimo programa. Jei prašote paskambinti, ji aktyvuoja telefono skambinimo funkciją.

Šis procesas vyksta per tai, kas vadinama vykdymo moduliu arba veiksmų valdikliu. Jis gauna struktūrizuotą informaciją iš NLU modulio ir paverčia ją konkrečiais komandomis įvairioms sistemoms. Tai tarsi vertėjas, kuris jūsų norą paverčia mašinai suprantamomis instrukcijomis.

Dažnai šis procesas apima ir klaidų valdymą. Jei sistema negali įvykdyti jūsų prašymo (pavyzdžiui, nėra interneto ryšio oro prognozei gauti), ji turi tai suprasti ir informuoti jus apie problemą, o ne tiesiog tylėti ar pateikti klaidingą informaciją.

Kodėl kartais viskas vis tiek eina ne taip

Net su visa šia pažangia technologija, balso asistentai vis dar daro klaidų. Kodėl? Priežasčių yra kelios.

Pirma, kalbos įvairovė yra milžiniška. Yra šimtai kalbų, tūkstančiai dialektų, milijonai akcentų. Nors didžiosios technologijų kompanijos investuoja daug išteklių į populiariausių kalbų modelių tobulinimą, mažesnės kalbos (tokios kaip lietuvių) dažnai gauna mažiau dėmesio. Lietuvių kalbos balso atpažinimas yra gerokai mažiau tikslus nei anglų, nes yra mažiau treniravimo duomenų ir mažiau investicijų į modelių tobulinimą.

Antra, kontekstas gali būti neįtikėtinai sudėtingas. Žmonės naudoja sarkazmą, metaforas, kultūrinius užuominimus, žargoną. Sakote „Šalta kaip šaldytuve” – ar tai reiškia, kad jums šalta, ar kad kalbate apie šaldytuvą? Sistemai tai gali būti neaišku.

Trečia, triukšmas ir garso kokybė vis dar yra problema. Jei kalbate automobilyje, kur ūžia variklis, arba gatvėje, kur daug žmonių, sistema gali susidurti su sunkumais. Nors triukšmo mažinimo technologijos nuolat tobulėja, jos nėra tobulos.

Ketvirta, privatumo sumetimais daugelis sistemų bando apdoroti kuo daugiau informacijos vietiniame įrenginyje, o ne siųsti viską į debesis. Tai reiškia, kad naudojami mažesni, mažiau galingi modeliai, kurie gali būti mažiau tikslūs. Yra nuolatinis kompromisas tarp privatumo, greičio ir tikslumo.

Ką ateitis žada balso technologijoms

Balso asistentų technologijos nuolat tobulėja. Naujausi pokyčiai yra tikrai įspūdingi. Multimodalūs modeliai, kurie gali vienu metu analizuoti ne tik kalbą, bet ir vaizdą, kontekstą, net jūsų ankstesnę elgseną, tampa vis populiaresni. Pavyzdžiui, jei žiūrite į savo telefoną ir matote restorano nuotrauką, o tada paklausiate „Ar jis atidarytas?”, sistema gali suprasti, kad „jis” reiškia tą restoraną ekrane.

Personalizacija taip pat tampa vis svarbesnė. Sistemos mokosi jūsų kalbėjimo būdo, dažnai naudojamų frazių, jūsų įpročių. Jos gali prisitaikyti prie jūsų akcento ir net išmokti jūsų asmeninių žodžių ar vardų, kuriuos naudojate. Kai kurios sistemos gali atpažinti skirtingus šeimos narius pagal balso tembrus ir pateikti personalizuotą informaciją kiekvienam.

Emocijų atpažinimas – dar viena besivystanti sritis. Sistemos pradeda mokytis atpažinti ne tik tai, ką sakote, bet ir kaip sakote – ar esate piktas, liūdnas, susijaudinęs. Tai gali padėti asistentui geriau reaguoti į jūsų poreikius. Jei skambinate pagalbos linijai ir esate susierzinęs, sistema gali tai atpažinti ir greičiau nukreipti jus pas žmogų operatorių.

Kalbant apie lietuvių kalbą, situacija pamažu gerėja. Daugiau lietuviškų duomenų tampa prieinami treniravimui, ir kai kurios kompanijos pradeda investuoti į mažesnių kalbų palaikymą. Tačiau vis dar yra ilgas kelias iki to, kad lietuvių kalbos atpažinimas būtų toks pat tikslus kaip anglų.

Praktiškai, jei norite gauti geriausią patirtį su balso asistentais lietuvių kalba, verta:
– Kalbėti aiškiai ir ne per greitai
– Vengti pernelyg sudėtingų sakinių konstrukcijų
– Naudoti standartinę lietuvių kalbą, vengiant žargono
– Užtikrinti gerą garso kokybę (mažiau triukšmo aplinkoje)
– Reguliariai naudoti asistentą, kad jis galėtų mokytis iš jūsų kalbėjimo būdo

Kai technologija tampa natūralia

Balso asistentų kalbos supratimas yra nuostabi technologijų sintezė – nuo garso apdorojimo iki dirbtinio intelekto, nuo statistikos iki neuroninių tinklų. Tai, kas dar prieš dešimtmetį atrodė kaip mokslinė fantastika, dabar yra mūsų kišenėse ir namuose. Ir nors technologija dar nėra tobula, ji nuolat tobulėja.

Įdomiausia tai, kad mes jau pripratiname prie šios technologijos. Vis daugiau žmonių natūraliai kalba su savo įrenginiais, nebejaučia keistumo. Tai rodo, kad technologija artėja prie savo tikslo – tapti nematoma, natūralia sąsaja tarp žmogaus ir skaitmeninio pasaulio.

Ar kada nors pasieksime tobulą kalbos supratimą? Galbūt niekada, nes net žmonės ne visada supranta vienas kitą idealiai. Bet kiekviena pagerinta sistema, kiekvienas naujas modelis, kiekviena nauja technika mus artina prie to momento, kai pokalbis su mašina taps tikrai natūralus. Ir kai tas momentas ateis, mes tikriausiai net nepastebėsime – o tai ir bus tikrasis technologijos sėkmės ženklas.

Поділіться: XFacebookPinterestLinkedin