Desarrollo de aplicaciones de Comandos personalizados

Importante

Comandos personalizados se retirará el 30 de abril de 2026. Desde el 30 de octubre de 2023 no se puede crear nuevas aplicaciones de Comandos personalizados en Speech Studio. En relación con este cambio, LUIS se retirará el 1 de octubre de 2025. Desde el 1 de abril de 2023, no se pueden crear nuevos recursos de LUIS.

En este artículo de procedimientos, aprenderá a desarrollar y configurar aplicaciones de Comandos personalizados. La característica Comandos personalizados ayuda a la creación de aplicaciones de comandos de voz enriquecidas y optimizadas para las experiencias de interacción que priorizan la voz. La característica es más adecuada para escenarios de realización de tareas o de comando y control. Es adecuada para los dispositivos de Internet de las cosas (IoT) y para dispositivos ambientales y desatendidos.

En este artículo, creará una aplicación que puede encender y apagar un televisor, establecer la temperatura y establecer una alarma. Después de crear estos comandos básicos, obtendrá información sobre las siguientes opciones para personalizar comandos:

  • Adición de parámetros a comandos
  • Adición de configuraciones a parámetros de comandos
  • Creación de reglas de interacción
  • Creación de plantillas de generación de idioma para respuestas de voz
  • Uso de herramientas de voces personalizadas

Creación de una aplicación mediante comandos simples

Empiece por crear una aplicación de Comandos personalizados vacía. Para obtener más información, consulte la guía de inicio rápido. En esta aplicación, en lugar de importar un proyecto, se crea un proyecto en blanco.

  1. En el cuadro Nombre, escriba el nombre del proyecto Smart-Room-Lite (u otro nombre de su elección).

  2. En la lista Idioma, seleccione Inglés (Estados Unidos) .

  3. Seleccione o cree un recurso de LUIS.

    Screenshot showing the

Actualización de recursos de LUIS (opcional)

Puede actualizar el recurso de creación que seleccionó en la ventana Nuevo proyecto. También puede establecer un recurso de predicción.

Se usa un recurso de predicción para el reconocimiento cuando se publica la aplicación de Comandos personalizados. No necesita un recurso de predicción durante las fases de desarrollo y pruebas.

Adición de un comando TurnOn

En la aplicación de Comandos personalizados Smart-Room-Lite vacía que creó, agregue un comando. El comando procesa una expresión, Turn on the tv. Responde con el mensaje Ok, turning the tv on.

  1. Cree un nuevo comando; para ello, seleccione Nuevo comando en la parte superior del panel izquierdo. Se abre la ventana Nuevo comando.
  2. En el campo Nombre, especifique el valor TurnOn.
  3. Seleccione Crear.

En el panel central se muestran las propiedades del comando.

En la siguiente tabla se explican las propiedades de configuración del comando. Para más información, vea Conceptos y definiciones de Comandos personalizados.

Configuración Descripción
Oraciones de ejemplo Expresiones de ejemplo que el usuario puede decir para desencadenar este comando.
Parámetros Información necesaria para completar el comando.
Reglas de finalización Acciones que se van a realizar para finalizar el comando. Ejemplos: responder al usuario o comunicarse con un servicio web.
Reglas de interacción Otras reglas para controlar situaciones más específicas o complejas.

Screenshot showing where to create a command.

Adición de oraciones de ejemplo

En la sección Oraciones de ejemplo, se especifica un ejemplo de lo que el usuario puede decir.

  1. En el panel central, seleccione Example sentences (Oraciones de ejemplo).

  2. En el panel de la derecha, agregue ejemplos:

    Turn on the tv
    
  3. En la parte superior del panel, seleccione Guardar.

Aún no hay ningún parámetro, por lo que puede ir a la sección Completion rules (Reglas de finalización).

Adición de una regla de finalización

A continuación, el comando necesita una regla de finalización. Esta regla informa al usuario que se está llevando a cabo una acción de cumplimiento.

