Tutorial: Habilitación por voz del bot

Puede usar Voz de Azure AI para habilitar por voz un bot de chat.

En este tutorial, usará Microsoft Bot Framework para crear un bot que responda a lo que usted diga. Implementará el bot en Azure y lo registrará con el canal Direct Line Speech de Bot Framework. Después, configurará una aplicación cliente de ejemplo para Windows con la que hablar al bot y escuchar su respuesta.

Para completar el tutorial, no necesita una amplia experiencia ni estar familiarizado con Azure, bots de Bot Framework o Direct Line Speech.

El bot de chat habilitado para voz que se crea en este tutorial sigue estos pasos:

  1. La aplicación cliente de ejemplo está configurada para conectarse al canal Direct Line Speech y al bot de eco.
  2. Cuando el usuario presiona un botón, el audio de voz se transmite desde el micrófono. El audio también se puede grabar de forma continua si se usa una palabra clave personalizada.
  3. Si se usa una palabra clave personalizada, la detección de palabras clave se produce en el dispositivo local y se canaliza el streaming de audio a la nube.
  4. La aplicación cliente de ejemplo usa el SDK de voz para conectarse al canal Direct Line Speech y transmitir audio.
  5. También se puede realizar una comprobación de palabras clave de mayor precisión en el servicio.
  6. El audio se pasa al servicio de reconocimiento de voz y se transcribe en texto.
  7. El texto reconocido se pasa al bot de eco como una actividad de Bot Framework.
  8. El servicio de texto a voz convierte el texto de respuesta en audio, que se transmite a la aplicación cliente para que lo reproduzca.

Diagram that illustrates the flow of the Direct Line Speech channel.

Nota:

Los pasos de este tutorial no requieren un servicio de pago. Como nuevo usuario de Azure, usted podrá usar créditos de su suscripción de evaluación gratuita de Azure y del nivel Gratis del servicio Voz para completar este tutorial.

Este tutorial abarca lo siguiente:

  • Creación de recursos de Azure
  • Compilación, prueba e implementación del bot de eco de ejemplo en Azure App Service
  • Registro del bot con un canal Direct Line Speech
  • Compilación y ejecución del cliente del asistente para voz de Windows para interactuar con el bot de eco
  • Incorporación de la activación mediante palabras clave personalizadas
  • Cambio del idioma de la voz hablada y reconocida

Requisitos previos

Para completar este tutorial, necesitará lo siguiente:

Crear un grupo de recursos

La aplicación cliente que creará en este tutorial utiliza una serie de servicios de Azure. Para reducir el tiempo del recorrido de ida y vuelta de las respuestas del bot, conviene asegurarse de que estos servicios se encuentren en la misma región de Azure.

En esta sección se le guiará por la creación de un grupo de recursos en la región Oeste de EE. UU. Este grupo de recursos se usará al crear recursos específicos para Bot Framework, el canal Direct Line Speech y el servicio Voz.

  1. Vaya a la página de creación de grupos de recursos de Azure Portal.
  2. Proporcione la siguiente información:
    • Establezca Suscripción en Evaluación gratuita. (También puede usar una suscripción existente).
    • Escriba un nombre para el grupo de recursos. Se recomienda SpeechEchoBotTutorial-ResourceGroup.
    • En el menú desplegable Región, seleccione Oeste de EE. UU.
  3. Seleccione Revisar y crear. Debería aparecer un banner con el texto Validación superada.
  4. Seleccione Crear. El grupo de recursos puede tardar unos minutos en crearse.
  5. Al igual que con los recursos que creará más adelante en este tutorial, es una buena idea anclar este grupo de recursos al panel para facilitar el acceso. Si desea anclar este grupo de recursos, seleccione el icono de anclaje situado junto al nombre.

Elección de una región de Azure

Asegúrese de que usa una región de Azure compatible. El canal Direct Line Speech utiliza el servicio de texto a voz, que tiene voces estándar y neuronales. En estas regiones de Azure se usan voces neuronales, mientras que en estas otras se usan voces estándar.

Para más información sobre las regiones, consulte Ubicaciones de Azure.

Crear recursos

