KÕNE MÕISTMINE

[ KUULA ]

ARENDAMISEL

KUULA on TERNARY eestikeelse kõnetuvastuse ehk Speech-to-Text (STT) arendusprojekt. Selle eesmärk on luua kompaktne ja praktiliselt kasutatav kõnetuvastuskiht, mis teisendab kõne tekstiks ning saab töötada nii iseseisvalt kui osana ahelast KUULA → LLM → HÄÄL.

[ 10% ]

[ Fookus ]

Eestikeelse kõne usaldusväärne teisendamine tekstiks, lokaalne kasutus, väike arvutusvajadus ja selge liides teiste süsteemidega.

[ Seis ]

Projekt on arendusetapis. Järgmine töö keskendub treeningandmete korrastamisele, baasmudeli valikule ja treenimisele, hindamismetoodikale ning lokaalse kasutuse jaoks sobiva arhitektuuri leidmisele.

[ Algus ]

KUULA kasvab välja HÄÄLE arendusest.

HÄÄL lahendab süsteemi väljundpoole — teksti muutmise kõneks. KUULA eesmärk on lahendada sama süsteemi sisendpool: muuta eestikeelne kõne tekstiks viisil, mida saab kasutada nii eraldiseisvas rakenduses kui järgmise töötluskihi sisendina.

Koos moodustavad need kaks projekti kõneliidese kaks põhiosa:

KUULA — Speech-to-Text (STT)

HÄÄL — Text-to-Speech (TTS)

Nende vahele saab lisada keelemudeli või muu rakendusloogika vastavalt konkreetsele kasutusjuhule.

[ Eesti keel ]

Kõnetuvastuse kvaliteet sõltub lisaks mudeli arhitektuurile suuresti keelest ja treeningandmetest.

Eesti keele puhul tuleb mudelil toime tulla käände- ja pöördevormide, liitsõnade, nimede, arvude, võõrsõnade, eri kõnetempode ja hääldusvariantidega.

Seetõttu ei ole eesmärk lihtsalt võtta üldotstarbeline Speech-to-Text mudel ja lisada sellele eestikeelne märgis. Arenduse käigus tuleb hinnata, milline tokenizer, treeningmaterjali struktuur ja mudeli suurus annavad eesti keele jaoks kõige parema tasakaalu kvaliteedi ja arvutusvajaduse vahel.

[ Andmed ]

KUULA arenduse üks keskseid osi on eestikeelse kõneandmestiku ettevalmistamine.

Treeningmaterjal peab sisaldama erinevaid kõnelejaid, kõnetemposid, salvestuskeskkondi ja kõnestiile. Lisaks helile on vaja võimalikult täpset transkriptsiooni ning selget seost heli ja teksti vahel.

Kasutatavad korpused tuleb enne treeningut ühtlustada:

  • heliformaat;
  • diskreetimissagedus;
  • transkriptsioonide vorming;
  • kirjavahemärgid;
  • numbrite ja lühendite kuju;
  • vigaste või puudulike segmentide eemaldamine;
  • liiga vaikse, mürase või katkise heli tuvastamine.

Sama andmestik ei sobi automaatselt nii treeninguks, valideerimiseks kui hindamiseks. Nende jaoks luuakse eraldi jaotused.

[ Baasmudel ]

Esimene tehniline ülesanne on luua usaldusväärne eestikeelne baasmudel, mille põhjal saab edasisi katseid võrrelda.

Selles etapis võrreldakse olemasolevate kõnetuvastusarhitektuuride kasutamist, nende kohandamist ning vajadusel väiksema spetsialiseeritud mudeli treenimist.

Valikut ei tehta ainult transkriptsiooni täpsuse järgi. Arvesse tuleb võtta ka:

mudeli suurust, mäluvajadust, töökiirust, lokaalset kasutatavust ja edasise kohandamise võimalust.

Baasmudel jääb hilisemate muudatuste võrdluspunktiks samamoodi nagu HÄÄLE suurem treeningmudel.

[ Kõne ei ole ainult tekst ]

Speech-to-Text mudeli väljund ei ole alati otse kasutusvalmis tekst.

Kõnetuvastus peab eristama või taastama näiteks:

  • lausepiire;
  • kirjavahemärke;
  • suuri ja väikeseid tähti;
  • arve;
  • kuupäevi;
  • kellaaegu;
  • nimesid;
  • tehnilisi termineid;
  • lühendeid.