Para obtener más información sobre las reglas y las reglas de finalización, vea Conceptos y definiciones de Comandos personalizados.

  1. Seleccione la regla de finalización predeterminada Listo. Edítela de la manera siguiente:

    Configuración Valor sugerido Description
    Nombre ConfirmationResponse Nombre que describe el propósito de la regla.
    Condiciones None Condiciones que determinan cuándo se puede ejecutar la regla.
    Acciones Send speech response (Enviar respuesta de voz)>Simple editor (Editor sencillo)>Ok, turning the tv on Acción que se realizará cuando la condición de la regla sea true.

    Screenshot showing where to create a speech response.

  2. Seleccione Guardar para guardar la acción.

  3. De nuevo en la sección Completion rules (reglas de finalización), seleccione Guardar para guardar todos los cambios.

    Nota

    No tiene que usar la regla de finalización predeterminada que viene con el comando. Puede eliminar la regla de finalización predeterminada y agregar su propia regla.

Adición de un comando SetTemperature

Ahora, agregue un comando más, SetTemperature. Este comando toma una sola expresión (Set the temperature to 40 degrees) y responde con el mensaje Ok, setting temperature to 40 degrees.

Para crear el nuevo comando, siga los pasos que usó para el comando TurnOn, pero use la oración de ejemplo Set the temperature to 40 degrees.

A continuación, edite las reglas de finalización de Listo de la siguiente manera:

Configuración Valor sugerido
Nombre ConfirmationResponse
Condiciones None
Acciones Send speech response (Enviar respuesta de voz)>Simple editor (Editor sencillo)>First variation (Primera variación)>Ok, setting temperature to 40 degrees

Seleccione Guardar para guardar todos los cambios del comando.

Adición de un comando SetAlarm

Cree un comando SetAlarm nuevo. Use la oración de ejemplo Set an alarm for 9 am tomorrow. A continuación, edite las reglas de finalización de Listo de la siguiente manera:

Configuración Valor sugerido
Nombre ConfirmationResponse
Condiciones None
Acciones Send speech response (Enviar respuesta de voz)>Simple editor (Editor sencillo)>First variation (Primera variación)>Ok, setting an alarm for 9 am tomorrow

Seleccione Guardar para guardar todos los cambios del comando.

Prueba

Use el panel de prueba para probar el comportamiento de la aplicación:

  1. En la esquina superior derecha, seleccione el icono Entrenar.
  2. Cuando finalice el entrenamiento, seleccione Probar.

Pruebe los siguientes ejemplos de expresiones mediante el uso de voz o texto:

  • Escriba: set the temperature to 40 degrees (establece la temperatura en 40 grados)
  • La respuesta esperada: Ok, setting temperature to 40 degrees (de acuerdo, definiré la temperatura en 40 grados)
  • Si escribe: turn on the tv (enciende el televisor)
  • Respuesta esperada: De acuerdo, encendiendo el televisor
  • Escriba: set an alarm for 9 am tomorrow (establece una alarma para mañana a las 9 de la mañana)
  • La respuesta esperada: Ok, setting an alarm for 9 am tomorrow (de acuerdo, estableceré una alarma para mañana a las 9:00)

Screenshot showing the test in a web-chat interface.

Sugerencia

En el panel de pruebas, puede seleccionar Turn details (Activar detalles) para obtener información sobre cómo se procesó esta entrada de voz/texto.

Adición de parámetros a comandos

En esta sección, obtendrá información sobre cómo agregar parámetros a los comandos. Los comandos requieren parámetros para completar una tarea. En los escenarios complejos, los parámetros se pueden usar para definir las condiciones que desencadenan acciones personalizadas.

Configuración de parámetros para un comando TurnOn

