Skip to content

Instantly share code, notes, and snippets.

@chrismedrdz
Created November 2, 2012 17:05
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 7 You must be signed in to fork a gist
  • Save chrismedrdz/4002766 to your computer and use it in GitHub Desktop.
Save chrismedrdz/4002766 to your computer and use it in GitHub Desktop.
Reconocimiento de Voz JAVA
import javax.speech.*;
import javax.speech.recognition.*;
import java.io.FileReader;
import java.util.Locale;
import java.io.*;
public class Programas extends ResultAdapter {
static Recognizer oreja;
String Programa;
public void resultAccepted(ResultEvent e){
try {
Result res = (Result)(e.getSource());
ResultToken tokens[] = res.getBestTokens();
String Frase[]= new String[1];
Frase[0]="";
for (int i=0; i < tokens.length; i++){
Programa = tokens[i].getSpokenText();
Frase[0]+=Programa+" ";
System.out.print(Programa + " ");
}
System.out.println();
if(Programa.equals("Fin")){
oreja.deallocate();
Frase[0]="Hasta la proxima!";
System.out.println(Frase[0]);
System.exit(0);
}
else if(Programa.equals("Facebook")) {
try {
System.out.println("Abriendo Facebook...");
// Se lanza el ejecutable.
Process p=Runtime.getRuntime().exec ("cmd.exe /c start Chrome www.facebook.com");
// Se obtiene el stream de salida del programa
InputStream is = p.getInputStream();
/* Se prepara un bufferedReader para poder leer la salida más comodamente. */
BufferedReader br = new BufferedReader (new InputStreamReader (is));
// Se lee la primera linea
String aux = br.readLine();
while (aux!=null) {
System.out.println (aux);
aux = br.readLine();
}
} catch (Exception es) {
es.printStackTrace();
}
}
else if(Programa.equals("Reproductor")){
try {
System.out.println("Abriendo Windows Media Player...");
// Se lanza el ejecutable.
Process p=Runtime.getRuntime().exec ("cmd.exe /c start wmplayer");
// Se obtiene el stream de salida del programa
InputStream is = p.getInputStream();
/* Se prepara un bufferedReader para poder leer la salida más comodamente. */
BufferedReader br = new BufferedReader (new InputStreamReader (is));
// Se lee la primera linea
String aux = br.readLine();
while (aux!=null) {
System.out.println (aux);
aux = br.readLine();
}
} catch (Exception es) {
es.printStackTrace();
}
}
else if(Programa.equals("Chrome")){
try {
System.out.println("Abriendo Chrome...");
// Se lanza el ejecutable.
Process p=Runtime.getRuntime().exec ("cmd.exe /c start Chrome");
// Se obtiene el stream de salida del programa
InputStream is = p.getInputStream();
/* Se prepara un bufferedReader para poder leer la salida más comodamente. */
BufferedReader br = new BufferedReader (new InputStreamReader (is));
// Se lee la primera linea
String aux = br.readLine();
while (aux!=null) {
System.out.println (aux);
aux = br.readLine();
}
} catch (Exception es) {
es.printStackTrace();
}
}
else if(Programa.equals("Paint")){
try {
System.out.println("Abriendo Paint Brush...");
// Se lanza el ejecutable.
Process p=Runtime.getRuntime().exec ("cmd.exe /c start pbrush");
// Se obtiene el stream de salida del programa
InputStream is = p.getInputStream();
/* Se prepara un bufferedReader para poder leer la salida más comodamente. */
BufferedReader br = new BufferedReader (new InputStreamReader (is));
// Se lee la primera linea
String aux = br.readLine();
while (aux!=null) {
System.out.println (aux);
aux = br.readLine();
}
} catch (Exception es) {
es.printStackTrace();
}
}
else {
getPrograma();
oreja.suspend();
oreja.resume();
}
}catch(Exception ex) {
}
}
public String getPrograma(){
return Programa;
}
}
#JSGF V1.0;
grammar sentence;
public <sentence> =
[<dato0>]
[<dato1>]
[<dato2>]
[<dato3>]
[<dato4>];
<dato0>=Chrome;
<dato1>=Paint;
<dato2>=Facebook;
<dato3>=Reproductor;
<dato4>=Fin;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import javax.speech.*;
import javax.speech.recognition.*;
import java.io.FileReader;
import java.util.Locale;
public class Reconocedor extends JFrame implements ActionListener{
public JButton btn;
public Image fondo;
public ImageIcon MicrophoneIcon;
static Recognizer oreja;
String palabra;
public static void main (String[] args){
Reconocedor Reconocedor = new Reconocedor();
Reconocedor.setVisible(true);
}
public Reconocedor() {
setLayout(null);
setSize(135,155);
setResizable(false);
setLocation(900,100);
setBackground(Color.black);
setDefaultCloseOperation(EXIT_ON_CLOSE);
Inicio();
Image microImage = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("/micro.png"));
MicrophoneIcon = new ImageIcon( microImage );
Cursor cursor = Cursor.getPredefinedCursor(Cursor.HAND_CURSOR);
btn = new JButton(MicrophoneIcon);
btn.setBounds(0,0,130,130);
btn.setFocusable(false); //El botón no atrae el foco
btn.setBorder(null); //Botón sin borde
btn.setBorderPainted(false); //Botón sin borde pintado
btn.setOpaque(false); //Fondo del bóton transparente
btn.setContentAreaFilled(false); //Botón sin relleno
btn.setCursor(cursor); //Establece el cursor para el botón
btn.setFocusPainted(false); //El foco no esta pintado
btn.addActionListener(this); //Añade un ActionListener al botón
add(btn);
}
public void Inicio() {
setVisible(false);
JOptionPane.showMessageDialog(null, " Prepare su Microfono!! ","Bienvenido",JOptionPane.INFORMATION_MESSAGE);
return;
}
public void iniciarRec() {
JOptionPane.showMessageDialog(null, "Pronuncie Aplicacion a Ejecutar");
try{
//Se configura al reconocedor para que entienda el idioma inglés
oreja = Central.createRecognizer(new EngineModeDesc(Locale.ROOT));
oreja.allocate();
FileReader grammar1 =new FileReader("Programas.txt"); //ruta donde esta el archivo con las Frases
RuleGrammar rg = oreja.loadJSGF(grammar1);//Establece la forma en que debe de estar estructurado el archive grammar
rg.setEnabled(true); //accesa al archivo
oreja.addResultListener(new Programas()); //Se hace referencia a la clase de escucha del reconocedor
for(int i=0;i<=23;i++){
System.out.println("");
}
System.out.println("Pronuncia un programa");
oreja.commitChanges();
oreja.requestFocus();
oreja.resume();
} catch (Exception e){
e.printStackTrace();
System.exit(0);
}
return;
}
public void salir() {
JOptionPane.showMessageDialog(null, "GRACIAS POR PROBAR NUESTRO SISTEMA!!");
System.exit(0);
}
public void actionPerformed(ActionEvent event) {
if ( (event.getSource() == btn)) {
//activ = true;
iniciarRec();
return;
}
/*else {
salir();
} */
}//Termina ActionPerformed
}
@redrek
Copy link

redrek commented Apr 29, 2015

necesito un poco de ayuda porfavor

@gioaxel90
Copy link

Que tal, también me puedes facilitar las librerías por favor, mi correo es gioaxel90@hotmail.com de antemano, muchas gracias por la información :)

@vilchisluis
Copy link

Amigo x favor me podrías enviar las librerías de .cloudgarden x favor por que la verdad las busco en Internet y ya no están y la verdad la quiero usar para fines académicos ya que estoy viendo reconocimiento de voz con arduinos y en verdad las ocuparia muchísimo

@vilchisluis
Copy link

por cierto mi correo es vilchis596@gmail.com te lo agradecería mucho amigo

@DevLatBo
Copy link

hola viejo me podrias pasar las librerias que usas por favor, ya no existen en la pagina oficial y no hay donde descargar: a mi correo envia por favovr es urgente oskr.cbba2010@gmail.com

@dfbarrios
Copy link

Amigo, esta publicación es muy útil, gracias. No he podido conseguir las librerías, ¿podrías enviármelas al correo dfbarrios@gmail.com? Por si o por no, gracias bro (Y)

@Eduinlopez
Copy link

necesito esa libreria para un trabajo escolar,, polole4@hotmail.com de antemano muchas gracias

@JesusOC
Copy link

JesusOC commented Nov 10, 2015

podrias compartir las librerias?
josvaldocervantesg@hotmail.com

@kar04
Copy link