Ahora que tiene un grupo de recursos en una región admitida, el siguiente paso es crear recursos individuales para cada servicio que usará en este tutorial.

Creación de recurso del servicio de voz

  1. Vaya a la página de creación de recursos del servicio Voz de Azure Portal.
  2. Proporcione la siguiente información:
    • En Nombre, se recomienda indicar SpeechEchoBotTutorial-Speech como nombre del recurso.
    • En Suscripción, asegúrese de que esté seleccionada la opción Evaluación gratuita.
    • En Ubicación, seleccione Oeste de EE. UU.
    • En Plan de tarifa, seleccione F0. Es el plan gratuito.
    • En Grupo de recursos, seleccione SpeechEchoBotTutorial-ResourceGroup.
  3. Después de escribir toda la información necesaria, seleccione Crear. El recurso puede tardar unos minutos en crearse.
  4. Más adelante en este tutorial necesitará las claves de suscripción para este servicio. Puede acceder a estas claves en cualquier momento desde las áreas Información general (en Administrar claves) o Claves del recurso.

En este punto, compruebe que el grupo de recursos (SpeechEchoBotTutorial-ResourceGroup) tenga un recurso del servicio Voz:

Nombre Tipo Location
SpeechEchoBotTutorial-Speech Voz Oeste de EE. UU.

Crear un plan de Azure App Service

Un plan de App Service define un conjunto de recursos de proceso para que una aplicación web se ejecute.

  1. Vaya a la página de creación de planes de Azure App Service de Azure Portal.
  2. Proporcione la siguiente información:
    • Establezca Suscripción en Evaluación gratuita. (También puede usar una suscripción existente).
    • En Grupo de recursos, seleccione SpeechEchoBotTutorial-ResourceGroup.
    • En Nombre, se recomienda indicar SpeechEchoBotTutorial-AppServicePlan como nombre del plan.
    • En Sistema operativo, seleccione Windows.
    • En Región, seleccione Oeste de EE. UU.
    • En Plan de tarifa, asegúrese de que está seleccionado Estándar S1. Este debería ser el valor predeterminado. Si no es así, establezca Sistema operativo en Windows.
  3. Seleccione Revisar y crear. Debería aparecer un banner con el texto Validación superada.
  4. Seleccione Crear. El recurso puede tardar unos minutos en crearse.

En este momento, compruebe que el grupo de recursos (SpeechEchoBotTutorial-ResourceGroup) tiene dos recursos:

Nombre Tipo Location
SpeechEchoBotTutorial-AppServicePlan Plan de servicio de aplicación Oeste de EE. UU.
SpeechEchoBotTutorial-Speech Servicios de Azure AI Oeste de EE. UU.

Compilación de un bot de eco

Ahora que ha creado recursos, comience con el ejemplo de bot de eco, que refleja el texto que ha escrito como su respuesta. El código de ejemplo ya está configurado para funcionar con el canal Direct Line Speech, que se conectará después de implementar el bot en Azure.

Nota:

En el archivo Léame de GitHub del ejemplo encontrará las instrucciones que figuran a continuación, junto a información adicional sobre el bot de eco.

Ejecución del bot de ejemplo en su máquina

  1. Clone el repositorio de ejemplos:

    git clone https://github.com/Microsoft/botbuilder-samples.git
    
  2. Abra Visual Studio.

  3. En la barra de herramientas, seleccione Archivo>Abrir>Proyecto/Solución. A continuación, abra la solución de proyecto:

    samples\csharp_dotnetcore\02.echo-bot\EchoBot.sln
    
  4. Una vez que se cargue el proyecto, presione F5 para compilar y ejecutar el proyecto.

    En el explorador que se abre, aparecerá una pantalla similar a la siguiente:

    Screenshot that shows the EchoBot page with the message that your bot is ready.

Prueba del ejemplo de bot con Bot Framework Emulator

Bot Framework Emulator es una aplicación de escritorio que permite que los desarrolladores de bots prueben y depuren sus bots de manera local (o remota mediante un túnel). El emulador acepta texto escrito como entrada (no voz). El bot también responde con texto.

