Herramientas de usuario

Herramientas del sitio


wiki:2.-desarrollo-app:2.5.-controles-by-xone:control_por_voz:start

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);
}
wiki/2.-desarrollo-app/2.5.-controles-by-xone/control_por_voz/start.txt · Última modificación: 2023/03/23 11:33 por ary