===== 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); }