Mõnel juhul on mõistlik lasta akustilisel mudelil keskenduda eelkõige kõne tuvastamisele ning teha osa tekstilisest korrastamisest järgmises töötluskihis.

Seetõttu käsitletakse KUULA puhul eraldi nii kõnetuvastust ennast kui ka selle väljundi normaliseerimist.

[ Pikem heli ]

Üksikute lühikeste heliklippide transkribeerimine ei ole piisav praktilise süsteemi jaoks.

KUULA peab suutma töödelda ka pikemaid salvestusi, intervjuusid, koosolekuid ja pidevat kõnevoogu.

Selleks tuleb lahendada:

  • heli segmentimine;
  • vaikuse ja kõne eristamine;
  • segmentide ajamärgid;
  • pika faili järkjärguline töötlemine;
  • tulemuste õiges järjekorras ühendamine.

Pikema heli töötlus peab toimima nii, et mudel ei vajaks kogu faili korraga mällu laadimist.

[ Reaalaja kõne ]

Eraldi uurimissuund on kõne järkjärguline töötlemine ehk streaming.

Sellises kasutuses ei oodata kõne lõppu, vaid süsteem peab hakkama teksti väljastama juba rääkimise ajal.

See seab teistsugused nõuded kui salvestatud faili transkribeerimine: oluline ei ole ainult lõpptulemuse täpsus, vaid ka viivitus ja see, kui stabiilselt muutub osaline transkriptsioon lõplikuks tekstiks.

Reaalajarežiim on vajalik näiteks vestlusliidestes, abitehnoloogiates ja süsteemides, kus KUULA töötab koos HÄÄLE või keelemudeliga.

[ Müra ja päris keskkond ]

Treeningandmetes olev puhas stuudioheli ei kirjelda kogu tegelikku kasutust.

Kõnetuvastus peab toime tulema vähemalt teatud piirides ka:

  • taustamüraga;
  • erinevate mikrofonidega;
  • vaikse kõnega;
  • erineva kaugusega mikrofonist;
  • ebaühtlase helitugevusega;
  • tavapäraste salvestusvigadega.

Seetõttu hinnatakse mudelit eraldi nii puhta kui keerulisema heliga.

Eesmärk ei ole peita nõrka sisendit agressiivse helitöötluse taha, vaid teada, millistes tingimustes mudel töötab usaldusväärselt ja kus tekib vajadus täiendava eeltöötluse järele.

[ Väiksem mudel ]

KUULA üks eesmärke on vältida olukorda, kus praktiliseks eestikeelseks kõnetuvastuseks on alati vaja suurt GPU-d või välist pilveteenust.

Pärast kvaliteetse baasmudeli saavutamist hinnatakse mudeli vähendamise võimalusi.

Selleks saab kasutada arhitektuurist sõltuvalt näiteks destilleerimist, kvantimist või väiksema mudeli eraldi treenimist.

Võrdluses vaadatakse vähemalt nelja näitajat:

transkriptsiooni täpsus, töökiirus, mäluvajadus ja mudeli suurus.

Eesmärk on leida minimaalne mudel, mille kvaliteet on konkreetseks kasutuseks piisav.

[ Hindamine ]

KUULA kvaliteeti ei saa hinnata ainult selle järgi, kas mõni üksik lause kirjutati õigesti.

Projektile luuakse püsiv testikomplekt, mida treeningus ei kasutata.

Testmaterjal peab sisaldama muu hulgas:

  • tavakõnet;
  • erinevaid kõnelejaid;
  • arve ja kuupäevi;
  • nimesid;
  • võõrsõnu;
  • tehnilisi termineid;
  • erinevat kõnetempot;
  • pikemaid lauseid;
  • mürasemat heli.

Põhilisteks tehnilisteks mõõdikuteks kasutatakse kõnetuvastusele sobivaid veamäärasid ning neid täiendatakse kuulamis- ja praktiliste kasutustestidega.

Mõõtmiste eesmärk on võimaldada võrrelda eri mudeliversioone samadel alustel.

[ Andmed ja õigused ]

Nagu HÄÄLE puhul, on ka KUULA arenduses andmete päritolu ja kasutusõigused osa tehnilisest tööst.

Iga kasutatava korpuse puhul tuleb dokumenteerida:

  • andmeallikas;
  • litsents;
  • lubatud kasutus;
  • treeninguks kasutamise tingimused;
  • võimalikud piirangud mudeli avaldamisel või kommertskasutusel.

Avalike korpuste kõrval on oluline suurendada oma kontrollitud materjali osakaalu.

See võimaldab paremini juhtida heli kvaliteeti, transkriptsioonide täpsust ja testmaterjali koostist ning vähendab sõltuvust andmeallikatest, mille kasutustingimused võivad mudeli hilisemat kasutamist piirata.

[ Ühenduskiht ]

KUULA ja HÄÄL ei pea olema omavahel kõvasti ühe konkreetse süsteemi külge seotud.

Nende vahele arendatakse selge ühenduskiht, mille ülesanne on muuta kõnest saadud tekst järgmisele komponendile sobivaks ja võtta selle väljund vastu HÄÄLE jaoks.

Selle kaudu saab keskmiseks komponendiks olla näiteks:

  • lokaalne keelemudel;
  • ettevõtte enda mudel;
  • väline keelemudeliteenus;
  • reeglipõhine süsteem;
  • muu rakendusloogika.

TERNARY ei arenda selles projektis eraldi oma üldotstarbelist LLM-i. Ühenduskiht peab võimaldama kasutada ülesande jaoks sobivat mudelit.

See hoiab STT-, keelemudeli- ja TTS-kihi üksteisest tehniliselt eraldatuna.

[ KUULA → LLM → HÄÄL ]

Pikema eesmärgina moodustavad projektid tervikliku kõneliidese:

kõne → KUULA → tekst → LLM / rakendusloogika → tekst → HÄÄL → kõne

KUULA ülesanne on siin sisend, mitte kogu süsteemi otsustusloogika.

Selline ülesehitus võimaldab kõnetuvastust ja kõnesünteesi kasutada ka eraldi. Sama KUULA API võib näiteks toota koosoleku transkriptsiooni ilma HÄÄLE või LLM-ita ning HÄÄL saab jätkuvalt töötada iseseisva TTS-teenusena.

Ühendamine toimub ainult seal, kus rakendus seda vajab.

[ API ]

Praktiliseks kasutuseks peab KUULA olema mudelist suurem tervik.

Süsteemile tuleb defineerida stabiilne liides, mille kaudu saab saata:

  • helifaili;
  • helivoo;
  • keele ja töötluse seaded;
  • vajadusel täiendava konteksti.

Väljund peab olema masinloetav ning sisaldama vähemalt tuvastatud teksti. Vajaduse korral saab sellele lisada ajamärgid, segmendid ja muud mudeli poolt usaldusväärselt toodetavad metaandmed.

Sama API peab võimaldama kasutada mudelit nii lokaalses rakenduses kui serveriteenuses ilma kogu süsteemi ümber ehitamata.

[ Hetkeseis ]

KUULA on HÄÄLEle järgnev arendusetapp.

Praegune töö keskendub projekti andme-, arhitektuuri- ja hindamisaluse ettevalmistamisele. Järgmised tehnilised etapid on:

treeningandmete audit ja ettevalmistamine; baasmudeli valik ja treenimine; eestikeelse püsiva testikomplekti loomine; pika heli ja segmentimise lahendus; väljundteksti normaliseerimine; lokaalse jõudluse mõõtmine; mudeli vähendamine ja kvantimine; streaming-katsetused; API ning KUULA–LLM–HÄÄL ühenduskiht.

KUULA eesmärk ei ole ainult teha üks mudel, mis kirjutab helifaili tekstiks.

Eesmärk on viia eestikeelne kõnetuvastus dokumenteeritud ja mõõdetava tehnoloogiakihini, mida saab kasutada iseseisvalt ning ühendada teiste mudelite ja rakendustega.

[ Teised projektid ]

[ HÄÄL ]

HÄÄL on töötav eestikeelne kõnesünteesi ehk Text-to-Speech (TTS) lahendus, mille keskmes on väike ja ressursitõhus mudel. Arenduses on rõhk kõne kvaliteedi, stabiilsuse, hääle kohandamise ja väikese arvutusvajaduse tasakaalul. Lahendust saab kasutada nii serveris kui sobiva riistvara korral lokaalselt.

[ Vaata projekti ] — HÄÄL

[ MATRIX ]

Kompaktsete ternary AI-mudelite arhitektuur ja käituskeskkond. Esimene terviklik mudel MATRIX EST keskendub eesti keelele, probleemilahendusele ja lokaalsele kasutusele.

[ Vaata projekti ] — MATRIX
[ INTELLIGENCE BEYOND BINARY ]
hello@ternary.ee