Empiece por editar el comando TurnOn existente para activar y desactivar varios dispositivos.

  1. Ahora que el comando controla los escenarios de encendido y apagado, cambie el nombre del comando a TurnOnOff.

    1. En el panel de la izquierda, seleccione el comando TurnOn. Luego, junto a Nuevo comando en la parte superior del panel, seleccione el botón de edición.

    2. En la ventana Rename command (Cambiar nombre del comando), cambie el nombre a TurOnOff.

  2. Agregue un parámetro nuevo al comando. El parámetro representa si el usuario quiere encender o apagar el dispositivo.

    1. En la parte superior del panel, seleccione Agregar. En el menú desplegable, seleccione Parámetro.

    2. En el panel de la derecha, en la sección Parámetros, en el cuadro Nombre, agregue OnOff.

    3. Seleccione Requerido. En la ventana Add response for a required parameter (Agregar respuesta para un parámetro requerido), seleccione Simple editor (Editor sencillo). En el campo Primera variación, agregue Encender o apagar.

    4. Selecciona Actualización.

      Screenshot that shows the 'Add response for a required parameter' section with the 'Simple editor' tab selected.

    5. Configure las propiedades del parámetro mediante la tabla siguiente. Para obtener información sobre todas las propiedades de configuración de un comando, vea Conceptos y definiciones de Comandos personalizados.

      Configuración Valor sugerido Description
      Nombre OnOff Nombre descriptivo del parámetro.
      Obligatorio Seleccionado Casilla que indica si es obligatorio especificar un valor para este parámetro antes de finalice el comando.
      Respuesta para el parámetro requerido Simple editor (Editor sencillo)>On or Off? Mensaje que pregunta el valor de este parámetro cuando no se conoce.
      Tipo String Tipo de parámetro; por ejemplo, Number, String, Date Time o Geography.
      Configuración Accept predefined input values from internal catalog (Aceptar valores de entrada predefinidos del catálogo interno) En el caso de las cadenas, esta configuración limita las entradas a un conjunto de valores posibles.
      Predefined input values (Valores de entrada predefinidos) on, off Conjunto de valores posibles y sus alias.
    6. Para agregar valores de entrada predefinidos, seleccione agregar unde entrada predefinido. En ventana Nuevo elemento, escriba Nombre como se muestra en la tabla anterior. En este caso, no usa alias, por lo que puede dejar este campo en blanco.

      Screenshot showing how to create a parameter.

    7. Seleccione Guardar para guardar todas las configuraciones del parámetro.

Adición de un parámetro SubjectDevice

  1. Para agregar un segundo parámetro que represente el nombre de los dispositivos que se podrán controlar con este comando, seleccione Agregar. Use la configuración siguiente.

    Configuración Valor sugerido
    Nombre SubjectDevice
    Obligatorio Seleccionado
    Respuesta para el parámetro requerido Simple editor (Editor sencillo)>Which device do you want to control?
    Tipo String
    Configuración Accept predefined input values from internal catalog (Aceptar valores de entrada predefinidos del catálogo interno)
    Predefined input values (Valores de entrada predefinidos) tv, fan
    Alias (tv) television, telly
  2. Seleccione Guardar.

Modificación de oraciones de ejemplo

Para los comandos que usan parámetros, resulta útil agregar oraciones de ejemplo que cubran todas las combinaciones posibles. Por ejemplo:

  • Información completa del parámetro: turn {OnOff} the {SubjectDevice}
  • Información parcial del parámetro: turn it {OnOff}.
  • Sin información del parámetro: turn something.

Las oraciones de ejemplo que usan diferentes grados de información permiten que la aplicación de Comandos personalizados resuelva las resoluciones individuales y las resoluciones de varias activaciones y desactivaciones mediante información parcial.

Teniendo en cuenta esta información, edite las oraciones de ejemplo para usar estos parámetros sugeridos:

turn {OnOff} the {SubjectDevice}
{SubjectDevice} {OnOff}
turn it {OnOff}
turn something {OnOff}
turn something

Seleccione Guardar.

Sugerencia

En el editor de oraciones de ejemplo, use llaves para hacer referencia a los parámetros. Por ejemplo, turn {OnOff} the {SubjectDevice}. Use una tabulación para la finalización automática respaldada por parámetros creados previamente.

Modificación de reglas de finalización para incluir parámetros

Modifique la regla de finalización existente ConfirmationResponse.

  1. En la sección Conditions (Condiciones), seleccione Add a condition (Agregar una condición).

  2. En la ventana New Condition (Nueva condición), en la lista Type (Tipo), seleccione Required parameters (Parámetros requeridos). En la lista siguiente, seleccione OnOff y SubjectDevice.

  3. Seleccione Crear.

  4. En la sección Acciones, edite la acción Send speech response (Enviar respuesta de voz) existente. Para ello, mantenga el puntero sobre ella y seleccione el botón de edición. Esta vez, use los parámetros OnOff y SubjectDevice creados recientemente:

    Ok, turning the {SubjectDevice} {OnOff}
    
  5. Seleccione Guardar.

