Tipkanje je mrtvo, naj živi narek

Objavljeno: 29.3.2016 | Avtor: Matej Huš | Kategorija: Preizkusi | Revija: April 2016

Prepoznavanje govora v velikem slogu prihaja v računalništvo, saj je že dovolj uporabno, da si ga izdelovalci upajo ponuditi končnim uporabnikom. Na čelu je gotovo Google, ki nam omogoča narekovanje besedila v Google Docs in tudi oblikovanje z glasovnimi ukazi.

Shema sistema za prepoznavanje govora. Slika: Speechlab, Češka tehniška univerza v Pragi

Shema sistema za prepoznavanje govora. Slika: Speechlab, Češka tehniška univerza v Pragi

Nigel Richards je lani zmagal na svetovnem frankofonskem tekmovanju v scrabblu. To je tista igra, pri kateri na plošči sestavljamo čim daljše besede, za kar moramo jezik izvrstno obvladati. Richardsova zmaga ne bi bila nič nenavadnega, ko bi možakar imel kaj pojma o francoščini. Richards se je med pripravami na tekmovanje na pamet naučil francoski slovar, ne zna pa oblikovati niti enega slovnično pravilnega stavka. Ne zna francosko. Približno tako daleč bi prišel Google, če bi se prepoznavanja govora, abstrahiranja pomena in prevajanja loteval slovarsko. In zato tega seveda ne počne tako. Zapri vrata, bi blagovolili zapreti vrata, zebe me, vleče, prepih je in imaš rep? je le nekaj zgledov, iz katerih človek zlahka abstrahira osnovni pomen in tudi podton povedanega, računalniki pa imajo s tem velike težave.

Če v Googlov prevajalnik vtipkate angleško besedo »tender«, bo prvi prevod »ponudba«, »nežen« in »mehak« bosta šele na drugem mestu, »agenda« pa bo vedno »dnevni red« in »Article« (z veliko začetnico) »Člen«. Isto povprašajte človeškega prevajalca, ki ni zaposlen pri Evropski komisiji, pa bodo prvi prevodi brez konteksta drugačni.

Te besede razkrivajo, kako delujejo Googlovi algoritmi za prevajanje in tudi abstrahiranje pomena. Google uporablja orjaške zbirke podatkov, na katerih je želena operacija že izvedena, da se iz njih uči. Za prevajanje so to velikanske količine prevedenih besedil v čim več jezikih, za prepoznavanje govora pa čim več posnetkov s prepisi govora. Največji generator prevodov je birokratski stroj Evropske unije, kjer pa je besedišče precej specifično, zato je tender večkrat ponudba kot mehak, vsak akt pa vsebuje člene (articles). Seveda pa Google bere tudi Dostojevskega, dnevno časopisje in gleda poročila.

Spominska celica v kratko-dolgoročni spominski mreži (LSTM), kakršne uporablja Google. Slika: Google

Spominska celica v kratko-dolgoročni spominski mreži (LSTM), kakršne uporablja Google. Slika: Google

Kaj zna Google Docs

Marsikaj, a mi se bomo omejili na tisto, kar mu lahko dopovemo. Že na začetku šolskega leta je Google svoji spletni pisarni Docs dodal možnost narekovanja besedila. V brskalniku Chrome – drugod glasovni ukazi še ne delujejo – lahko v Google Docs kliknemo ikono z mikrofonom, ki pordeči, kar pomeni, da Google posluša. In res, jasno dikcijo v angleščini prepoznava brez težav in zapisuje. Pri tem ga slovanski naglas, ki se ga v naših krajih težko otresemo, zgolj malo zmede, a so rezultati še vedno uporabni.

Od tega meseca podpira že več kot 40 jezikov, med njimi je po novem tudi slovenščina, zato lahko besedilo narekujemo tudi v materinščini. V tem primeru sicer Google napravi precej napak, tako da je narek bolj pogojno uporaben, a je kljub temu svetlobna leta pred konkurenco, le za vsakdanjo rabo še ni primeren.

Skupaj s slovenščino je Google v svojo pisarno pripel nov bonbonček. Google Docs odslej razume tudi glasovne ukaze za osnovno oblikovanje besedila. Predhodno smo besedilo sicer lahko narekovali, popravke, oblikovanje in končno stavljenje pa je bilo treba narediti klasično. Na računalniku to ni problem, temveč v resnici celo hitrejša pot, drugače pa je na telefonih in drugih napravah brez fizične tipkovnice.

Glasovno oblikovanje (še) ne podpira slovenščine, temveč le angleščino. Tudi vsebina dokumenta mora biti v angleščini, da ga lahko uporabljamo, a v prihodnosti lahko upamo še na druge jezike. Problem namreč ni popolnoma nič težji od narekovanja besedila, saj se z Google Docs ne moremo pogovarjati kakor z Applovo pomočnico Siri, temveč je urejanje in oblikovanje dokumenta mogoče le s seznamom vnaprej določenih fraz.

Delete last word izbriše zadnjo besedo, pri delete last three words pa se ni zgodilo nič. Te fraze pač ni na seznamu.  To dokazuje, da Google Docs z zadnjim dodatkom ni postal nič fundamentalno pametnejši. Google je na orodje za prepoznavanja besedila privijačil nekaj fraz, ki imajo jasno definirane funkcije. Priznati moramo, da so se potrudili, saj jih je res veliko in zaobjemajo 99 odstotkov vseh funkcij, ki jih pri oblikovanju potrebujemo.

Kako deluje