Siga estos pasos para usar Bot Framework Emulator con el fin de probar la ejecución local del bot de eco, con entrada y salida de texto. Una vez que implemente el bot en Azure, lo probará con entrada y la salida de voz.

  1. Instale Bot Framework Emulator versión 4.3.0 o posterior.

  2. Abra Bot Framework Emulator y seleccione File>Open Bot (Archivo > Abrir bot).

  3. Escriba la dirección URL del bot. Por ejemplo:

    http://localhost:3978/api/messages
    
  4. Seleccione Conectar.

  5. El bot debería saludarle con el mensaje "¡Hola y bienvenido!". Escriba cualquier mensaje de texto y confirme que recibe respuesta del bot.

    Este es el aspecto que podría tener un intercambio de comunicación con un bot de eco: Screenshot shows the Bot Framework Emulator.

Implementación del bot en Azure App Service

El siguiente paso es implementar el bot de eco en Azure. Hay varias maneras de implementar un bot, entre ellas, la CLI de Azure y plantillas de implementación. Este tutorial se centra en la publicación directamente desde Visual Studio.

Nota

Si la opción Publicar no aparece al realizar los siguientes pasos, use el Instalador de Visual Studio para agregar la carga de trabajo de desarrollo web y de ASP.NET.

  1. Desde Visual Studio, abra el bot de eco que se ha configurado para usarse con el canal Direct Line Speech:

    samples\csharp_dotnetcore\02.echo-bot\EchoBot.sln
    
  2. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto de EchoBot y seleccione Publicar.

  3. En la ventana Publicar que se abre:

    1. Seleccione Azure>Siguiente.
    2. Seleccione Azure App Service (Windows)>Siguiente.
    3. Seleccione Crear una instancia de Azure App Service junto al signo más verde.
  4. Cuando aparezca la ventana App Service (Windows) :

    • Seleccione Agregar una cuenta e inicie sesión con las credenciales de su cuenta de Azure. Si ya ha iniciado sesión, seleccione su cuenta en la lista desplegable.

    • En Nombre, escriba un nombre único global para bot. Este nombre se usa para crear una dirección URL única del bot.

      En el cuadro aparece un nombre predeterminado con la fecha y hora (por ejemplo, EchoBot20190805125647). En este tutorial, utilice los valores predeterminados.

    • En Suscripción, seleccione Evaluación gratuita.

    • En Grupo de recursos, seleccione SpeechEchoBotTutorial-ResourceGroup.

    • En Plan de hospedaje, seleccione SpeechEchoBotTutorial-AppServicePlan.

  5. Seleccione Crear. En la pantalla final del asistente, seleccione Finalizar.

  6. Seleccione Publicar. Visual Studio implementa el bot en Azure.

    En la ventana de salida de Visual Studio debería aparecer un mensaje de confirmación con el siguiente aspecto:

    Publish Succeeded.
    Web App was published successfully https://EchoBot20190805125647.azurewebsites.net/
    

    El explorador predeterminado debería abrirse y mostrar una página con el mensaje "¡El bot está listo!".

En este punto, compruebe el grupo de recursos (SpeechEchoBotTutorial-ResourceGroup) en Azure Portal. Confirme que contiene estos tres recursos:

Nombre Tipo Location
EchoBot20190805125647 App Service Oeste de EE. UU.
SpeechEchoBotTutorial-AppServicePlan Plan de App Service Oeste de EE. UU.
SpeechEchoBotTutorial-Speech Servicios de Azure AI Oeste de EE. UU.

Habilitación de sockets web

Debe realizar un pequeño cambio en la configuración para que el bot pueda comunicarse con el canal Direct Line Speech mediante sockets web. Siga estos pasos para habilitar los sockets web:

  1. Vaya a Azure Portal y seleccione su recurso de App Service. El recurso debe tener un nombre similar a EchoBot20190805125647 (el nombre único de la aplicación).
  2. En la sección Configuración del panel izquierdo, seleccione Configuración.
  3. Seleccione la pestaña Configuración general.
  4. Busque el botón de alternancia de Sockets web y establézcalo en Activado.
  5. Seleccione Guardar.