Para probar los cambios, seleccione el icono Entrenar en la parte superior del panel de la derecha.

Cuando finalice el entrenamiento, seleccione Probar. Aparece una ventana Test your application (Probar la aplicación). Pruebe las siguientes interacciones:

  • Entrada: Turn off the tv (apaga el televisor)
  • Salida: Ok, turning on the TV (de acuerdo, encenderé el televisor)
  • Entrada: turn off the television (apaga el televisor)
  • Salida: Ok, turning on the TV (de acuerdo, encenderé el televisor)
  • Entrada: turn it off (apágalo)
  • Salida: Which device do you want to control? (¿Qué dispositivo quiere controlar?)
  • Entrada: the tv (el televisor)
  • Salida: Ok, turning on the TV (de acuerdo, encenderé el televisor)

Configuración de parámetros para un comando SetTemperature

Modifique el comando SetTemperature para que pueda establecer la temperatura según las indicaciones del usuario.

Agregue un parámetro TemperatureValue. Use la configuración siguiente:

Configuración Valor sugerido
Nombre TemperatureValue
Obligatorio Seleccionado
Respuesta para el parámetro requerido Simple editor (Editor sencillo)>What temperature would you like?
Type Number

Edite las expresiones de ejemplo para usar los siguientes valores.

set the temperature to {TemperatureValue} degrees
change the temperature to {TemperatureValue}
set the temperature
change the temperature

Edite las reglas de finalización existentes. Use la configuración siguiente.

Configuración Valor sugerido
Condiciones Parámetro obligatorio>TemperatureValue
Acciones Send speech response (Enviar respuesta de voz)>Ok, setting temperature to {TemperatureValue} degrees

Configuración de parámetros para un comando SetAlarm

Agregue un parámetro llamado DateTime. Use la configuración siguiente.

Configuración Valor sugerido
Nombre DateTime
Obligatorio Seleccionado
Respuesta para el parámetro requerido Simple editor (Editor sencillo)>For what time?
Tipo DateTime
Valores predeterminados de fecha Si falta la fecha, use la fecha de hoy.
Valores predeterminados de hora Si falta la hora, use el inicio del día.

Nota

En este artículo se usan principalmente los tipos de parámetro String, Number y DateTime. Para obtener una lista de todos los tipos de parámetro admitidos y sus propiedades, vea Conceptos y definiciones de Comandos personalizados.

Edite las expresiones de ejemplo. Use los valores siguientes.

set an alarm for {DateTime}
set alarm {DateTime}
alarm for {DateTime}

Edite las reglas de finalización existentes. Use la configuración siguiente.

Configuración Valor sugerido
Acciones Send speech response (Enviar respuesta de voz)>Ok, alarm set for {DateTime}

Pruebe los tres comandos juntos mediante expresiones relacionadas con distintos comandos. (Puede cambiar entre los distintos comandos).

  • Entrada: Set an alarm (Establece una alarma)
  • Salida: For what time? (¿A qué hora?)
  • Entrada: Turn on the tv (Enciende el televisor)
  • Salida: De acuerdo, encenderé el televisor
  • Entrada: Set an alarm (Establece una alarma)
  • Salida: For what time? (¿A qué hora?)
  • Entrada: 5 pm
  • Salida: De acuerdo, alarma establecida para el 2020-05-01 17:00:00

Adición de configuraciones a parámetros de comandos

En esta sección, obtendrá más información sobre la configuración avanzada de parámetros, incluido lo siguiente:

  • Cómo los valores de parámetro pueden pertenecer a un conjunto definido fuera de la aplicación de Comandos personalizados.
  • Cómo agregar cláusulas de validación según los valores de los parámetros.

Configuración de un parámetro como entidad de catálogo externa

La característica de Comandos personalizados permite configurar parámetros de tipo cadena para hacer referencia a los catálogos externos hospedados a través de un punto de conexión web. Esto le permite actualizar el catálogo externo de forma independiente sin editar la aplicación de Comandos personalizados. Este enfoque resulta útil en los casos en los que las entradas de catálogo son numerosas.

Vuelva a usar el parámetro SubjectDevice del comando TurnOnOff. La configuración actual de este parámetro es Accept predefined inputs from internal catalog (aceptar valores de entrada predefinidos del catálogo interno). Esta configuración se refiere a una lista estática de dispositivos de la configuración de parámetros. Traslade este contenido a un origen de datos externo que se pueda actualizar de forma independiente.