Google rad razkriva svoje dosežke javnosti, precej rad nas tudi kaj pouči, a kot vsako razumno podjetje bistvene skrivnosti in podrobnosti svojih izdelkov skrbno varuje. Kljub temu so splošna načela delovanja njihovega sistema znana. Uporabljajo globoko učenje (deep learning), o katerem smo obširno pisali v Monitorju 01/16.

Ključni termin so seveda nevronske mreže, ki so nadomestile praktično vse druge pristope k prepoznavanju govora, uporabne pa so tudi drugod. Google jih, recimo, uporablja za avtomatično prepoznavanje vsebine na slikah, prevajanje in celo vizualizacijo. Zamisel je preprosta, izvedba pa malo manj. Nevronske mreže sestavlja vrsta umetnih nevronov, ki prejmejo vhodni signal, potem pa se navezujejo na nevrone na naslednji stopnji, ki se povezujejo še eno stopnjo naprej, dokler ne pridemo do izhoda. Vsak nevron prejema signale nevronov stopnjo niže, jih ustrezno obtežene sešteje, potem pa iz prenosne funkcije izračuna, ali je dražljaj dovolj močan, da pošlje signal naprej, ali ne. Človeški možgani so sestavljeni popolnoma enako, zato so moderne nevronske mreže (in ne tiste iz 50. let) trenutno aktualne za reševanje problemov, ki računalnikom povzročajo težave, ljudem pa ne.

Da je nevronska mreža dobra, mora biti dovolj velika, a bistveno pomembnejši je trening. Uteži vhodov in prenosne funkcije na nevronih se določajo tako, da mreži posredujemo velikanske količine podatkov, za katere vemo, kakšen izhod želimo dobiti. Mreža potem prilagaja interne nastavitve tako, da so izračunani izhodi čim bliže umeritvenim. Če smo mrežo primerno oblikovali in natrenirali, bo znala reševati tudi nove, a sorodne probleme.

Za prepoznavanje govora so v Googlu do leta 2012 uporabljali modele mešanic Gaussove porazdelitve (GMM, Gaussian mixture models), ki so dajali zasilne rezultate. Gre za 30 let staro metodo prepoznavanja govora, ki je dozorela in je preverjena, a ima številne težave. Globoke nevronske mreže (DNN) so področje revolucionirale, za resničen preboj pa so poskrbele rekurentne nevronske mreže (RNN). Te so toliko boljše od GMM, da je Google leta 2012 vrgel vso kodo za GMM proč in svoj sistem za prepoznavanje govora začel pisati od začetka. Danes uporabljajo dolgo-kratkoročne spominske mreže (LSTM), kjer so nevroni zamenjani s spominskimi celicami, ki imajo več vrat in so se sposobne učiti tudi dolgoročnih posledic.

Verjetnostna porazdelitev fonemov v Googlovi razčlembi izgovora besede »museum« Slika: Google

Verjetnostna porazdelitev fonemov v Googlovi razčlembi izgovora besede »museum« Slika: Google

Pri tem moramo biti seveda pošteni. Tako kot se ni Newton domislil teorije gravitacije takoj, ko naj bi mu padlo jabolko na glavo, se tudi v Googlu ni noben inženir leta 2012 zbudil in dobil genialne ideje, kako neki v 30 letih ni še nihče poskusil z nevronskimi mrežami. Leta 2012 je imel Google nekaj, česar leta 1992 ni bilo – velikansko surovo računsko moč in orjaške korpuse vadbenih podatkov, torej posnetkov s transkripti. Google je na različne načine pridobival podatke za korpus, najeli so celo ljudi, ki so brali besedila. Nevronske mreže bi zato leta 1992 kaj malo koristile pri tem problemu. Seveda pa so bistri možje v Mountain Viewu tehnologijo bistveno nadgradili, tega jim nihče ne oporeka.

Bistvena je konceptualna sprememba. Zdaj govora ne razbijamo več na 10-milisekundne drobce, ki bi jih potem analizirali in poslali v klasične akustične modele, od koder bi dobili verjetnostno porazdelitev po vseh fonemih, te pa bi potem s poznavanjem fonemskih pravil jezika zložili v najverjetnejšo besedo. Tak sistem je namreč zelo občutljiv za nejasno izgovarjavo in motnje. RNN posluša večji del govorjenega besedila hkrati (recimo 300 milisekund) in ima vgrajene povratne zanke, s čimer upošteva, da je izgovor posameznega fonema odvisen od okolja, torej od glasov neposredno pred njim in za njim. Kar poskusite na glas izgovoriti Ankaran, Anja in Neža, pa boste videli, da so v resnici vsi štirje n-ji različni.

Googlov uspeh je posledica součinkovanja treh dejavnikov: razvoja surove računske moči, dostopnosti velikanskih zbirk podatkov in izboljšav nevronskih mrež. Kljub temu mu nebesedne prvine povzročajo težave, zato ločil še ne zna postavljati, kot bi si želeli. Narekovati boste morali zelo šolsko, torej z imenom poimenovati vsako vejico, piko ali klicaj, da jo bo Google Docs tudi zapisal. Variacij v intonaciji, premorov, glasnosti, jakostnega in tonemskega naglaševanja ter drugih prozodičnih prvin namreč še ne razume.

Video

Narekovanje Google Docs smo preizkusili tudi v praksi in o tem posneli prispevek za naš MonitorTV. www.monitor.si/narekovanje.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!
Prijava

ph

Komentirajo lahko le prijavljeni uporabniki