Sugerencia

Puede usar los controles que se encuentran en la parte superior de la página de Azure App Service para detener o reiniciar el servicio. Esta opción puede ser útil para solucionar problemas.

Creación de un registro de canal

Después de crear un recurso de Azure App Service para hospedar el bot, el siguiente paso es crear un registro de canal. La creación de un registro de canal es un requisito previo para registrar el bot con canales de Bot Framework, incluido el canal Direct Line Speech. Si desea obtener más información sobre cómo los bots usan los canales, consulte Conexión de un bot a canales.

  1. Vaya a la página de creación de bots de Azure de Azure Portal.
  2. Proporcione la siguiente información:
    • En Identificador de bot, escriba SpeechEchoBotTutorial-BotRegistration-####. Reemplace #### por muchas de sus opciones.

      Nota:

      El bot debe tener un identificador único global. Si escribe un número y recibe el mensaje de error "El identificador de bot solicitado no está disponible", elija otro. En los siguientes ejemplos se usa 8726.

    • En Suscripción, seleccione Evaluación gratuita.

    • En Grupo de recursos, seleccione SpeechEchoBotTutorial-ResourceGroup.

    • En Ubicación, seleccione Oeste de EE. UU.

    • En Plan de tarifa, seleccione F0.

    • Ignore Auto create App ID and password (Creación automática del identificador y contraseña de la aplicación).

  3. En la parte inferior del panel Azure Bot, seleccione Crear.
  4. Después de crear el recurso, abra el recurso SpeechEchoBotTutorial-BotRegistration-#### en Azure Portal.
  5. En el área Configuración, seleccione Configuración.
  6. En Punto de conexión de mensajería, escriba la dirección URL de la aplicación web con la ruta de acceso /api/messages anexada. Por ejemplo, si el nombre de la aplicación globalmente único fuera EchoBot20190805125647, el punto de conexión de mensajería sería https://EchoBot20190805125647.azurewebsites.net/api/messages/.

En este punto, compruebe el grupo de recursos (SpeechEchoBotTutorial-ResourceGroup) en Azure Portal. Ahora debería mostrar al menos cuatro recursos:

Nombre Tipo Location
EchoBot20190805125647 App Service Oeste de EE. UU.
SpeechEchoBotTutorial-AppServicePlan Plan de App Service Oeste de EE. UU.
SpeechEchoBotTutorial-BotRegistration-8726 Servicio de bots Global
SpeechEchoBotTutorial-Speech Servicios de Azure AI Oeste de EE. UU.

Importante

El recurso de Servicio de Bot de Azure AI muestra la región Global, aunque usted haya seleccionado Oeste de EE. UU. Se espera que esto sea así.

Opcional: Probar en el Chat en web

La página Azure Bot tiene una opción Probar en el Chat en web en Configuración. Sin embargo, no funcionará de manera predeterminada con su bot, ya que el Chat en web debe autenticarse con él.

Si desea probar el bot implementado con entrada de texto, siga estos pasos. Estos pasos son opcionales y no son necesarios para continuar con el tutorial.

  1. En Azure Portal, busque y abra el recurso EchoBotTutorial-BotRegistration-####.

  2. En el área Configuración, seleccione Configuración. Copie el valor de Identificador de aplicación de Microsoft.

  3. Abra la solución EchoBot de Visual Studio. En el Explorador de soluciones, busque y seleccione appsettings.json.

  4. Reemplace la cadena vacía que está junto a MicrosoftAppId en el archivo JSON por el valor de identificador copiado.

  5. Vuelva a Azure Portal. En el área Configuración, seleccione Configuración. A continuación, seleccione Administrar junto a Identificador de aplicación de Microsoft.

  6. Seleccione Nuevo secreto de cliente. Agregue una descripción (por ejemplo, Chat en web) y seleccione Agregar. Copie el nuevo secreto.

  7. Reemplace la cadena vacía que está junto a MicrosoftAppPassword en el archivo JSON por el valor de secreto copiado.

  8. Guarde el archivo JSON. Debe tener un aspecto parecido al siguiente código:

    {
      "MicrosoftAppId": "YourAppId",
      "MicrosoftAppPassword": "YourAppPassword"
    }
    
  9. Vuelva a publicar la aplicación: haga clic con el botón derecho en el proyecto de EchoBot en el Explorador de soluciones de Visual Studio y seleccione Publicar; a continuación, seleccione el botón Publicar.

Registro del canal Direct Line Speech

Ahora es el momento de registrar el bot con el canal Direct Line Speech. Este canal crea una conexión entre el bot y una aplicación cliente compilada con el SDK de voz.

  1. En Azure Portal, busque y abra el recurso SpeechEchoBotTutorial-BotRegistration-####.

  2. En el área Configuración, seleccione Canales y, a continuación, siga estos pasos:

    1. En Más canales, seleccione Direct Line Speech.
    2. Revise el texto de la página Configurar Direct Line Speech y, a continuación, expanda el menú desplegable Cuenta de Cognitive Services.
    3. Seleccione el recurso del servicio Voz que ha creado anteriormente (por ejemplo, SpeechEchoBotTutorial-Speech) en el menú, para asociar el bot a su clave de suscripción.
    4. Ignore los restantes campos opcionales.
    5. Seleccione Guardar.
  3. En el área Configuración, seleccione Configuración y, a continuación, siga estos pasos:

    1. Seleccione la casilla Habilitar punto de conexión de streaming. Este paso es necesario para crear un protocolo de comunicación basado en sockets web entre el bot y el canal Direct Line Speech.
    2. Seleccione Guardar.

Si desea obtener más información, consulte Conexión de un bot a Direct Line Speech.

Ejecución del cliente del asistente de voz de Windows

El cliente del asistente para voz de Windows es una aplicación de Windows Presentation Foundation (WPF) en C# que usa el SDK de voz para administrar la comunicación con el bot mediante el canal Direct Line Speech. Úselo para interactuar con el bot y probarlo antes de escribir una aplicación cliente personalizada. Es de código abierto, por lo que puede descargar el archivo ejecutable y ejecutarlo, o bien compilarlo usted mismo.

El cliente del asistente de voz de Windows tiene una interfaz de usuario simple que permite configurar la conexión al bot, ver la conversación de texto, ver actividades de Bot Framework en formato JSON y mostrar tarjetas adaptables. También admite el uso de palabras clave personalizadas. Va a utilizar este cliente para hablar con el bot y recibir una respuesta de voz.

Nota:

En este momento, confirme que el micrófono y los altavoces estén habilitados y en perfecto funcionamiento.

  1. Vaya al repositorio de GitHub del cliente del asistente para voz de Windows.

  2. Siga las instrucciones proporcionadas para realizar una de las dos acciones siguientes:

    • Descargar un archivo ejecutable precompilado en un paquete .zip para ejecutarlo.
    • Compilar el archivo ejecutable usted mismo clonando el repositorio y compilando el proyecto.
  3. Abra la aplicación cliente VoiceAssistantClient.exe y configúrela para conectarse a su bot. Para ello, siga las instrucciones del repositorio de GitHub.

  4. Seleccione Volver a conectar y asegúrese de que aparezca el mensaje "Se ha iniciado una conversación: escriba o presione el botón de micrófono".

  5. Vamos a probarlo. Seleccione el botón del micrófono y diga unas palabras en inglés. El texto reconocido aparece mientras habla. Cuando haya terminado de hablar, el bot responderá con su propia voz, diciendo "echo" (eco) seguido de las palabras reconocidas.

    También puede utilizar el texto para comunicarse con el bot. Simplemente escriba el texto en la barra inferior.

Solución de errores en el cliente del asistente para voz de Windows

Si recibe un mensaje de error en la ventana principal de la aplicación, use esta tabla para identificar y solucionar el problema:

Message ¿Qué debería hacer?
Error (AuthenticationFailure): WebSocket Upgrade failed with an authentication error (401). Check for correct resource key (or authorization token) and region name [Error AuthenticationFailure: No se pudo actualizar el socket web con un error de autenticación (401). Compruebe que la clave de recurso (o token de autorización) y el nombre de la región son correctos] En la página Configuración de la aplicación, asegúrese de haber especificado correctamente la clave y su región.
Error (ConnectionFailure): Connection was closed by the remote host. Código de error: 1011. Detalles del error: No se pudo conectar al bot antes de enviar un mensaje Asegúrese de haber seleccionado la casilla "Habilitar punto de conexión de streaming" o activado los sockets web.
Asegúrese de que Azure App Service se esté ejecutando. Si es así, intente reiniciarlo.
Error (ConnectionFailure): Connection was closed by the remote host. Código de error: 1002. Detalles del error: El servidor devolvió el código de estado ''503" cuando se esperaba el código "101". Asegúrese de haber seleccionado la casilla "Habilitar punto de conexión de streaming" o activado los sockets web.
Asegúrese de que Azure App Service se esté ejecutando. Si es así, intente reiniciarlo.
Error (ConnectionFailure): Connection was closed by the remote host. Código de error: 1011. Detalles del error: El código de estado de la respuesta no indica que se ha realizado correctamente: 500 (InternalServerError) El bot ha especificado una voz neuronal en el campo speak de su actividad de salida, pero la región de Azure asociada a su clave de recurso no admite este tipo de voces. Consulte las voces neuronales y estándar.

Si no consigue solucionar el problema con las acciones de la tabla, consulte Preguntas más frecuentes sobre los asistentes para voz. Si sigue sin poder resolver el problema después de seguir todos los pasos de este tutorial, indique una nueva incidencia en la página de GitHub del asistente para voz.

Apunte sobre el tiempo de espera de conexión

Si está conectado a un bot y no se ha registrado actividad en los últimos cinco minutos, el servicio cerrará automáticamente la conexión de socket web con el cliente y con el bot. es así por diseño. Aparecerá el siguiente mensaje en la barra inferior: "Se ha agotado el tiempo de espera de la conexión activa; no obstante, puede restablecerla cuando lo desee".

No es necesario que seleccione el botón Volver a conectar. Presione el botón del micrófono y empiece a hablar, escriba un mensaje de texto o diga la palabra clave (si hay alguna habilitada). La conexión se restablecerá automáticamente.

Ver actividades de bot

Cada bot envía y recibe mensajes de actividad. La ventana Registro de actividad del cliente del asistente para voz de Windows incluye registros con marca de tiempo en los que se muestra cada actividad que el cliente ha recibido del bot. También puede ver las actividades que el cliente ha enviado al bot mediante el método DialogServiceConnector.SendActivityAsync. Al seleccionar un elemento de registro, se muestran los detalles de la actividad asociada como JSON.

A continuación figura un JSON de ejemplo de una actividad que ha recibido el cliente:

{
    "attachments":[],
    "channelData":{
        "conversationalAiData":{
             "requestInfo":{
                 "interactionId":"8d5cb416-73c3-476b-95fd-9358cbfaebfa",
                 "version":"0.2"
             }
         }
    },
    "channelId":"directlinespeech",
    "conversation":{
        "id":"129ebffe-772b-47f0-9812-7c5bfd4aca79",
        "isGroup":false
    },
    "entities":[],
    "from":{
        "id":"SpeechEchoBotTutorial-BotRegistration-8726"
    },
    "id":"89841b4d-46ce-42de-9960-4fe4070c70cc",
    "inputHint":"acceptingInput",
    "recipient":{
        "id":"129ebffe-772b-47f0-9812-7c5bfd4aca79|0000"
    },
    "replyToId":"67c823b4-4c7a-4828-9d6e-0b84fd052869",
    "serviceUrl":"urn:botframework:websocket:directlinespeech",
    "speak":"<speak version='1.0' xmlns='https://www.w3.org/2001/10/synthesis' xml:lang='en-US'><voice name='en-US-JennyNeural'>Echo: Hello and welcome.</voice></speak>",
    "text":"Echo: Hello and welcome.",
    "timestamp":"2019-07-19T20:03:51.1939097Z",
    "type":"message"
}

Para obtener más información sobre el contenido de la salida JSON, consulte los campos de la actividad. Para este tutorial, puede centrarse en los campos de text (texto) y speak (hablar).

