Sphinx-4 šnekos atpažintuvas yra parašytas naudojantis tik Java programavimo kalbą. Atapžintuvo versija buvo kuriame Sphinx grupės kurią sudarė Carnegie Mellon University, Sun Microsystems Laboratories, Mitsubishi Electric Research Labs (MERL) ir Hewlett Packard. Prie darbų prisidėjo University of California at Santa Cruz (UCSC) ir Massachusetts Institute of Technology (MIT).
Sphinx-4 versija buvo pradėta perašant Sphinx-3 į kitą programavimo kalbą. Tačiau vykdant transformaciją buvo įgyvendinti atpažinimo architektūrinio dizaino pakeitimai, kurie leidžia teigti kad naujoji versija yra tinkamesnė tyrimas.
Sphinx-4 veikimas buvo tikrinamas Solaris, Mac OS X, Linux and MS Windows. Sphinx-4 surinkimas ir paleidimas reikalauja papildomos įrangos:
c:\cmushinx\sphinx4\pvz
.c:\cmushinx\sphinx4\pvz\cmusphinx-mavenized-sample-master\sphinx4-hello_world-lt
sukompiliuokite kodą mvn package
.
4231 [INFO] Building jar: /home/as/src/speech/cmusphinx-mavenized-sample/sphinx4-hello_world-lt/target/sphinx4-hello_world-lt-1.0-SNAPSHOT.jar
4258 [INFO] ------------------------------------------------------------------------
4258 [INFO] BUILD SUCCESS
4258 [INFO] ------------------------------------------------------------------------
4260 [INFO] Total time: 2.858s
4260 [INFO] Finished at: Sun Sep 22 20:57:37 EEST 2013
4476 [INFO] Final Memory: 25M/982M
4478 [INFO] ------------------------------------------------------------------------
mvn exec:java -Ddemo
. Jei viskas gerai turėsite matyti kažką panašaus: mvn exec:java -Ddemo
1697 [INFO] Scanning for projects...
1862 [INFO]
1862 [INFO] ------------------------------------------------------------------------
1863 [INFO] Building Shinx - Demo - hello_world module(Lithuanian) 1.0-SNAPSHOT
1863 [INFO] ------------------------------------------------------------------------
1875 [INFO]
1875 [INFO] >>> exec-maven-plugin:1.1:java (default-cli) @ sphinx4-hello_world-lt >>>
1879 [INFO]
1879 [INFO] <<< exec-maven-plugin:1.1:java (default-cli) @ sphinx4-hello_world-lt <<<
1937 [INFO]
1937 [INFO] --- exec-maven-plugin:1.1:java (default-cli) @ sphinx4-hello_world-lt ---
Sakyk: (EIK | VARYK ) [ ( VIENĄ | DU | TRIS | KETURIS | PENKIS ) METRUS ] (PIRMYN | ATGAL) arba (SUK | GRĘŽKIS ) ( KAIRĖN | DEŠINĖN )
Pradėk šnekėti. spausk Ctrl-C nutraukti.
tu sakei: eik pirmyn
Pradėk šnekėti. spausk Ctrl-C nutraukti.
tu sakei: suk kairėn
Pradėk šnekėti. spausk Ctrl-C nutraukti.
^C
import edu.cmu.sphinx.frontend.util.Microphone;
import edu.cmu.sphinx.recognizer.Recognizer;
import edu.cmu.sphinx.result.Result;
import edu.cmu.sphinx.util.props.ConfigurationManager;
/**
* Pavyzdinė klasė
*/
public class RobotoValdymas{
/**
* Pagrindinis metodas kiečiamas OS.
*/
public static void main(String[] args) {
//konfigūracijos tvarkytojas
ConfigurationManager konfiguracija = new ConfigurationManager(RobotoValdymas.class.getResource("lt_robotas.config.xml"));
Recognizer atapzintuvas = (Recognizer) konfiguracija.lookup("recognizer");
atapzintuvas.allocate();
// pradėti įrašą per mikrofoną
Microphone mikrofonas = (Microphone) konfiguracija.lookup("microphone");
mikrofonas.startRecording();
System.out.println("Sakyk: (EIK | VARYK ) [ ( VIENĄ | DU | TRIS | KETURIS | PENKIS ) METRUS ] (PIRMYN | ATGAL) arba (SUK | GRĘŽKIS ) ( KAIRĖN | DEŠINĖN )");
// Sukti amžiną ciklą atpažinimui
while (true) {
System.out.println("Pradėk šnekėti. spausk Ctrl-C nutraukti.\n");
Result rezultatas = atapzintuvas.recognize();
if (rezultatas != null) {
String rezultatoTekstas = rezultatas.getBestFinalResultNoFiller();
System.out.println("tu sakei: " + rezultatoTekstas + '\n');
}
}
}
}