Sziasztok!
Egy egyszerű, kötött szavas beszédfelismerő programot fejlesztek egy mozgásképtelen embernek, akinek nagyban megkönnyítené az életét, ha tudna telefonálni és vezérelni néhány dolgot a lakásában (ZigBee hálózatba kapcsolt mikrokontrolleres beavatkozókkal: TV, ágy, vészhívó). Nem tudom mennyire tudjátok elképzelni azt, hogy semmire se vagytok képesek egyedül.
Először is azt szeretném kérdezni tőletek, hogy használtok-e/ismertek-e valamilyen beszédfelismerő programot PC-n, amit a felhasználó egyszerűen betaníthat 5-20 tetszőleges (magyar) szóra/parancsra. Az elsődleges platform Windows és C#, API/SDK előny lenne. Tehát olyan alkalmazás kellene, hogy kimondasz egy szót és egy háttérben futó program meghív egy megfelelő metódust/programot/akármit.
A nagy megbízhatóság (és a kis erőforrás-igény) lenne a cél, de jelenleg ez még nem teljesül. A legnagyobb problémát a szavak elejének detektálása jelenti, ha valakinek van ötlete, hogyan lehetne a mikrofon bemenetet valami körpuffer-szerű szerkezetben vizsgálni (néhány másodpercet tárolni, majd kiírni a lemezre, ha elhangzik egy szó /200 ms-nál hosszabb jel/), azt nagyon megköszönném, kész kódért a hálám minimum egy rekesz sör :)
A teljes kód GPL-es, a hétvégén felrakom az eddig elkészült forráskódokat a projektoldalra, a dokumentációt még meg kell írnom hozzá. Nem tudom érdemes-e verziókezelőt használni, itt van GIT, de még nem használtam.
http://bettercodes.org/projects/recognition-made-simple
Fejlesztői verzió 2010-10-24:
http://nikportal.cickany.hu/view/index.php?dir=GW%20Software/RMS/Turan%…
sicambria@users.sourceforge.net
Köszönettel:
Incze Gáspár
ÓE-NIK
- 7357 megtekintés
Hozzászólások
http://www.google.hu/search?hl=hu&client=firefox-a&hs=uC5&rls=org.mozil…
-
"Attempting to crack SpeedLock can damage your sanity"
- A hozzászóláshoz be kell jelentkezni
Egy Google link itt nem sokat segít.
(Emberi) nyelvfüggetlen, kis erőforrás-igényű megoldásra lenne szükség. Ráadásul ha megvannak az algoritmusok, akkor Linuxra is ki lehetne adni egy füst alatt.
- A hozzászóláshoz be kell jelentkezni
De, segíthet az a linkelt Google keresés...Azt írtad, hogy Windows alapon dolgozol a megoldáson.
A találatokban szerepel a Windows Speech Recognition, ez kombinálható batch-szerű kontrollal is.
Hogy nincs hozzá magyar fonéma-felismerő készlet?
Francia viszont van, és a francia nyelv fonémáival szinte hibátlanul leírható minden magyar szó,
csak új -a francia nyelvben természetesen nem létező- szavakat-kifejezéseket kell rá definiálni, megfelelő "helyesírással".
-
"Attempting to crack SpeedLock can damage your sanity"
- A hozzászóláshoz be kell jelentkezni
Érdekes megközelítés a francia fonémák használata :)
Nagyobb probléma, hogy azon a gépen nem futna a Win7.
- A hozzászóláshoz be kell jelentkezni
Javallom, hogy hasznalj vmi parancsszot, ami az utasitas kezdetet jeloli, ekkor csak egy mintara kell figyelni a buffert.
Pl.: 'Computer! Make a coffee!'
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.
- A hozzászóláshoz be kell jelentkezni
A probléma az, hogy a felvevő nem reagál elég gyorsan, ráadásul ez az időtartam nem is állandó. Ha azt mondom "Számítógép", akkor lehet hogy a hangfájlban "ámítógép" vagy "mítógép" lesz, de néha még az eleje is belekerül. Az eltérő környezeti zajok miatt a működés kiszámíthatatlan. Talán járható az az út, hogy az aktiváló szó utáni szünetet, illetve a 2. szó jelfelfutását már jobb eséllyel lehet felismerni.
- A hozzászóláshoz be kell jelentkezni
Mindenkeppen erdemes magat az aktivalo szot is figyelni, mert lehet, hogy valaki a gep mellett pont hasonlo szunetet tart a beszed elejen - akarmilyen okbbol -, es nem jo dolog, ha a gep elkezd onmagatol dolgozni.
Nem hiszem, hogy ne lehetne egy szo rogzitesenek veges szamu lehetoseget belekalkulalni a dologba. Ha csak sima TTS-STT lenne, meg akkor is megteheto lenne, sztem.
Amivel meg lehet jatszani, az a hangero.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
A felismerési algoritmusok valószínűséggel számolnak, nehéz meghatározni az abszolút küszöböt egy igen/nem típusú válaszhoz (az aktiváló szó hangzott-e el vagy nem). Ha több mintát veszünk fel az segíthet, cserébe lassul a rendszer.
- A hozzászóláshoz be kell jelentkezni
Hát, Macen ez alap, de úgy melékszem Windows alatt is van ilyen funkció (bár lehet, hogy kivették, mert nem volt tökéletes). A Maces sem 100%-os, csak angol morfémákat ért, ellenben baromi könnyű konfigurálni: adott mappába berakod a scripteket valamilyen néven, és ha azt mondod, hogy "kompjúter, (script neve)", akkor végrehajtja.
- A hozzászóláshoz be kell jelentkezni
Helló!
Pár link, amit talán érdemes lenne átnézni:
- http://www.microsoft.com/speech/
- http://www.microsoft.com/windowsxp/using/setup/expert/moskowitz_02septe…
- http://www.microsoft.com/enable/products/windowsvista/speech.aspx
- http://support.microsoft.com/kb/306901
- http://www.instructables.com/id/Use-Spells-to-Control-Your-Computer!/
- http://www.softpedia.com/get/Multimedia/Audio/Other-AUDIO-Tools/VR-Comm…
Ha 0-ról kéne írni, én valami olyasmit tudnék elképzelni, ahogyan a zeneszerkesztő alkalmazásokban működik a "slicer"(~szeletelő). Ennek a lényege, hogy észleli, ha változás van a hangban, pl. egy dobmintát fel tud szeletelni a leütött részek alapján. Ahol hirtelen megnő az amplitúdó, majd hirtelen csökken, ott lenne egy adott "parancs", amit már össze lehetne hasonlítani az előre felvettekkel. Ezt persze real-time-ban véghezvinni gondolom nem egyszerű móka.
- A hozzászóláshoz be kell jelentkezni
real-time-ban inkább egy spektrumképet lenne érdemes tárolni, s azt összehasonlítani a jelenlegivel, s ha tűréshatáron belüli egyezés van, akkor indít. A spektrumot meg lehet valós időben is mérni.
- A hozzászóláshoz be kell jelentkezni
Lehet mérni a spektrumot, illetve ezt még MFCC vektorokká alakítom. Az eltárolt mintákat dinamikus idővetemítéssel hasonlítom össze. Egy neurális hálót is jó lenne kipróbálni, lehet jobban beválna.
- A hozzászóláshoz be kell jelentkezni
VR Commander: lefagy indításkor, talán xp-n hajlandó elindulni
VAC: SAPI failed to initialize (a SAPI 5.1 fent van a gépen)
- A hozzászóláshoz be kell jelentkezni
Lehet, hogy hülye ötlet, de esetleg úgy megoldani, hogy 3*3 másodperces mintákat tárol, nézi a mintákat, keres benne megadott spektrum mintát, nézi az első kettő, és az utolsó kettőben együtt a keresett függvényt, eldobja az utolsót, és veszi a következőt?
- A hozzászóláshoz be kell jelentkezni
Milyen módszerrel és hogyan keresnél mintát? Egy parancs egyébként tipikusan 800-1500 ms hosszú.
- A hozzászóláshoz be kell jelentkezni
Huhh... Én utoljára pascalban programoztam amolyan "pató pál szoftver - szakadt csöves" stílusú dolgokat, így tapasztalatom ebben nincs, csak ötletem, hogy laikusként puskával a fejem mellett hogyan fognék hozzá.
Amire emlékszem még innen-onnan, hogy a magánhangzóknak jellegzetes könnyebben beazonosítható spektrumképe van, így fognék egy referencia képet (hullámformát), és megnézetném egy algoritmussal, hogy bizonyos küszöbön belül hasonló-e (illesztéses próba-szerencse móddal, ami akkor kapcsolna be, ha beszédmintát lát egy megelőző script, ami eldönti, hogy zaj vagy jel-e amit lát [hangerő-hossz tulajdonságok alapján]). Teszem azt (nem valós példák, hasraütésszerűen mondom) a "Kitt- gyere értem!" (:D) parancs esetében figyelném, hogy van-e "i kicsit hosszabb szünet e kisszünet e kisszünet é kisszünet e" spektrumkép (azaz ha i csúcsos hegyesebb szögben, e kerek, é pedig tompább szögben hegyes jelet eredményez, akkor ilyesmit várnék: [/\__∩_∩_^_∩_]. Megpróbálnám csak a magánhangzók alapján belőni, mi lehet az utasítás. Persze így megvan a lehetőség arra, hogy két parancs egyezzende ezt a tanításnál ki lehet küszöbölni rugalmasabb szókinccsel, viszont kevesebb és jobb adatatot kell feldolgozni.
Nem tudom ezzel az agymenéssel mennyit segítettem, remélem nem teljesen hülyeség ;)
- A hozzászóláshoz be kell jelentkezni
http://xvoice.sourceforge.net/
Ez volt a legjobb linuxon azok közül, amiket eddig kipróbáltam, bár jó ideje nem fejlesztik és bugzik is rendesen.
- A hozzászóláshoz be kell jelentkezni
szerintem egyszerű, kell hozzá egy számítógép, azon vannak ilyen valami algoritmusoknak nevezet izék, azok megoldják ezt a konkrét problémát
(gyk: nem a topikra hanem a hsz-ok ra, akinek nem inge..)
- A hozzászóláshoz be kell jelentkezni
Fejlesztői verzió (.NET 2.0, C#) 2010-10-24:
http://nikportal.cickany.hu/view/index.php?dir=GW%20Software/RMS/Turan%…
- A hozzászóláshoz be kell jelentkezni