Visualización del código fuente de cliente para las llamadas al SDK de voz

El cliente del asistente de voz de Windows usa el paquete NuGet Microsoft.CognitiveServices Account.Speech, que contiene Speech SDK. Un buen punto de partida para revisar el código de ejemplo es el método InitSpeechConnector() del archivo VoiceAssistantClient\MainWindow.xaml.cs, que crea estos dos objetos del SDK de voz:

  • DialogServiceConfig: para valores de configuración como la clave de recurso y su región.
  • DialogServiceConnector: para administrar la conexión de canal y los eventos de suscripción de cliente con el fin de controlar las respuestas de voz y bot reconocidas.

Agregar la activación de la palabra clave personalizada

El SDK de Voz admite la activación de palabras clave personalizadas. De forma similar a "Hola Cortana" para un ayudante de Microsoft, puede escribir una aplicación que escuche continuamente la palabra clave que prefiera. Tenga presente que una palabra clave puede ser una sola palabra o una frase con varias palabras.

Nota

El término palabra clave se suele usar indistintamente con el término palabra de reactivación. Es posible que vea ambos términos en la documentación de Microsoft.

La detección de palabras clave se produce en la aplicación cliente. Si usa una palabra clave, el audio solo se transmite al canal Direct Line Speech si se detecta dicha palabra. El canal Direct Line Speech incluye un componente denominado comprobación de palabras clave, que realiza un procesamiento más complejo en la nube para comprobar que la palabra clave que ha elegido está al principio de la secuencia de audio. Si la comprobación de palabras clave se realiza correctamente, el canal se comunicará con el bot.

Siga estos pasos para crear un modelo de palabra clave, configurar el cliente del asistente para voz de Windows para usar este modelo y probarlo con su bot:

  1. Cree una palabra clave personalizada mediante el servicio Voz.
  2. Descomprima el archivo de modelo que descargó en el paso anterior. Debe tener el nombre de la palabra clave. Debe buscar un archivo denominado kws.table.
  3. En el cliente del asistente para voz de Windows, busque el menú Configuración (icono de engranaje en la parte superior derecha). En Ruta de acceso del archivo de modelo, escriba el nombre completo de la ruta de acceso del archivo kws.table del paso 2.
  4. Seleccione la casilla Habilitado. Debería ver este mensaje junto a la casilla: "Escuchará la palabra clave tras la siguiente conexión". Si ha proporcionado un archivo incorrecto o una ruta de acceso no válida, debería ver un mensaje de error.
  5. Especifique los valores de Clave de suscripción y Región de clave de suscripción; a continuación, seleccione Aceptar para cerrar el menú Configuración.
  6. Seleccione Volver a conectar. Debería aparecer el siguiente mensaje: "Se ha iniciado una nueva conversación: escriba, presione el botón del micrófono o diga la palabra clave". La aplicación escuchará ahora de manera continua.
  7. Diga cualquier frase que empiece con la palabra clave. Por ejemplo, "{su palabra clave}, ¿qué hora es?". No es necesario que haga una pausa después de decir la palabra clave. Cuando haya terminado, sucederán dos cosas:
    • Aparecerá una transcripción de lo que ha dicho.
    • Escuchará la respuesta del bot.
  8. Continúe experimentando con los tres tipos de entradas que admite el bot:
    • Escribir texto en la barra inferior.
    • Presionar el icono del micrófono y hablar
    • Decir una frase que empiece con la palabra clave

Visualización del código fuente que habilita la detección de palabras clave

En el código fuente del cliente del asistente para voz de Windows, use estos archivos para revisar el código que habilita la detección de palabras clave:

(Opcional) Cambio del idioma y la voz del bot

El bot que creó escuchará y responderá en inglés, y la voz predeterminada para la conversión de texto a voz será en inglés (EE.UU.). Sin embargo, no existen límites con respecto al uso del inglés o de una voz predeterminada.

En esta sección, aprenderá a cambiar el idioma en el que el bot escuchará y responderá. También aprenderá a seleccionar otra voz para dicho idioma.

Cambio del idioma

Puede elegir cualquiera de los idiomas que se mencionan en la tabla de Conversión de voz en texto. En el siguiente ejemplo se cambia el idioma al alemán.

  1. Abra la aplicación cliente del asistente para voz de Windows, seleccione el botón Configuración (icono de engranaje en la parte superior derecha) y especifique de-de en el campo Idioma. Este es el valor de configuración regional que se menciona en la tabla de Conversión de voz en texto.

    En este paso se establece el idioma hablado que debe reconocerse y se sustituya el valor predeterminado en-us. También se indica al canal Direct Line Speech que use una voz en alemán predeterminada para la respuesta del bot.

  2. Cierre la página Configuración y seleccione el botón Volver a conectar para establecer una nueva conexión con el bot de eco.

  3. Seleccione el botón del micrófono y diga una frase en alemán. Aparecerá el texto reconocido, y el bot de eco responderá con la voz en alemán predeterminada.

Cambio de la voz de bot predeterminada

Puede seleccionar la voz de conversión de texto a voz y controlar la pronunciación si el bot especifica la respuesta en Lenguaje de marcado de síntesis de voz (SSML) en lugar de texto simple. El bot de eco no usa SSML, pero se puede modificar fácilmente el código para que lo haga.

En el ejemplo siguiente se agrega SSML a la respuesta del bot de eco, de modo que use la voz en alemán de-DE-RalfNeural (una voz masculina) en lugar de la voz femenina predeterminada. Consulte las listas de voces estándar y voces neuronales que son compatibles con su idioma.

  1. Abra samples\csharp_dotnetcore\02.echo-bot\echo-bot.cs.

  2. Busque estas líneas:

    var replyText = $"Echo: {turnContext.Activity.Text}";
    await turnContext.SendActivityAsync(MessageFactory.Text(replyText, replyText), cancellationToken);
    

    Reemplácelas por el siguiente código:

    var replyText = $"Echo: {turnContext.Activity.Text}";
    var replySpeak = @"<speak version='1.0' xmlns='https://www.w3.org/2001/10/synthesis' xml:lang='de-DE'>
                    <voice name='de-DE-RalfNeural'>" +
                    $"{replyText}" + "</voice></speak>";
    await turnContext.SendActivityAsync(MessageFactory.Text(replyText, replySpeak), cancellationToken);
    
  3. Compile la solución en Visual Studio y corrija los errores de compilación.

El segundo argumento del método MessageFactory.Text establece el campo "speak" de actividad en la respuesta del bot. Con el cambio anterior, se ha reemplazado el texto simple por SSML para especificar una voz en alemán no predeterminada.

Reimplementación del bot

Ahora que ha realizado el cambio necesario en el bot, el siguiente paso consiste en volver a publicarlo en Azure App Service y probarlo:

  1. En la ventana del Explorador de soluciones, haga clic con el botón derecho en el proyecto de EchoBot y seleccione Publicar.

  2. La configuración de implementación anterior ya se ha cargado como valor predeterminado. Seleccione Publicar junto a EchoBot20190805125647 - Web Deploy.

    Aparecerá el mensaje Publicación correcta en la ventana de salida de Visual Studio y se abrirá una página web con el mensaje "¡El bot está listo!".

  3. Abra la aplicación cliente del asistente para voz de Windows. Seleccione el botón Configuración (icono de engranaje en la parte superior derecha) y asegúrese de que siga apareciendo de-de en el campo Idioma.

  4. Siga las instrucciones de Ejecución del cliente del asistente para voz de Windows para volver a conectar con el bot recién implementado, hablar en el nuevo idioma y oír la respuesta del bot en dicho idioma con la nueva voz.

Limpieza de recursos

Si no va a seguir usando el bot de eco implementado en este tutorial, puede eliminarlo junto con todos los recursos de Azure asociados eliminando el grupo de recursos de Azure:

  1. En Azure Portal, seleccione Grupos de recursos en Servicios de Azure.
  2. Busque el grupo de recursos SpeechEchoBotTutorial-ResourceGroup. Seleccione los tres puntos (...).
  3. Seleccione Eliminar grupo de recursos.

Explorar la documentación

Pasos siguientes