Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 27/08/12, 18:39:23
Array

[xs_avatar]
SXP SXP no está en línea
Usuario poco activo
 
Fecha de registro: ago 2012
Mensajes: 16
Modelo de smartphone: Sony Xperia P
Tu operador: Movistar
Reconocimiento de voz sin interfaz gráfica

Hola a todos!

Vuelvo con otro problema. Estoy intentando añadir reconocimiento de voz a mi aplicación. En un principio cree un Intent con la constante RecognizerIntent.ACTION_RECOGNIZE_SPEECH, y con los métodos starVoiceRecognitionActivity() y onActivityForResult(). Esto funcionaba bien, cuando lo ejecutaba me pedía hablar, detectaba bien las palabras que había dicho y hacía todo lo que le pedía.
Sólo había un problema, aparece una ventana en medio de la pantalla en la que pone "Hable ahora", con un micrófono. Yo quiero el reconocimiento de voz para poder controlar la aplicación, pudiendo ver en todo momento lo que se muestre por pantalla, por lo que esta ventana no me interesa.
En un segundo intento probé con la clase SpeechRecognizer. Este sería el código que tengo actualmente:
---------------------------------------------------------------------------------------------------
SpeechRecongnizer speech = SpeechRecognizer.createSpeechRecognizer(getApplica tionContext());

speech.setRecognitionListener(new RecognitionListener() {

public void onBeginningOfSpeech() {
// TODO Auto-generated method stub


}

public void onBufferReceived(byte[] arg0) {
// TODO Auto-generated method stub

}

public void onEndOfSpeech() {
// TODO Auto-generated method stub

}

public void onError(int arg0) {
// TODO Auto-generated method stub

}

public void onEvent(int arg0, Bundle arg1) {
// TODO Auto-generated method stub

}

public void onPartialResults(Bundle arg0) {
// TODO Auto-generated method stub

}

public void onReadyForSpeech(Bundle arg0) {
// TODO Auto-generated method stub

}

public void onResults(Bundle arg0) {
// TODO Auto-generated method stub

ArrayList<String> resultado = arg0.getStringArrayList(SpeechRecognizer.RESULTS_R ECOGNITION);

final CharSequence[] palabras = new CharSequence[resultado.size()];

for (int k = 0; k < resultado.size(); k++){

palabras[k] = resultado.get(k);

AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Resultados");
alertDialog.setMessage(palabras[k]);
alertDialog.show();

if (palabras[k].equals("siguiente")){

next();
}
else if (palabras[k].equals("atras")){

back();
}
}
}

public void onRmsChanged(float arg0) {
// TODO Auto-generated method stub

}

});


Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
speech.startListening(intent);
------------------------------------------------------------------------------------------------------

Por lo que he leído, con esto sería suficiente, sin embargo al ejecutarlo no hace nada, ni da errores...


¿Alguien ha conseguido utilizar el reconocimiento de voz sin mostrar la ventana que he comentado?

A ver si alguno puede echarme una mano...


Muchas gracias de antemano y un saludo!!
Responder Con Cita


Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android

Herramientas


Hora actual: 09:34:36 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /