===== CONTROL POR VOZ =====
\\
Para implementar el reconocimiento por voz en XOne, se debe inicialmente crear un botón para asociar la funcionalidad para iniciar la captura de voz.
\\
La función asociada a este botón deberá contener lo siguiente:
**Métodos de script asociados:**
\\
function doSpeak(sLanguage, strText, waitForAnswer, objSource, objAR) {
let jsParams = {
language : sLanguage, //lenguaje de captura, es, en...
text : strText, // el texto que se dice, es decir, la pregunta que se hace
speechRate : 120, //el tiempo, en milisegundos que espera una respuesta de la pregunta que se le esta haciendo
onCompleted: function() {
if(waitForAnswer==1)
{
objSource.MAP_IMGLISTENING="microRojo.png"; //ejemplo para cambiar icono
ui.refresh("MAP_IMGLISTENING,MAP_BT_OPCION2"); //refrescar
recognizeSpeech(sLanguage,objSource,objAR); //esto es para realizar el reconocimiento de lo que dice el usuario, para capturarlo
}
}
};
ui.speak(jsParams);
}
Esta es la función que es llamada anterior, para capturar las palabras.
function recognizeSpeech(sLanguage,objSource, objAR) {
let jsParams = {
language: sLanguage, //el lenguaje
timeoutAfterSilence: 10000, //tiempo de espera despues de un silencio, para procesar lo que dice el usuario, en milisegundos
onRecognize: function(sText) { //el proceso de reconocimiento.
sText = processText(sText);
if (objSource.MAP_INITAR==1 && objSource.MAP_ARELEMENT!=null && objSource.MAP_ARELEMENT!='' && objAR!== null)
{
let idx=100;
if (objAR.MAP_TITLE0.toUpperCase() == sText )
idx=0;
else
{
if (objAR.MAP_TITLE1.toUpperCase() == sText )
idx=1;
else
{
if (objAR.MAP_TITLE2.toUpperCase() == sText )
idx=2;
}
}
}
else
{
objSource.MAP_TEXT=sText;
ui.refreshValue("MAP_TEXT");
}
},
onError: function(nErrorCode, sError) { //salta si hubo un error
//ui.msgBox("onError():\nError code: " + nErrorCode + "\nMensaje: " + sError, "Desde callback", 0);
//objSource.MAP_IMGLISTENING="microGris.png";
//ui.refresh("MAP_BT_OPCION1");
//nErrorCode==6
objSource.MAP_IMGLISTENING="microGris.png";
ui.refresh("MAP_BT_OPCION2");
var a=1;
},
onPartialResults: function(extras) { //si hay resultados parciales, por si dice una frase
var a=1;
},
onEndOfSpeech: function() // al finalizar el speech
{
objSource.MAP_IMGLISTENING="microGris.png";
ui.refresh("MAP_BT_OPCION2");
}
};
ui.recognizeSpeech(jsParams);
}