kar04 commented Nov 28, 2015

disculpa amigo, me puedes facilitar las librerias? las necesito para mi proyecto universitario, por favor, mi correo es....juan.carrillo.14.s@utzmg.edu.mx

@RuthMoreles
Copy link

podrias apoyarme con las librerias?? gracias
rmorelesv@gmail.com

@paulxxx
Copy link

paulxxx commented Dec 22, 2015

Disculpa que versión del netbeans estas utilizando... ???????????

@IngAlvaro
Copy link

Hermano Si puedes Mandame las Librerias ya que clod garden no está disponible. sin esas librerias no trabaja. alvaroyarjinia@gmail.com

@fakcer
Copy link

fakcer commented Feb 13, 2016

podrias proporcionarme la libreria por favor david_etf_04@hotmail.com

@fakcer
Copy link

fakcer commented Feb 13, 2016

me podrias proporcionar las librerias por favor, de antemano gracias por la info, david_etf_04@hotmail.com

@melissaareq
Copy link

Hola me podrias mandar las librerias por favor y gracias de antemano... melissaarellano12@hotmail.com

@KevinSixtos
Copy link

hola me podrias mandar las librerias muchas gracias por tu aporte de verdad kevin.sixtos@hotmail.com

@jbr-core
Copy link

jbr-core commented May 9, 2016

Disculpen, ya descargue la ultima version de JSapi pero me dan errores 😩
En las clases Reconocedor y Programas

////////////////////////// Reconocedor.java ///////////////////////// me da errores en

 oreja = Central.createRecognizer(new EngineModeDesc(Locale.ROOT));

Central -> en rojo
EngineModeDesc -> en rojo

RuleGrammar rg = oreja.loadJSGF(grammar1);

loadJSGF-> en rojo

rg.setEnabled(true);

setEnabled-> en rojo

oreja.addResultListener(new Programas());

new Programas() -> en rojo

oreja.commitChanges();

commitChanges() ->en rojo

///////////////////////Programas.java/////////////////////////// me da errores en

public class Programas extends ResultAdapter{
///...

}

ResultAdapter -> en rojo No encuentra la clase

Programa = tokens[i].getSpokenText(); 

getSpokenText() -> en rojo
Yo coloco

Programa = tokens[i].getText();

//Pero no se si dara el mismo resultado ya que no he podido realizar pruebas.!

oreja.suspend();

suspend()-> en rojo

/////////////////////////////////////////////////////////////////////////////////
Mas que todo son metodos que no se encuentran.! si ya tienen todo solucionado les agradesco su ayuda y me envien los archivos ->> brachojgbp@gmail.com

@GabrielOlivares
Copy link

Hola, podrías facilitar las librerías por favor? chronolegends1@gmail.com

@rrodriguezg66
Copy link

rrodriguezg66 commented Jun 21, 2016

Hola buenos dias, me podrias hacer el favor de enviarme a mi correo las librerias rrodriguezg66@gmail.com

Gracias

@leandrobruzzi
Copy link

Buen dia, alguien me podria reenviar las librerias por favor? leandrobruzzi@gmail.com
Desde ya muchas gracias, espero su respuesta.

@crubilar
Copy link

crubilar commented Sep 8, 2016

Amigo gracias por el aporte. Me puedes enviar las librerias que faltan por favor.
gracias.

@crubilar
Copy link

crubilar commented Sep 8, 2016

Hola por favor me puedes enviar a mi correo crubilar@videotron.ca las librerias faltantes.
Gracias

@moynext
Copy link

moynext commented Oct 4, 2016

Buenas, podrías mandarme las librerías a mi correo moiseshdezrangel@gmail.com Gracias

@blastendart
Copy link

Hola. Agradecería si me pudiera enviar las librerías, mi correo es jeisonmv_18@yahoo.com

@benji180797
Copy link

hola me podrias mandar ls librerias a este correo muchas gracias benjicc180797@gmail.com

@alexandermayorgav
Copy link

Buenas noches podrias proporcionarme las librerias del cloud garden por favor

@angelmorinigo
Copy link

Alguien ya pudo hacer algun reconocimiento en java.

Copy link

ghost commented Aug 3, 2018

El codigo funciona solo que hay que instalar las librerias correspondientes.

Copy link

ghost commented Aug 3, 2018

Aqui les dejo el Link para descargar las librerias.
1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment