Ejercicio: Configuración del reconocimiento de la intención y del lenguaje natural

Completado

En este módulo, explorará el reconocimiento de intenciones del servicio de voz de Azure. El reconocimiento de la intención permite dotar a la aplicación de comandos de voz con tecnología de inteligencia artificial. Así, aunque los usuarios digan comandos de voz no específicos, el sistema entiende su intención.

Preparación de la escena

  1. En la ventana Jerarquía, seleccione el objeto Lunarcom y, luego, en la ventana Inspector, use el botón Agregar componente para agregar el componente Lunarcom Intent Recognizer (script) al objeto Lunarcom.

    Screenshot of adding the Lunarcom Intent Recognizer (Script) component.

  2. En la ventana Proyecto, vaya a la carpeta Recursos>MRTK.Tutorials.GettingStarted>Objetos prefabricados>RocketLauncher, arrastre el objeto prefabricado RocketLauncher_Complete a la ventana Jerarquía y colóquelo en una ubicación adecuada delante de la cámara. Por ejemplo:

    • Transforme el valor de Posición X = 0, Y = 1, Z = 1.5
    • Transforma el valor de Rotation (Giro) X = 0, Y = 90, Z = 0

    Screenshot of adding the RocketLauncher_Complete prefab.

  3. En la ventana Jerarquía, vuelva a seleccionar el objeto Lunarcom, expanda el objeto RocketLauncher_Complete>Botones y asigne cada uno de los objetos secundarios del objeto Botones al campo Botones del lanzacohetes lunar correspondiente.

    Screenshot of assigning each of the buttons.

Creación del recurso del servicio de lenguaje de Azure

En esta sección, creará un recurso de servicio de lenguaje de Azure para la aplicación Conversational Language Understanding (CLU) que creará en la sección siguiente.

  1. Inicie sesión en Azure Portal, seleccione Crear un recurso y busque y seleccione Language Service:

    Screenshot of the Azure language service resource.

  2. Seleccione el botón Crear para crear una instancia de este servicio:

    Screenshot of creating an instance of this service.

  3. En la página Crear lenguaje, escriba los siguientes valores:

    • En Suscripción, seleccione Evaluación gratuita si tiene una suscripción de prueba. Si no tiene una suscripción de prueba, seleccione una de las otras suscripciones.
    • En el grupo de recursos, seleccione el vínculo Crear nuevo y escriba un nombre adecuado, como MRTK-Tutorials. Seleccione Aceptar.

    Screenshot of the Create Language screen.

    Sugerencia

    Si ya tiene otro grupo de recursos adecuado en su cuenta de Azure, puede usarlo, en lugar de crear otro.

  4. Mientras sigues en la página Crear, escribe los valores siguientes:

    • En Nombre, escriba un nombre adecuado para el servicio, como MRTK-Tutorials-AzureSpeechServices.
    • En Región, elija una ubicación cercana a la ubicación física de los usuarios de la aplicación; por ejemplo, Este de EE. UU
    • En Plan de tarifa, en este tutorial, seleccione F0 (5000 transacciones por 30 días)

    Screenshot of the configured Create Language form.

  5. A continuación, seleccione Revisar y crear, examine los detalles y seleccione el botón Crear en la parte inferior de la página para crear el recurso (y el grupo de recursos nuevo si configuró que se creara):

    Screenshot of the Review + Create screen.

  6. Una vez completado el proceso de creación de recursos, se mostrará el mensaje Implementación completada:

    Screenshot of the Overview screen.

Creación de la aplicación Conversational Language Understanding (CLU)

En esta sección, va a crear una aplicación CLU, a configurar y entrenar su modelo de predicción y a conectarlo al recurso de lenguaje de Azure que creó en el paso anterior.

En concreto, creará una intención para que, si el usuario dice que se debe realizar una acción, la aplicación desencadene el evento PressableButton.OnClicked() en uno de los tres botones azules de la escena, en función del botón al que haga referencia el usuario.

Por ejemplo, si el usuario dice Continuar y lanzar el cohete, la aplicación predice que Continuar significa que se debe realizar alguna acción y que el evento PressableButton.OnClicked() que será el destino está en el botón de inicio.

Los principales pasos que debes seguir para lograrlo son:

  1. Creación de una aplicación CLU
  2. Crear intenciones
  3. Crear expresiones de ejemplo
  4. Crear entidades
  5. Asignar entidades a las expresiones de ejemplo
  6. Entrenar, probar y publicar la aplicación

1. Cree una aplicación CLU

Con la misma cuenta de usuario que ha usado para crear el recurso de Azure en la sección anterior, inicie sesión en Language Studio.

  1. Una vez que haya iniciado sesión, se le pedirá que seleccione un recurso de Azure. Seleccione los valores que usó al crear el recurso Azure Language Service y seleccione Listo.

    Screenshot showing the Select an Azure resource popup.

  2. Tras conectar el recurso de Azure, seleccione Crear nuevo > Reconocimiento del lenguaje conversacional y escriba los siguientes valores en la ventana emergente Crear un proyecto:

    • En Nombre, escriba un nombre adecuado, como MRTK-Tutorials-AzureSpeechServices. Anote el nombre que ha seleccionado; lo necesitará más adelante en el tutorial.
    • En Idioma principal de expresiones, seleccione un idioma.
    • En Descripción, puede escribir, si lo desea, una descripción adecuada.

    Screenshot of the Create a project popup.

  3. Seleccione Siguiente para revisar la configuración del proyecto. Seleccione Crear para crear el proyecto.

    Screenshot of the Review and finish screen.

  4. Una vez que se haya creado la nueva aplicación, se le dirige a la página Definición de esquema de la aplicación.

    Screenshot of the App's dashboard page.

2. Crear intenciones

  1. En la página Definición de esquema, seleccione Agregar y escriba el siguiente valor en la ventana emergente Agregar una intención:

    • En Nombre de la intención, escribe PressButton.
  2. Seleccione Agregar intención para crear la intención:

    Screenshot of the Add an intent screen.

    Precaución

    Para este tutorial, el proyecto de Unity hará referencia a esta intención por su nombre (PressButton). Es muy importante que asigne exactamente el mismo nombre a la intención.

  3. Cuando se haya creado la nueva intención, se le redirigirá a la página Definición de esquema. La intención PressButton se mostrará en la lista de intenciones.

    Screenshot of the list of Intents.

3. Crear expresiones de ejemplo

  1. En la barra lateral izquierda, seleccione el botón Etiquetado de datos. En la pantalla Etiquetado de datos, seleccione PressButton en la lista desplegable Seleccionar intención.

    Screenshot of the Data labeling page.

  2. En la lista Expresiones de la intención PressButton, agregue las siguientes expresiones de ejemplo:

    • activate launch sequence (activar secuencia de lanzamiento)
    • show me a placement hint (mostrar sugerencia de selección de ubicación)
    • initiate the launch sequence (iniciar secuencia de lanzamiento)
    • press placement hints button (presionar botón de sugerencias)
    • give me a hint (proporcionar sugerencia)
    • push the launch button (presionar botón de lanzamiento)
    • i need a hint (necesito una sugerencia)
    • press the reset button (presionar botón de restablecimiento)
    • time to reset the experience (hora de restablecer la experiencia)
    • go ahead and launch the rocket (adelante, lanza el cohete)
  3. Cuando haya agregado todas las expresiones de ejemplo, así debería ser la página Etiquetado de datos:

    Screenshot of the updated Data labeling page.

    Precaución

    Para este tutorial, el proyecto de Unity hará referencia a las palabras "hint" (sugerencia), "hints" (sugerencias), "reset" (restablecimiento) y "launch" (lanzar). Es muy importante que las escriba exactamente igual en todas las instancias.

4. Crear entidades

  1. Mientras se encuentra en la página Etiquetado de datos, seleccione Agregar entidad en el panel Actividad de la derecha y escriba los valores siguientes en la ventana emergente Agregar una entidad:

    • En Nombre de entidad, escribe Action.
  2. Seleccione Agregar entidad para crear la nueva entidad.

    Screenshot of adding a new entity.

  3. Repita el paso anterior para crear otra entidad denominada Destino. De este modo, tendrá dos entidades denominadas Acción y Destino.

    Screenshot of creating a target entity.

    Precaución

    Para este tutorial, el proyecto de Unity hará referencia a estas entidades por sus nombres, Action y Target. Es muy importante que asigne el mismo nombre a las entidades.

5. Asignar entidades a las expresiones de ejemplo

  1. Seleccione la palabra go, luego, la palabra ahead y, después, seleccione Acción (simple) en el menú emergente contextual para etiquetar go ahead (continuar) como valor de la entidad Acción.

    Screenshot of labeling go ahead as an action entity value.

  2. Ahora, la frase go ahead está definida como un valor de la entidad Action. Ya hay un valor de la entidad Acción bajo las palabras "go ahead".

    Screenshot of the added action entity value.

    Nota:

    La línea roja que se ve debajo de la etiqueta de la imagen indica que no se predijo el valor de la entidad. Esto se resolverá en la siguiente sección, cuando entrene el modelo.

  3. A continuación, seleccione la palabra launch (lanzar) y seleccione Destino en el menú emergente contextual para etiquetar launch como valor de la entidad Destino.

    Screenshot of selecting the word launch.

  4. Ahora, la palabra launch está definida como valor de la entidad Target. Ya hay un valor de la entidad Destino bajo la palabra "launch" (iniciar).

    Screenshot of the added Target entity value under the word launch.

  5. La expresión de ejemplo de la intención PressButton go ahead and launch the rocket ahora está configurada para que se prediga de esta manera:

    • Intención: PressButton
    • Entidad Action: go ahead
    • Entidad Target: launch
  6. Repita el proceso anterior para asignar una acción y una etiqueta de entidad de destino a cada una de las expresiones de ejemplo. Recuerde que las palabras siguientes se deben etiquetar como entidades de destino:

    • hint (destinada a HintsButton en el proyecto de Unity)
    • hints (destinada a HintsButton en el proyecto de Unity)
    • reset (destinada a ResetButton en el proyecto de Unity)
    • launch (destinada a LaunchButton en el proyecto de Unity)
  7. Seleccione Guardar cambios. Cuando haya etiquetado todas las expresiones de ejemplo, así debería ser la página de intención PressButton:

    Screenshot of the PressButton intent page with all example utterances labeled.

6. Entrenar, probar y publicar la aplicación

  1. Para entrenar la aplicación, seleccione el botón Entrenar de la barra lateral izquierda. Debería ver la página Trabajos de entrenamiento.

    Screenshot of the Training jobs screen.

  2. Seleccione Iniciar un trabajo de entrenamiento, y seleccione los valores siguientes:

    • Seleccione Entrenar un nuevo modelo y escriba un nombre adecuado, como MRTK-Tutorials-AzureSpeechServices.
    • Seleccione Entrenamiento estándar.
    • Seleccione Dividir automáticamente el conjunto de pruebas de los datos de entrenamiento.
  3. Seleccione Entrenar para iniciar el proceso de entrenamiento. Cuando finalice el procesamiento del entrenamiento, verá la notificación Entrenamiento finalizado.

    Screenshot of Finished training notification.

  4. Para examinar los resultados del entrenamiento, seleccione el modelo de salida en la pantalla Trabajos de entrenamiento y, después, seleccione la pestaña Rendimiento del modelo.

    Screenshot of the Model performance screen.

  5. Para implementar la aplicación, seleccione el botón Implementar un modelo en la barra lateral izquierda. Debería ver la página Implementar un modelo.

    Screenshot of the Deploying a model page.

  6. Seleccione Agregar implementación y escriba los valores siguientes en el menú emergente Agregar implementación:

    • Seleccione Crear un nuevo nombre de implementación y escriba un nombre adecuado. Anote el nombre que ha seleccionado; lo necesitará más adelante en el tutorial.
    • Seleccione el modelo que ha creado anteriormente en la lista desplegable Seleccionar un modelo entrenado.
  7. Seleccione Implementary espere a que se complete el proceso de publicación.

    Screenshot of the Deployment completed notification.

  8. Seleccione la nueva implementación y seleccione el botón Obtener dirección URL de predicción.

    Screenshot of the Get Prediction URL page.

Conexión del proyecto de Unity a la aplicación CLU

  1. En el menú emergente Obtener dirección URL de predicción, seleccione el icono Copiar para copiar la dirección URL de predicción.

    Screenshot of Get Prediction URL popup.

  2. De nuevo en el proyecto de Unity, en la ventana Jerarquía, seleccione el objeto Lunarcom y, después, en la ventana Inspector, busque el componente Lunarcom Intent Recognizer (script) y configúrelo como se indica a continuación.

    • En el campo Punto de conexión de CLU, pase la dirección URL de predicción que ha copiado en el paso anterior.
    • En el campo Nombre del proyecto de CLU, pase el nombre del proyecto que ha anotado al crear una aplicación CLU.
    • En el campo Implementación de CLU, pase el Nombre de implementación que ha anotado al crear una nueva implementación.
    • En el campo Clave de API de servicio de lenguaje, pase la clave de API (Key1 o Key2) a su servicio de lenguaje. Para encontrarlo en Azure Portal, seleccione el servicio de lenguaje y, después, seleccione Claves y punto de conexión en el menú de la izquierda.

    Screenshot of passing the example query you copied.

Probar el reconocimiento de la intención

  1. Para usar el reconocimiento de la intención directamente en el editor de Unity, debes permitir que el equipo de desarrollo use el dictado. Para comprobar esta configuración, abra la configuración de Windows, elija Privacidad>Voz y asegúrese de que la opción Reconocimiento de voz en línea está activada.

    Screenshot of Testing the intent recognition.

  2. Para probar el reconocimiento de intención si entra en modo de juego, presione primero el botón del cohete. Después, cuando diga la primera expresión de ejemplo, go ahead and launch the rocket (adelante, lanza el cohete), verá el lanzamiento al espacio de LunarModule.

    Screenshot of Enter the game mode.

  3. Pruebe todas las expresiones de ejemplo, algunas variaciones de las expresiones de ejemplo y algunas expresiones aleatorias.