Para mover el contenido, empiece por agregar un nuevo punto de conexión web. En el panel de la izquierda, vaya a la sección Puntos de conexión web. Agregar una nueva URL de punto de conexión web. Use la configuración siguiente.

Configuración Valor sugerido
Nombre getDevices
URL <Your endpoint of getDevices.json>
Método GET

A continuación, configure y hospede un punto de conexión web que devuelva un archivo JSON que enumere los dispositivos que se pueden controlar. El punto de conexión web debe devolver un archivo JSON con el formato de este ejemplo:

{
    "fan" : [],
    "refrigerator" : [
        "fridge"
    ],
    "lights" : [
        "bulb",
        "bulbs",
        "light",
        "light bulb"
    ],
    "tv" : [
        "telly",
        "television"
        ]
}

A continuación, vaya a la página de configuración del parámetro SubjectDevice. Configure las siguientes propiedades.

Configuración Valor sugerido
Configuración Aceptar entradas predefinidas del catálogo externo
Punto de conexión del catálogo getDevices
Método GET

Después, seleccione Guardar.

Importante

No verá la opción para configurar un parámetro que acepte entradas de un catálogo externo, a menos que el punto de conexión web esté configurado en la sección Punto de conexión web del panel de la izquierda.

Pruébelo seleccionando Entrenar. Después de que finalice el entrenamiento, seleccione Probar y pruebe algunas interacciones.

  • Entrada: turn on (enciende)
  • Salida: Which device do you want to control? (¿Qué dispositivo quiere controlar?)
  • Entrada: lights (luces)
  • Salida: De acuerdo, apagaré las luces

Nota

Ahora puede controlar todos los dispositivos hospedados en el punto de conexión web. Pero aún debe entrenar la aplicación para probar los cambios nuevos y luego volver a publicar la aplicación.

Adición de validación a los parámetros

Las validaciones son construcciones que se aplican a determinados tipos de parámetro y permiten configurar restricciones para el valor del parámetro. Le solicitan correcciones si los valores no se encuentran dentro de las restricciones. Para obtener una lista de tipos de parámetro que extienden la construcción de validación, vea Conceptos y definiciones de Comandos personalizados.

Pruebe las validaciones mediante el comando SetTemperature. Use los siguientes pasos para agregar una validación al parámetro Temperature.

  1. En el panel de la izquierda, seleccione el comando SetTemperature.

  2. En el panel central, seleccione Temperatura.

  3. En el panel de la derecha, seleccione Add a validation (Agregar una validación).

  4. En la ventana New validation (Nueva validación), configure la validación tal como se muestra en la tabla siguiente Seleccione Crear.

    Configuración de parámetros Valor sugerido Descripción
    Valor mínimo 60 En el caso de los parámetros numéricos, el valor mínimo que puede asumir este parámetro
    Valor máximo 80 En el caso de los parámetros numéricos, el valor máximo que puede asumir este parámetro
    Error de respuesta Simple editor (Editor sencillo)>First variation (Primera variación)>Sorry, I can only set temperature between 60 and 80 degrees. What temperature do you want? Un mensaje para solicitar un valor nuevo si se produce un error en la validación

    Screenshot showing how to add a range validation.

Pruébelo seleccionando el icono Entrenar en la parte superior del panel de la derecha. Después de que finalice el entrenamiento, seleccione Probar. Pruebe algunas interacciones:

  • Entrada: Set the temperature to 72 degrees (Establece la temperatura en 72 grados)
  • Salida: Ok, setting temperature to 72 degrees (De acuerdo, definiendo la temperatura en 72 grados)
  • Entrada: Set the temperature to 45 degrees (Establece la temperatura en 45 grados)
  • Salida: El valor de temperatura solo puede establecerse entre 60 y 80 grados
  • Entrada: make it 72 degrees instead (cámbiala a 72 grados en su lugar)
  • Salida: Ok, setting temperature to 72 degrees (De acuerdo, definiendo la temperatura en 72 grados)

Adición de reglas de interacción

Las reglas de interacción son reglas adicionales que controlan situaciones más específicas o complejas. Aunque tiene la libertad de crear sus propias reglas de interacción, en este ejemplo, usará reglas de interacción para los siguientes escenarios:

  • Confirmación de comandos
  • Adición de correcciones de un paso a los comandos

Para obtener más información sobre las reglas de interacción, vea Conceptos y definiciones de Comandos personalizados.

Adición de confirmaciones a un comando

Para agregar una confirmación, use el comando SetTemperature. Para conseguir la confirmación, use los pasos siguientes para crear reglas de interacción:

  1. En el panel de la izquierda, seleccione el comando SetTemperature.

  2. En el panel central, agregue reglas de interacción seleccionando Agregar. A continuación, seleccione Reglas de interacción>Confirm command (Confirmar comando).

    Esta acción agrega tres reglas de interacción. Las reglas solicitan al usuario que confirme la fecha y la hora de la alarma. Esperan una confirmación (sí o no) para la siguiente activación o desactivación.

    1. Modifique la regla de interacción Confirm Command (Confirmar comando) mediante la configuración siguiente:

      1. Cambie el nombre a Confirm temperature (Confirmar temperatura).
      2. La condición Todos los parámetros obligatorios ya se ha agregado.
      3. Agregue una nueva acción: Tipo>Send speech response (Enviar respuesta de voz)>Are you sure you want to set the temperature as {TemperatureValue} degrees? (¿Está seguro de que quiere definir la temperatura en {TemperatureValue} grados?)
      4. En la sección Expectations (Expectativas), deje el valor predeterminado de Expecting confirmation from user (A la espera de confirmación del usuario).

      Screenshot showing how to create the required parameter response.

    2. Modifique la regla de interacción Confirmation succeeded (Confirmación correcta) para controlar una confirmación correcta (el usuario dijo sí).

      1. Cambie el nombre a Confirmation temperature succeeded (Confirmación de temperatura correcta).
      2. Deje la condición Confirmation was successful (La confirmación se realizó correctamente) existente.
      3. Agregue una nueva condición: Tipo>Parámetros obligatorios>Temperature (Temperatura).
      4. Deje el valor predeterminado de Post-execution state (Estado posterior a la ejecución) como Execute completion rules (Ejecutar reglas de finalización).
    3. Modifique la regla de interacción Confirmation denied (Confirmación denegada) para controlar los escenarios en los que se deniega la confirmación (el usuario dijo que no).

      1. Cambie el nombre a Confirmation temperature denied (Confirmación de temperatura denegada).
      2. Deje la condición Confirmation was denied (La confirmación se denegó) existente.
      3. Agregue una nueva condición: Tipo>Parámetros obligatorios>Temperature (Temperatura).
      4. Agregue una nueva acción: Tipo>Send speech response (Enviar respuesta de voz)>No problem (No hay problema). What temperature then? (Entonces, ¿qué temperatura?).
      5. Cambie el valor predeterminado de Post-execution state (Estado posterior a la ejecución) a Wait for user's input (Esperar la entrada del usuario).

Importante

En este artículo, se usa la funcionalidad de confirmación integrada. También puede agregar manualmente reglas de interacción de una en una.

Pruebe los cambios seleccionando Entrenar. Cuando finalice el entrenamiento, seleccione Probar.

  • Entrada: Set temperature to 80 degrees (Establece la temperatura en 80 grados)
  • Salida: ¿está seguro de que quiere establecer la temperatura en 80 grados?
  • Entrada: No
  • Salida: No se preocupe. What temperature then? (Entonces, ¿qué temperatura?)
  • Entrada: 72 degrees (72 grados)
  • Salida: ¿está seguro de que quiere establecer la temperatura en 72 grados?
  • Entrada:
  • Salida: Ok, setting temperature to 72 degrees (De acuerdo, definiré la temperatura en 72 grados)

Implementación de correcciones en un comando

En esta sección se configura una corrección de un paso. Esta corrección se usa después de que se haya ejecutado la acción de cumplimiento. También verá un ejemplo de cómo la corrección se habilita de forma predeterminada si el comando aún no se ha completado. Para agregar una corrección cuando no ha finalizado el comando, agregue el nuevo parámetro AlarmTone.

En el panel izquierdo, seleccione el comando Setalarm. A continuación, agregue el nuevo parámetro AlarmTone.

  • Nombre>AlarmTone
  • Tipo>Cadena
  • Valor predeterminado>Campanillas
  • Configuración>Aceptar valores de entrada predefinidos del catálogo interno
  • Predefined input values (Valores de entrada predefinidos)>Campanillas, Tintineo y Eco (Estos valores son entradas individuales predefinidas).

A continuación, actualice la respuesta del parámetro DateTime como Ready to set alarm with tone as {AlarmTone}. For what time? (Listo para definir la alarma con el tono {AlarmTone} ¿A qué hora?) . A continuación, modifique la regla de finalización como se indica a continuación:

  1. Seleccione la regla de finalización existente ConfirmationResponse.
  2. En el panel de la derecha, mantenga el mouse sobre la acción existente y seleccione Editar.
  3. Actualice la respuesta de voz a OK, alarm set for {DateTime}. The alarm tone is {AlarmTone}.

Importante

El tono de la alarma puede cambiar sin ninguna configuración explícita en un comando en curso. Por ejemplo, puede cambiar cuando el comando todavía no ha terminado. Hay una corrección habilitada de forma predeterminada para todos los parámetros del comando, independientemente del número de activación o desactivación si el comando aún no se ha completado.

Implementación de una corrección cuando finaliza un comando

La plataforma de Comandos personalizados también permite la corrección de un paso, incluso cuando el comando finaliza. Esta característica no está habilitada de forma predeterminada. Debe configurarse explícitamente.

Siga estos pasos para configurar una corrección de un paso:

  1. En el comando SetAlarm, agregue una regla de interacción del tipo Update previous command (Actualizar el comando anterior) para actualizar la alarma establecida previamente. Cambie el nombre predeterminado de la regla de interacción a Update previous alarm (Actualizar la alarma anterior).
  2. Deje la condición predeterminada: Previous command needs to be updated (El comando anterior debe actualizarse).
  3. Agregue una condición nueva: Tipo>Parámetro requerido>DateTime.
  4. Agregue una nueva acción: Tipo>Send speech response (Enviar respuesta de voz)>Simple editor (Editor sencillo)>Updating previous alarm time to {DateTime} (Actualizando hora de alarma anterior a {DateTime}) .
  5. Deje el valor predeterminado del Post-execution state (Estado posterior a la ejecución) como Comando completado.

Pruebe los cambios seleccionando Entrenar. Espere a que finalice el entrenamiento y seleccione Probar.

  • Entrada: Set an alarm (Establece una alarma).
  • Salida: Ready to set alarm with tone as Chimes. (Listo para establecer una alarma con el tono campanillas). For what time? (¿A qué hora?)
  • Entrada: Set an alarm with the tone as Jingle for 9 am tomorrow (Establece una alarma con el tono Tintineo para mañana a las 9:00).
  • Salida: De acuerdo, alarma establecida para el 2020-05-21 09:00:00. The alarm tone is Jingle. (El tono de alarma es Tintineo).
  • Entrada: No, 8 am (No, 08:00).
  • Salida: Updating previous alarm time to 2020-05-29 08:00 (actualizaré la hora de la alarma anterior al 29/05/2020 a las 8:00:00).

Nota

En una aplicación real, en la sección Acciones de esta regla de corrección, también deberá enviar una actividad al cliente o llamar a un punto de conexión HTTP para actualizar la hora de la alarma en el sistema. Esta acción solo debe ser responsable de actualizar la hora de la alarma. No debe ser responsable de ningún otro atributo del comando. En este caso, el atributo sería el tono de alarma.

Adición de plantillas de generación de idioma para respuestas de voz

Las plantillas de generación de idioma (LG) le permiten personalizar las respuestas enviadas al cliente. Introducen variedad en las respuestas. Puede lograr la generación de idiomas mediante:

  • Plantillas de generación de idioma.
  • Expresiones adaptables.

Las plantillas de Comandos personalizados están basadas en las plantillas LG de Bot Framework. Dado que la característica Comandos personalizados crea una nueva plantilla LG cuando es necesario (para las respuestas de voz de los parámetros o acciones), no es necesario especificar el nombre de la plantilla LG.

