0% encontró este documento útil (0 votos)
25 vistas4 páginas

Reconocimiento de Voz en Java

El documento describe un programa en Java para reconocimiento y síntesis de voz usando la librería Cloud Garden TalkingJava SDK. Explica cómo reconoció el dictado en español aunque la voz era en inglés, y que solo funciona en Windows. También incluye el código de las clases Escucha y Lee que reconocen y reproducen el audio, respectivamente.

Cargado por

John Morillo
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
25 vistas4 páginas

Reconocimiento de Voz en Java

El documento describe un programa en Java para reconocimiento y síntesis de voz usando la librería Cloud Garden TalkingJava SDK. Explica cómo reconoció el dictado en español aunque la voz era en inglés, y que solo funciona en Windows. También incluye el código de las clases Escucha y Lee que reconocen y reproducen el audio, respectivamente.

Cargado por

John Morillo
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Hola a todos, hace un tiempo desarrollé un programa en Java de Reconocimiento y

Sintetización de Voz usando la librería de Cloud Garden TalkingJava SDK with Java
Speech API implementation, la cual es una implementación de JSAPI, la cual es una de
las tantas.

Con dicha librería pude realizar un dictado simple y el programa me lo reconocía sin
problema, además podía realizar la lectura de lo que le dicatba, pero la voz utilizada era una
voz en inglés y lo que yo dictaba era español asi que ya imaginarán como sonaba.

El inconveniente es que solo esta soportada para el Sistema Operativo Windows, además de
estar restringida en cuanto al uso, pues dice FREE (gratuita) para uso individual pero para
alguna insitución o fines comerciales se debe pagar una licencia.

En el ejemplo que desarrollo, cuando digo la palabra “cmop” el programa emite un mensaje
y termina la aplicación, este es un simple ejemplo de comandos por voz usando java.

Para lograr el objetivo emplee un diccionario que cumple con JGSF, el cual es un conjunto
de convenciones para la gramática en el reconocimiento de Voz.

Aquí el codigo de la clase Escucha que es la encargada de Reconocer lo hablado.

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package LE;

/**
*
* @author Cmop
*/
import [Link].*;
import [Link].*;
import [Link];
import [Link];

public class Escucha extends ResultAdapter


{

static Recognizer recognizer;


String gst;

@Override
public void resultAccepted(ResultEvent re)
{
try
{
Result res = (Result)([Link]());
ResultToken tokens[] = [Link]();

String args[]= new String[1];


args[0]="";
for (int i=0; i < [Link]; i++)
{
gst = tokens[i].getSpokenText();
args[0]+=gst+" ";
[Link](gst + " ");
}
[Link]();
if([Link]("cmop"))
{
[Link]();
args[0]="Hasta la proxima Cmop!";
[Link](args[0]);
[Link](args);
[Link](0);
}
else
{
[Link]();
[Link](args);
[Link]();
}
}catch(Exception ex)
{
[Link]("Ha ocurrido algo inesperado " + ex);
}
}

public static void main(String args[])


{
try
{
recognizer = [Link](new EngineModeDesc([Link]));
[Link]();

FileReader grammar1 =new FileReader("c:/[Link]");

RuleGrammar rg = [Link](grammar1);
[Link](true);

[Link](new Escucha());

[Link]("Empieze Dictado");
[Link]();

[Link]();
[Link]();
}catch (Exception e)
{
[Link]("Exception en " + [Link]());
[Link]();
[Link](0);
}
}
}
Y aquí el codigo de la Clase que Lee.

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package LE;

/**
*
* @author Cmop
*/
import [Link].*;
import [Link].*;
import [Link].*;

public class Lee {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
try {

String say=args[0];

SynthesizerModeDesc required = new SynthesizerModeDesc();


[Link]([Link]);

Voice voice=new Voice(null, Voice.GENDER_FEMALE, Voice.GENDER_FEMALE,


null);

[Link](voice);

Synthesizer synth = [Link](null);

[Link]();
[Link]();

[Link](say,null);

[Link](Synthesizer.QUEUE_EMPTY);
[Link]();

} catch (Exception e) {
[Link]();
}
}
}

Además incluyo el diccionario que empleé.

#JSGF V1.0;
grammar sentence;
public <sentence> =
[<dato0>]
[<dato1>]
[<dato2>]
[<dato3>]
[<dato4>]
[<dato1><dato2><dato3><dato4>]
[<dato5>][<dato6>][<dato7>][<dato8>][<dato9>][<dato10>][<dato11>][<dato12
>][<dato13>][<dato14>]
[<dato15>];

<dato0>=Metodologia de la Investigacion Cientifica;


<dato1>=Java;
<dato2>=Programacion;
<dato3>=Orientada;
<dato4>=Objetos;
<dato5>=cmop;
<dato6>=Clases;
<dato7>=Horario;
<dato8>=Canario;
<dato9>=Radio;
<dato10>=Television;
<dato11>=Ingenieria;
<dato12>=Industrial;
<dato13>=Informatica;
<dato14>=Comida;
<dato15>=1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 ;

Java,Reconocimiento y Sintetización de Voz con Cloud


Garden TalkingJava SDK with Java Speech
API implementation

También podría gustarte