Simon: nyílt forrású "speech-to-text" beszédfelismerő

Címkék

2007. márciusában jelentette be négy német tanuló, hogy nyílt forrású beszédfelismerő szoftvert szeretne készíteni egy mozgássérült fiúnak, akinek a hagyományos billentyűzeten való gépelés problémákat okoz. Majd egy évvel később, a tegnapi napon bejelentették, hogy megjelent a Simon névre hallgató szoftver első alpha kiadása.

A stuff még se nem komplett, se nem stabil, de a tesztelés után az érdeklődőknek már lehet arról fogalmuk, hogy mi is akar lenni ez a "speech-to-text" program.

Simon

Simon

A Simon a julius-ra és a HTK toolkit-re épül.

Bővebben a projektről a Slashdot cikkében és a projekt weboldalán.

Hozzászólások

Nagyon szep gondolat volt ezt megcsinalni. Vajon ez eddig hogy nem jutott senkinek az eszebe?

kötöjelkötöjel
//:wladek's world

Talán mert nagyon nem triviális feladat ilyet írni. Jártam beszédinfo tárgyra, ahol ez is téma volt és eléggé az volt a konklúzió, hogy a mai technikai szinten csak nagyon nagy kompromisszumokkal lehet egyáltalán megvalósítani. Ha egy nagyon korlátozott szókészletet akarunk csak felismertetni (gyakorlatban szokszor ez is elég) az elég jól megoldható. Ha viszont megkötés nélküli szófelismerést akarunk (text-to-speechnél ilyen kell) akkor egyrészt tanítani kell az adott személy hangjához, másrészt rettentően zajérzékeny lesz, harmadrészt még jó körülmények és sok tanítás után is tipikusan 95% fölé nem nagyon lehet emelni a találati arányt. Ez azt jelenti, hogy 20 ból 1 szót el fog rontani, mindezt teljesen ideális körülmények között.
A lényeg az, hogy az ember valós körülmények között a beszéd nagyon nagy részét nem hallja igazából, hanem a hallott részek alapján a hiányzó részeket kiegészíti a meglévő tudása alapján. Ráadásul a szófelismerés eleve egy visszacsatolt folyamat, tehát nem lehet úgy elképzelni, hogy elkülönítve van egy hangfelismerő réteg, ami a detektált hangsort továbbítja egy szófelismerőhöz, ami aztán a tudásbázisból megkeresi a hangsorhoz leközelebb eső szót, majd egy újabb következő réteg a megértett szavakból a nyelvtani szabályok segítségével értelmes mondatot épít. Ehelyett a hangfelismerési folyamatot már eleve befolyásolja a szó már meghallott része (a szókezdő hang másra élesíti a figyelmet) és a már megértett mondatrészek értelme alapján alkotott elvárás is. Ilyen rendszer megvalósításához még alapkutatási eredmények is jócskán hiányosak, tehát egyszerűen a megfelelő elméleti és algoritmikus háttér nincs meg. A kereskedelmi forgalomban kapható rendszerek többnyire elkülönített hang és szófelismerő réteget használnak, aminek a következménye a max 95% körüli találat.
Kiváncsi vagyok, hogy az arc mit tud kihozni, de félek, hogy nem fog ő se nagyon messzire jutni.
---
Sok gyerekkel ellentétben én sose akartam tűzoltó lenni. Lettem helyette informatikus. Nem találjátok ki, hogy mit csinálok nap mint nap...

Olyat nem lehetne csinálni, hogy a gyakran hallott mondatok szavai "megerősödnek"? Hétköznapi beszélgetésekben, irc-n, stb észrevettem, hogy sokszor ugyan azokat a mondatokat használják az emberek (egy irclogból lehetne statisztikát is készíteni erről, proof of concept). A számítógépnek adott utasítások még kiszámíthatóbbak lehetnek. Persze ez arra nem jó, hogy egy esszét diktáljon az ember a gépnek, de megkönnyítheti a napi kommunikációt. Sőt, nem csak egész mondatokkal lehetne ilyet csinálni, hanem mondatrészekkel is, ha más nem, nyelvtani elemekkel.

"Ha egy nagyon korlátozott szókészletet akarunk csak felismertetni (gyakorlatban szokszor ez is elég) az elég jól megoldható."

=> Számítógépnek adott egyszerű utasítások megtanítása relatíve egyszerűen megoldható.

A dolog lényege az, hogy egy szó elég jó felismerési hatásfokkal megtanítható. Tehát ha van egy véges szókészleted, akkor "csak" meg kell keresned, melyikre illik legjobban az észlelt hangsor.

A gond akkor van, ha diktálni szeretnél. Ugyanis nehézkes lenne megtanítani a gépnek a teljes szókincsedet. De ha sikerülne is, ekkor már lennének egymáshoz nagyon hasonló szavak. Ezek közüli választáshoz már a szövegkörnyezet "értelmezésére" is szükséges lenne.

Fel lehetne még ismertetni az egyes fonémákat/szótagokat, de ezzel még nagyobb a félrehallás esélye, hiszen a felismerő még kevesebbet "tud" a környezetről.

Mivel a cél a számítógép vezérlése, valószínűleg ez a project néhány 10-100 parancsszó betanítására fókuszál. Ez remekül működhet (igaz ilyen már van pár).

Szerk: Most nézem a Screenshotot, van ott valami szólista a betanított szavak alapján, de mintha felbontaná hangokra...
Sajnos nem erős a németem, tudja valaki végülis mi a project megközelítése?

Szerk2: A Juliust használják, az meg elvileg szótár alapján dolgozik, illetve egy kevés nyelvtan alapú felismeréssel...

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o

Voltak már hasonló kezdeményezések nyílt forrású körökben? Ted erről bárki bármit?

Jó lesz ez. Text2speech rendszert már belőttem, kötelező olvasmányokhoz hihetetlenül jó. :) Ha ilyen is lesz, akkor lehet házidogákat is "írni". :)

Ezt szeretném honsítva látni :) , Ha még aktuális a kérdés.

+1 jó lenne, ha valami normális beszédfelismerő is lenne, legalább tudnék időnként pofázni neki amikor semmi kedvem sincs a géphez ülni. Mondanám hogy "e-mailek ellenőrzése" erre ő mondja hogy x db leveled jött, erre én hogy olvasd fel..stb.

De jó lenne... akkor a villanyt is rábíznám :)

Én egy KDE-s képernyőfelolvasónak örülnék...majd egyszer..remélhetőleg.

Az enyém a konquerorból felolvassa a honlapokat, meg bemondja, ha új levél érkezik, vagy új hírt lát az akregator. Nem olyan rossz az, én könyvet is olvastattam fel vele, bár egy kicsit monoton a hangszín. (Olyan, mintha a gép halálra unná magát a szövegen Így kicsit álmosító hallgatni.)
Csaba

Nekem az a bajom, hogy a win*-ból ismert képernyőbillentyűzet minőségét megközelítő sincs linux alá. Két kollégámat is érinti akik sajna mozgássérültek, és néha nem megy a kétkezes gépelés és a kezüket nem tudják emelgetni az egy kezes gépeléshez. Ez az ötletet egyszerűen butaságnak tartanák, mivel nem a szájukkal akarnak gépelni, és ez hátráltatná is őket. Hozzáteszem, nem csak a problémát akartam megfogalmazni, ha lesz időnk rá első dolgaim közt lesz ezzel foglalkozni, mivel sok olyan ember van akinek ez megkönnyítené az életét. Ettől függetlenül érdekes feladat, de nem hatékony kommunikációs forma.