Por lo tanto, no es necesario definir la plantilla de la siguiente manera:

   # CompletionAction
   - Ok, turning {OnOff} the {SubjectDevice}
   - Done, turning {OnOff} the {SubjectDevice}
   - Proceeding to turn {OnOff} {SubjectDevice}

En su lugar, defina el cuerpo de la plantilla sin el nombre, de esta manera:

Screenshot showing a template editor example.

Este cambio ofrece variedad en las respuestas de voz que se envían al cliente. Para una expresión, la respuesta de voz correspondiente se elegirá de forma aleatoria entre las opciones proporcionadas.

Si aprovecha las plantillas LG, también puede definir respuestas de voz complejas para los comandos mediante expresiones adaptables. Para obtener más información, vea Formato de las plantillas LG.

De forma predeterminada, la característica Comandos personalizados admite todas sus funcionalidades, con las siguientes variaciones mínimas:

  • En las plantillas LG, las entidades se representan como ${entityName}. La característica Comandos personalizados no usa entidades. Pero puede usar parámetros como variables con la representación ${parameterName} o la representación {parameterName}.
  • La característica Comandos personalizados no admite la composición y la expansión de plantillas, ya que nunca se edita el archivo .lg directamente. Solo se editan las respuestas de las plantillas creadas automáticamente.
  • La característica Comandos personalizados no admite las funciones personalizadas que LG inserta. Se admiten las funciones predefinidas.
  • La característica Comandos personalizados no admite opciones, como strict, replaceNull y lineBreakStyle.

Adición de respuestas de plantilla a un comando TurnOnOff

Use el comando TurnOnOff para agregar un nuevo parámetro. Use la configuración siguiente.

Configuración Valor sugerido
Nombre SubjectContext
Obligatorio No seleccionado
Tipo String
Valor predeterminado all
Configuración Aceptar valores de entrada predefinidos del catálogo interno
Predefined input values (Valores de entrada predefinidos) room, bathroom, all

Modificación de una regla de finalización

Edite la sección Acciones de la regla de finalización existente ConfirmationResponse. En la ventana Editar acción, cambie a Template Editor (Editor de plantillas). A continuación, reemplace el texto por el siguiente ejemplo.

- IF: @{SubjectContext == "all" && SubjectDevice == "lights"}
    - Ok, turning all the lights {OnOff}
- ELSEIF: @{SubjectDevice == "lights"}
    - Ok, turning {OnOff} the {SubjectContext} {SubjectDevice}
- ELSE:
    - Ok, turning the {SubjectDevice} {OnOff}
    - Done, turning {OnOff} the {SubjectDevice}

Entrene y pruebe la aplicación mediante la entrada y salida siguientes. Observe la variación de las respuestas. La variación de las respuestas se crea por las distintas alternativas para el valor de plantilla y por el uso de expresiones adaptables.

  • Entrada: turn on the tv (Enciende el televisor)
  • Salida: De acuerdo, encenderé el televisor
  • Entrada: turn on the tv (Enciende el televisor)
  • Salida: Done, turned on the tv (listo, encendí el televisor)
  • Entrada: turn off the lights (Apaga las luces)
  • Salida: Ok, turning all the lights off (de acuerdo, apagaré las luces)
  • Entrada: turn off room lights (Apaga las luces de la habitación)
  • Salida: Ok, turning off the room lights (de acuerdo, apagaré las luces de la habitación)

Uso de una voz personalizada

Otra manera de personalizar las respuestas de Comandos personalizados consiste en seleccionar una voz de salida. Siga estos pasos para cambiar la voz predeterminada por una voz personalizada:

  1. En la aplicación de Comandos personalizados, en el panel de la izquierda, seleccione Configuración.
  2. En el panel central, seleccione Voz personalizada.
  3. En la tabla, seleccione una voz personalizada o una voz pública.
  4. Seleccione Guardar.

Screenshot showing sample sentences and parameters.

Nota:

En el caso de las voces públicas, los tipos neuronales solo están disponibles para regiones específicas. Para más información, consulte Regiones del servicio de voz admitidas.

Puede crear voces personalizadas en la página del proyecto Voz personalizada. Para más información, consulte Introducción a la voz personalizada.

Ahora la aplicación responde en la voz seleccionada en lugar de en la voz predeterminada.

Pasos siguientes