Automatikus címjegyzékek létrehozása telefonszámokhoz, rövidítésekhez és egyéb szavakhoz
követelmények
felszerelés
A Sphinx egy nagyon erőforrás-igényes alkalmazás, és modern és meglehetősen produktív hardvert igényel. Annak érdekében, hogy kielégítően működjön, az alkalmazásnak sok RAM-ra van szüksége, ezért ajánlott a Sphinx PC-n történő futtatását olyan processzorral, amely nem fiatalabb Intel® Pentium® 4-nél és legalább 1 GB RAM-mal. Ugyanakkor a szövegfeldolgozás sokkal kevésbé erőforrásigényes, így biztonságosan futtathatja párhuzamosan a beszédfelismeréssel ugyanazon a számítógépen, anélkül, hogy az utóbbiak teljesítményének csökkenése lenne.
szoftver
A cikkben létrehozott alkalmazások Linux® platformokon vagy Microsoft® Windows® rendszeren futtathatók. A Sphinx-4 esetében szükség van a JDK és az Apache Ant legújabb verziójára egy egyedi nyelvtankezelő létrehozásához. Szüksége lesz továbbá Perlre és a megfelelő keresési modulokra (a saját belátása szerint). Az említett szoftvercsomagokkal kapcsolatos további információkhoz, valamint a csomagok letöltéséhez kapcsolódó hivatkozásokhoz lásd: Források.
A Sphinx-4 telepítése
A Sphinx projekten belül különféle csomagok készülnek a különböző beszédfelismerési feladatokhoz. Ez a cikk a Sphinx-4 csomagot használja, amely a felhasználók és a fejlesztők legfrissebb kiadásainak leginkább megfelelő. A Sphinx-4 telepítése kissé bonyolultnak tűnhet, ezért itt vannak az alapvető lépések a telepítési útmutatóból.
- Töltse le és csomagolja ki az Apache Ant fájlt.
- Töltse le és vegye ki a Sun JDK-t (a kiadás idején a legfrissebb verzió 1.6.0_02 volt).
- Töltse le és csomagolja ki a csomagot a Sphinx-4 forráskóddal, mivel módosítani fogjuk az egyik demóprogramot, amely megfelel a céloknak.
- Állítsa be a környezeti változókat a következő parancsokkal:
A Windows rendszerben lehet, hogy környezeti változókat kell beállítani a Vezérlőpult> Rendszer> Speciális> Környezeti változók eszközben. - Menjen a "sphinx4-béta" könyvtárba, majd a "lib" alkönyvtárba.
- Aktiválja a JSAPI bináris licencet a jsapi.sh parancsfájl futtatásával. A Sphinx-4 bináris licenccel támogatja a JSAPI-t, ezért el kell fogadnia a licencszerződést.
- Előfordulhat, hogy telepecseget kell telepíteni a JSAPI számára szükséges komponensek tömörítéséhez. A legtöbb Linux disztribúció tartalmaz egy olyan csomagot, amely egyébként tartalmaz új kódot, ezért először ellenőrizze a rendelkezésre álló csomagokat, ha újratöltés szükséges. A Windows rendszerben kattintson duplán a jsapi.exe fájlra, és fogadja el a licencszerződést.
- Térjen vissza a Sphinx4 gyökérkönyvtárába.
- Futtassa az ant parancsot. meg kell kezdeni az összeszerelési folyamatot.
A "BUILD SUCCESSFUL" állapotüzenet azt jelzi, hogy a környezet sikeresen konfigurálva volt, és folytathatja a módosítási lépéseket. Ha megjelenik egy másik üzenet, ellenőrizze a telepítési könyvtárat és a környezeti változók beállításait, vagy olvassa el az Apache Ant és Sphinx-4 kézikönyveket a környezetének részletesebb telepítési utasításaihoz.
A felszólalóktól független levelek és számok elismerésének stratégiája a beszédben
Mindig úgy tűnik, hogy a beszédfelismerés technológiája 2 és 10 év között maradt, mielőtt a beszéd nagy szókincsének önálló szókincsének elismerése sikeres lett volna. Jegyzetekkel beszélgetés sok szavazatot, szimultán beszéd különböző ékezeteket és számos technikai és köznyelvi kifejezések - a probléma szinte megoldhatatlan olyan szoftvert fogyasztói osztály a piacon elérhető. Azonban a Sphinx és különösen a Sphinx-4 csomagok minden szükséges lehetőséget biztosítanak egy kicsi (de mégis hasznos) szótár megbízható felismerésére anélkül, hogy kötelező lenne a hangszóróhoz.
Korlátozott szókincsünket már definiáltuk: az angol ábécé A-Z betűit és a 0-9 számokat. Stratégiánk csak olyan területek kijelölésére hívja fel a figyelmet, ahol ezeket a betűket vagy számokat hangsúlyozták. Ennek a megközelítésnek a általános neve a szavak kiválasztása. Bár a Sphinx-4 jelenleg nem támogatja a szókiemelést, még mindig hasznos eredményeket érhetünk el, ha minden egyes kiejtett kombinációt ellenőrizünk, hogy megfeleljen legalább egy szónak a nyelvtanból. Ezután a legmegfelelőbb betűk és számok listájával szabványos szövegszerkesztő eszközöket és információs útmutatókat használhatunk a hasznos információk kivonására.
Felhasználói szótár, a "Hello World" példa módosítása
Szótárfájl létrehozása
A "szavak kiemelése" mechanizmus létrehozásának első lépéseként létrehozunk egy fájlt a megadott szótárral. A könyvtárak Sphinx-4 egy könyvtár nevű bld / modellek / edu / CMU / szfinx / modell / akusztikus / WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz / dict /. Az alfa.dict és a digit.dict nevű szótárakhoz tartozó fájlokat tartalmazza. Első pillantásra úgy tűnik, hogy e két szótárak kombinációja adja meg a kívánt fájlt. Ez egyáltalán nem ilyen. Készítsük el a szótárfájlokat a cmudict.0.6d fájlból ugyanabban a könyvtárban.
Menj a könyvtárba bld / modellek / edu / CMU / szfinx / modell / akusztikus / WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz / dict /, és használja a következő parancsot, hogy hozzon létre a kívánt szótár file:
Az 1. felsorolás a létrehozott alN.dict fájlt mutatja, amelynek tartalma csak betűk és számok.
1. felsorolás
A "Hello World" példa módosításai
A Sphinx-4 különböző beállításokat nyújt a gyakorlatban a beszédfelismerés területén meglévő minden igény kielégítésére. A mi esetünkben a leghatékonyabb megközelítés lenne a már létező "Hello World" példa módosítása. A Sphinx-4 gyökérkönyvtárában menjen a demo / sphinx / helloworld könyvtárba, és módosítsa a helloworld.config.xml fájlt. A 2. lista csak az általunk létrehozott alN.dict fájlt használó egyetlen karakterláncot mutatja.
Listázás 2. Változások a helloworld.config.xml fájlban
Szintén meg kell változtatnod a fájlt a hello.gram grammatikával ugyanabban a könyvtárban. A 3. listában láthatók azok a változtatások, amelyeket csak a szótárfájlban lévő betűk és számok gyűjtéséhez kell végrehajtani.
Listázás 3. A hello.gram fájl módosításai
Szintén kisebb változtatásokat kell végrehajtanunk a HelloWorld.java fájlban, az alábbiak szerint:
Listázás 4. A HelloWorld.java fájl módosításai
Szövegfeldolgozás
Talán még érett kérdése is van: mi akadályozza ezer ezer szótár használatát a legrosszabbul felismert esetek feldolgozására? Végezetül a Sphinx-4-ben nyelvi modellek és nagy szókincsbáziskák állnak rendelkezésre. Miért ne csak állítsd be a bemutatót, hogy felismerd a mondat többi részét: "A technikai segítségnyújtás telefonszáma", és bármely más szó, amelyről beszélhetünk?
Válasz: A Sphinx-4 egy jó alkalmazás, de nem tökéletes. A bővítés a szótár file elismerésére több százezer szó, hogy drasztikusan csökkenti a hatékonyságát elismerése egyes betűk és számok. Ennek ellenőrzéséhez elolvassa a többi program egy alkönyvtárban demo Sphinx-4 csomag vagy módosítja a meglévő példák beállítani őket használni a nagy szótárban fájlokat és a fejlett nyelvtani listákat. Mint kiderül, a későbbi feldolgozása szöveg, amely csak betűk és számok, az adatok keresve egy magasabb szinten - egy sokkal egyszerűbb eljárás egy működőképes és hasznos feliratozást alapuló rendszer kapható rendszerek nyílt forráskódú.
Listázás 5. annotateAcrNum.pl 1. rész - a program fő logikája
A fenti program fő logikája a betűk és számok szekvenciáit keresi, amelyek egyszerű kritériumoknak felelnek meg. A módosított "Hello World" kód beszédfelismerési eredményeihez tartozó szövegsorok esetében a program külön betűk és számok tömböket készít. A betűkészletek keresését az akronimkeresés alprogrammal végezzük, amelyet alább tárgyalunk. Vegye figyelembe, hogy a betűkészletek eltolódnak minden egyes rövidítés után, hogy az "i b m x" és "ibm" és "bmx" a sorban található. A számjegyek sorában nem hajtunk végre ilyen eltolódást, hanem hosszú számokat veszünk fel, amelyeket a program megtalál, és keresést végez az interneten.
Listázás 6. annotateAcrNum.pl 2. rész - acronymSearch program
Az acronymSearch szubrutin a hasznos Net :: Dict modult használja. A szótárkiszolgálót és a keresési kérelmet egyszerűen különféle adatbázisokban állítjuk be. A szabályos kifejezés / (wn | vera | gazetteer | foldoc) / korlátozza azoknak az adatbázisoknak a kimenetét, amelyek viszonylag rövid leírást adnak. Talán azt fogja találni, hogy az összesített rövidítéseket jobban képviselik a dict.org webhely egyéb adatbázisaiban - akkor ezt a korlátozást el kell távolítani a szabályos kifejezésből.
Listázás 7. annotateAcrNum.pl 3. rész - phoneNmSearch
Most, a Sphinx-4 beszédfelismerő motorunk és a annotateAcrNum Perl program segítségével elkezdhetjük a párbeszédablakok jelölését. Futtassa a jegyzetfüzetet a $ JAVA_HOME / bin / java -mx312m -jar bin / HelloWorld.jar paranccsal! Perl annotateAcrNum.pl (Linux esetén). Windows esetén a parancs így néz ki: java -mx312m -jar bin / HelloWorld.jar | perl annotateAcrNum.pl.