Partilhar via


Tutorial: Habilite seu bot por voz

Você pode usar o Azure AI Speech para habilitar um bot de chat por voz.

Neste tutorial, você usa o Microsoft Bot Framework para criar um bot que responde ao que você diz. Você implanta seu bot no Azure e o registra no canal de Fala de Linha Direta do Bot Framework. Em seguida, você configura um aplicativo cliente de exemplo para Windows que permite falar com seu bot e ouvi-lo falar de volta para você.

Para concluir o tutorial, você não precisa de ampla experiência ou familiaridade com o Azure, bots do Bot Framework ou Direct Line Speech.

O bot de bate-papo habilitado para voz que você cria neste tutorial segue estas etapas:

  1. O aplicativo cliente de exemplo está configurado para se conectar ao canal Direct Line Speech e ao echo bot.
  2. Quando o usuário pressiona um botão, o áudio de voz flui do microfone. Ou o áudio é gravado continuamente quando uma palavra-chave personalizada é usada.
  3. Se uma palavra-chave personalizada for usada, a deteção de palavras-chave acontece no dispositivo local, limitando o streaming de áudio para a nuvem.
  4. O aplicativo cliente de exemplo usa o SDK de fala para se conectar ao canal Direct Line Speech e transmitir áudio.
  5. Opcionalmente, a verificação de palavras-chave de maior precisão acontece no serviço.
  6. O áudio é passado para o serviço de reconhecimento de fala e transcrito para texto.
  7. O texto reconhecido é passado para o bot de eco como uma atividade do Bot Framework.
  8. O texto de resposta é transformado em áudio pelo serviço de conversão de texto em fala e transmitido de volta para o aplicativo cliente para reprodução.

Diagrama que ilustra o fluxo do canal Direct Line Speech.

Nota

As etapas neste tutorial não exigem um serviço pago. Como um novo usuário do Azure, você pode usar créditos de sua assinatura de avaliação gratuita do Azure e da camada gratuita do serviço de Fala para concluir este tutorial.

Veja o que este tutorial abrange:

  • Crie novos recursos do Azure.
  • Crie, teste e implante o exemplo de bot de eco no Serviço de Aplicativo do Azure.
  • Registre seu bot em um canal Direct Line Speech.
  • Crie e execute o Windows Voice Assistant Client para interagir com seu echo bot.
  • Adicione ativação de palavra-chave personalizada.
  • Aprenda a mudar a linguagem da fala reconhecida e falada.

Pré-requisitos

Aqui está o que você precisa para concluir este tutorial:

Criar um grupo de recursos

O aplicativo cliente que você cria neste tutorial usa vários serviços do Azure. Para reduzir o tempo de ida e volta para respostas do seu bot, você deseja ter certeza de que esses serviços estão na mesma região do Azure.

Esta seção orienta você na criação de um grupo de recursos na região Oeste dos EUA. Você usa esse grupo de recursos quando cria recursos individuais para o Bot Framework, o canal Direct Line Speech e o serviço Speech.

  1. Vá para a página do portal do Azure para criar um grupo de recursos.
  2. Forneça as seguintes informações:
    • Defina Subscrição como Avaliação Gratuita. (Você também pode usar uma assinatura existente.)
    • Insira um nome para o grupo de recursos. Recomendamos SpeechEchoBotTutorial-ResourceGroup.
    • No menu suspenso Região , selecione Oeste dos EUA.
  3. Selecione Rever e criar. Você deve ver um banner que diz Validação aprovada.
  4. Selecione Criar. Pode levar alguns minutos para criar o grupo de recursos.
  5. Assim como acontece com os recursos criados posteriormente neste tutorial, é uma boa ideia fixar esse grupo de recursos ao seu painel para facilitar o acesso. Se quiser fixar esse grupo de recursos, selecione o ícone de pino ao lado do nome.

Escolher uma região do Azure

Certifique-se de usar uma região do Azure com suporte. O canal Direct Line Speech usa o serviço de texto para fala, que tem vozes neurais e padrão. Vozes neurais são usadas nessas regiões do Azure e vozes padrão (desativação) são usadas nessas regiões do Azure.

Para obter mais informações sobre regiões, consulte Locais do Azure.

Criar recursos

Agora que você tem um grupo de recursos em uma região com suporte, a próxima etapa é criar recursos individuais para cada serviço que você usará neste tutorial.

Criar um recurso do serviço de Voz

  1. Vá para a página do portal do Azure para criar um recurso de serviço de Fala.
  2. Forneça as seguintes informações:
    • Para Name, recomendamos SpeechEchoBotTutorial-Speech como o nome do seu recurso.
    • Para Subscrição, certifique-se de que a opção Avaliação gratuita está selecionada.
    • Em Local, selecione West US.
    • Em Nível de preço, selecione F0. Este é o nível gratuito.
    • Para Grupo de recursos, selecione SpeechEchoBotTutorial-ResourceGroup.
  3. Depois de inserir todas as informações necessárias, selecione Criar. Pode levar alguns minutos para criar o recurso.
  4. Mais adiante neste tutorial, você precisa de chaves de assinatura para este serviço. Você pode acessar essas chaves a qualquer momento na área Visão geral do recurso (em Gerenciar chaves) ou na área Chaves.

Neste ponto, verifique se seu grupo de recursos (SpeechEchoBotTutorial-ResourceGroup) tem um recurso de serviço de fala:

Nome Tipo Location
SpeechEchoBotTutorial-Fala Voz E.U.A. Oeste

Criar um plano do Serviço de Aplicações do Azure

Um plano do Serviço de Aplicações define um conjunto de recursos de computação para a execução da aplicação Web.

  1. Vá para a página do portal do Azure para criar um plano do Serviço de Aplicativo do Azure.
  2. Forneça as seguintes informações:
    • Defina Subscrição como Avaliação Gratuita. (Você também pode usar uma assinatura existente.)
    • Para Grupo de recursos, selecione SpeechEchoBotTutorial-ResourceGroup.
    • Para Name, recomendamos SpeechEchoBotTutorial-AppServicePlan como o nome do seu plano.
    • Em Sistema Operacional, selecione Windows.
    • Em Região, selecione Oeste dos EUA.
    • Para Nível de preço, certifique-se de que Standard S1 está selecionado. Este deve ser o valor padrão. Se não estiver, defina Sistema Operacional como Windows.
  3. Selecione Rever e criar. Você deve ver um banner que diz Validação aprovada.
  4. Selecione Criar. Pode levar alguns minutos para criar o recurso.

Neste ponto, verifique se seu grupo de recursos (SpeechEchoBotTutorial-ResourceGroup) tem dois recursos:

Nome Tipo Location
SpeechEchoBotTutorial-AppServicePlan Plano do Serviço de Aplicações E.U.A. Oeste
SpeechEchoBotTutorial-Fala Serviços de IA do Azure E.U.A. Oeste

Crie um bot de eco

Agora que você criou recursos, comece com o exemplo de bot de eco, que ecoa o texto que você inseriu como resposta. O código de exemplo já está configurado para funcionar com o canal Direct Line Speech, que você conecta depois de implantar o bot no Azure.

Nota

As instruções a seguir, juntamente com mais informações sobre o bot de eco, estão disponíveis no LEIA-ME da amostra no GitHub.

Execute a amostra de bot na sua máquina

  1. Clone o repositório de amostras:

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

  3. Na barra de ferramentas, selecione Abrir Projeto/Solução de Arquivo>>. Em seguida, abra a solução do projeto:

    samples\csharp_dotnetcore\02.echo-bot\EchoBot.sln
    
  4. Depois que o projeto for carregado, selecione a tecla F5 para compilar e executar o projeto.

    No navegador que se abre, você vê uma tela semelhante a esta:

    Captura de tela que mostra a página do EchoBot com a mensagem de que seu bot está pronto.

Teste o exemplo de bot com o emulador do Bot Framework

O Bot Framework Emulator é um aplicativo de desktop que permite que os desenvolvedores de bots testem e depurem seus bots localmente (ou remotamente através de um túnel). O emulador aceita texto digitado como entrada (não voz). O bot também responde com texto.

Siga estas etapas para usar o Bot Framework Emulator para testar seu echo bot em execução localmente, com entrada e saída de texto. Depois de implantar o bot no Azure, você o testará com entrada e saída de voz.

  1. Instale o Bot Framework Emulator versão 4.3.0 ou posterior.

  2. Abra o Bot Framework Emulator e selecione File>Open Bot.

  3. Insira o URL do seu bot. Por exemplo:

    http://localhost:3978/api/messages
    
  4. Selecione Ligar.

  5. O bot deve cumprimentá-lo com uma mensagem "Olá e bem-vindo!". Digite qualquer mensagem de texto e confirme que você recebeu uma resposta do bot.

    Esta é a aparência de uma troca de comunicação com um bot de eco: A captura de tela mostra o Bot Framework Emulator.

Implantar seu bot no Serviço de Aplicativo do Azure

A próxima etapa é implantar o bot de eco no Azure. Há algumas maneiras de implantar um bot, incluindo a CLI do Azure e modelos de implantação. Este tutorial se concentra na publicação diretamente do Visual Studio.

Nota

Se Publicar não aparecer enquanto você executa as etapas a seguir, use o Visual Studio Installer para adicionar a carga de trabalho de ASP.NET e desenvolvimento da Web.

  1. No Visual Studio, abra o bot de eco que foi configurado para uso com o canal Direct Line Speech:

    samples\csharp_dotnetcore\02.echo-bot\EchoBot.sln
    
  2. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto EchoBot e selecione Publicar.

  3. Na janela Publicar que se abre:

    1. Selecione Azure>Next.
    2. Selecione Serviço de Aplicativo do Azure (Windows)>Avançar.
    3. Selecione Criar um novo Serviço de Aplicativo do Azure pelo sinal de adição verde.
  4. Quando a janela Serviço de Aplicativo (Windows) for exibida:

    • Selecione Adicionar uma conta e entre com suas credenciais de conta do Azure. Se já tiver sessão iniciada, selecione a sua conta na lista pendente.

    • Em Nome, insira um nome globalmente exclusivo para seu bot. Esse nome é usado para criar uma URL de bot exclusiva.

      Um nome padrão que inclui a data e a hora aparece na caixa (por exemplo, EchoBot20190805125647). Você pode usar o nome padrão para este tutorial.

    • Em Assinatura, selecione Avaliação gratuita.

    • Para Grupo de Recursos, selecione SpeechEchoBotTutorial-ResourceGroup.

    • Para Plano de hospedagem, selecione SpeechEchoBotTutorial-AppServicePlan.

  5. Selecione Criar. Na tela final do assistente, selecione Concluir.

  6. Selecione Publicar. O Visual Studio implanta o bot no Azure.

    Você verá uma mensagem de êxito na janela de saída do Visual Studio com esta aparência:

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

    Seu navegador padrão deve abrir e exibir uma página que diz: "Seu bot está pronto!"

Neste ponto, verifique seu grupo de recursos (SpeechEchoBotTutorial-ResourceGroup) no portal do Azure. Confirme se ele contém estes três recursos:

Nome Tipo Location
EchoBot20190805125647 Serviço de Aplicações E.U.A. Oeste
SpeechEchoBotTutorial-AppServicePlan Plano do Serviço de Aplicações E.U.A. Oeste
SpeechEchoBotTutorial-Fala Serviços de IA do Azure E.U.A. Oeste

Ativar soquetes da Web

Você precisa fazer uma pequena alteração de configuração para que seu bot possa se comunicar com o canal Direct Line Speech usando soquetes da Web. Siga estas etapas para habilitar os soquetes da Web:

  1. Vá para o portal do Azure e selecione seu recurso do Serviço de Aplicativo. O nome do recurso deve ser semelhante ao EchoBot20190805125647 (seu nome de aplicativo exclusivo).
  2. No painel esquerdo, em Configurações, selecione Configuração.
  3. Selecione a guia Configurações gerais .
  4. Encontre a alternância para soquetes da Web e defina-a como Ativado.
  5. Selecione Guardar.

Gorjeta

Você pode usar os controles na parte superior da página do Serviço de Aplicativo do Azure para parar ou reiniciar o serviço. Essa capacidade pode ser útil quando você está solucionando problemas.

Criar um registo de canal

Depois de criar um recurso do Serviço de Aplicativo do Azure para hospedar seu bot, a próxima etapa é criar um registro de canal. Criar um registro de canal é um pré-requisito para registrar seu bot com os canais do Bot Framework, incluindo o canal Direct Line Speech. Se você quiser saber mais sobre como os bots usam canais, consulte Conectar um bot a canais.

  1. Vá para a página do portal do Azure para criar um bot do Azure.
  2. Forneça as seguintes informações:
    • Para o identificador Bot, digite SpeechEchoBotTutorial-BotRegistration-####. Substitua #### por muitos a sua escolha.

      Nota

      O identificador do bot deve ser globalmente exclusivo. Se você inserir um e receber a mensagem de erro "O ID do bot solicitado não está disponível", escolha um número diferente. Os exemplos a seguir usam 8726.

    • Em Assinatura, selecione Avaliação gratuita.

    • Para Grupo de recursos, selecione SpeechEchoBotTutorial-ResourceGroup.

    • Em Local, selecione West US.

    • Em Nível de preço, selecione F0.

    • Ignore a ID e a senha do aplicativo de criação automática.

  3. Na parte inferior do painel Bot do Azure, selecione Criar.
  4. Depois de criar o recurso, abra seu recurso SpeechEchoBotTutorial-BotRegistration-#### no portal do Azure.
  5. Na área Configurações, selecione Configuração.
  6. Em Ponto de extremidade de mensagens, insira a URL do seu aplicativo Web com o caminho /api/messages anexado. Por exemplo, se o nome do seu aplicativo globalmente exclusivo fosse EchoBot20190805125647, seu ponto de extremidade de mensagens seria https://EchoBot20190805125647.azurewebsites.net/api/messages/.

Neste ponto, verifique seu grupo de recursos (SpeechEchoBotTutorial-ResourceGroup) no portal do Azure. Deve agora apresentar pelo menos quatro recursos:

Nome Tipo Location
EchoBot20190805125647 Serviço de Aplicações E.U.A. Oeste
SpeechEchoBotTutorial-AppServicePlan Plano do Serviço de Aplicações E.U.A. Oeste
SpeechEchoBotTutorial-BotRegistration-8726 Serviço de Bot Global
SpeechEchoBotTutorial-Fala Serviços de IA do Azure E.U.A. Oeste

Importante

O recurso Serviço de Bot de IA do Azure mostra a região Global, mesmo que você tenha selecionado Oeste dos EUA. Isto é esperado.

Opcional: Teste no chat da Web

A página Bot do Azure tem uma opção Testar no Chat da Web em Configurações. Ele não funciona por padrão com seu bot porque o bate-papo da Web precisa ser autenticado em seu bot.

Se você quiser testar seu bot implantado com entrada de texto, use as etapas a seguir. Essas etapas são opcionais e não são necessárias para que você continue com o tutorial.

  1. No portal do Azure, localize e abra seu recurso EchoBotTutorial-BotRegistration-####.

  2. Na área Configurações, selecione Configuração. Copie o valor em ID do Aplicativo Microsoft.

  3. Abra a solução Visual Studio EchoBot. No Gerenciador de Soluções, localize e selecione duas vezes appsettings.json.

  4. Substitua a cadeia de caracteres vazia ao lado de MicrosoftAppId no arquivo JSON pelo valor de ID copiado.

  5. Regresse ao portal do Azure. Na área Configurações, selecione Configuração. Em seguida, selecione Gerenciar ao lado de ID do Aplicativo Microsoft.

  6. Selecione Novo segredo do cliente. Adicione uma descrição (por exemplo, bate-papo na Web) e selecione Adicionar. Copie o novo segredo.

  7. Substitua a cadeia de caracteres vazia ao lado de MicrosoftAppPassword no arquivo JSON pelo valor secreto copiado.

  8. Salve o arquivo JSON. Deve ser algo parecido com este código:

    {
      "MicrosoftAppId": "YourAppId",
      "MicrosoftAppPassword": "YourAppPassword"
    }
    
  9. Republicar o aplicativo: clique com o botão direito do mouse no projeto EchoBot no Gerenciador de Soluções do Visual Studio, selecione Publicar e selecione o botão Publicar .

Registar o canal Direct Line Speech

Agora é hora de registrar seu bot no canal Direct Line Speech. Esse canal cria uma conexão entre seu bot e um aplicativo cliente compilado com o SDK de fala.

  1. No portal do Azure, localize e abra seu recurso SpeechEchoBotTutorial-BotRegistration-####.

  2. Na área Configurações, selecione Canais e siga as seguintes etapas:

    1. Em Mais canais, selecione Fala em Linha Direta.
    2. Revise o texto na página Configurar Fala de Linha Direta e expanda o menu suspenso Conta de serviço cognitivo.
    3. Selecione o recurso de serviço de fala que você criou anteriormente (por exemplo, SpeechEchoBotTutorial-Speech) no menu para associar seu bot à sua chave de assinatura.
    4. Ignore o resto dos campos opcionais.
    5. Selecione Guardar.
  3. Na área Configurações, selecione Configuração e siga as seguintes etapas:

    1. Marque a caixa de seleção Ativar ponto de extremidade de streaming. Esta etapa é necessária para criar um protocolo de comunicação construído em soquetes da Web entre seu bot e o canal Direct Line Speech.
    2. Selecione Guardar.

Se quiser saber mais, consulte Conectar um bot ao Direct Line Speech.

Executar o cliente do Windows Voice Assistant

O Windows Voice Assistant Client é um aplicativo do Windows Presentation Foundation (WPF) em C# que usa o SDK de fala para gerenciar a comunicação com seu bot por meio do canal Direct Line Speech. Use-o para interagir e testar seu bot antes de escrever um aplicativo cliente personalizado. É de código aberto, então você pode baixar o arquivo executável e executá-lo, ou construí-lo você mesmo.

O Windows Voice Assistant Client tem uma interface do usuário simples que permite configurar a conexão com seu bot, exibir a conversa de texto, exibir atividades do Bot Framework no formato JSON e exibir cartões adaptáveis. Ele também suporta o uso de palavras-chave personalizadas. Você usa esse cliente para falar com seu bot e receber uma resposta de voz.

Nota

Neste ponto, confirme se o microfone e os alto-falantes estão ativados e funcionando.

  1. Vá para o repositório GitHub para o Windows Voice Assistant Client.

  2. Siga as instruções fornecidas para:

    • Baixe um arquivo executável pré-construído em um pacote de .zip para executar
    • Crie o arquivo executável você mesmo, clonando o repositório e construindo o projeto
  3. Abra o aplicativo cliente VoiceAssistantClient.exe e configure-o para se conectar ao seu bot, seguindo as instruções no repositório GitHub.

  4. Selecione Reconectar e verifique se você vê a mensagem "Nova conversa iniciada - digite ou pressione o botão do microfone".

  5. Vamos testá-lo. Selecione o botão do microfone e fale algumas palavras em inglês. O texto reconhecido aparece enquanto você fala. Quando você termina de falar, o bot responde em sua própria voz, dizendo "eco" seguido das palavras reconhecidas.

    Você também pode usar texto para se comunicar com o bot. Basta digitar o texto na barra inferior.

Solucionar erros no cliente do Windows Voice Assistant

Se você receber uma mensagem de erro na janela principal do aplicativo, use esta tabela para identificar e solucionar o problema:

Mensagem O que deve fazer?
Erro (AuthenticationFailure): WebSocket Upgrade falhou com um erro de autenticação (401). Verifique se a chave de recurso (ou token de autorização) e o nome da região estão corretos Na página Configurações do aplicativo, verifique se você inseriu a chave e sua região corretamente.
Erro (ConnectionFailure): A conexão foi fechada pelo host remoto. Código de erro: 1011. Detalhes do erro: Não foi possível conectar-se ao bot antes de enviar uma mensagem Certifique-se de que selecionou a caixa de verificação Ativar Ponto Final de Streaming e/ou ativou os soquetes Web.
Verifique se o Serviço de Aplicativo do Azure está em execução. Se estiver, tente reiniciá-lo.
Erro (ConnectionFailure): A conexão foi fechada pelo host remoto. Código de erro: 1002. Detalhes do erro: O servidor retornou o código de status '503' quando o código de status '101' era esperado Certifique-se de que selecionou a caixa de verificação Ativar Ponto Final de Streaming e/ou ativou os soquetes Web.
Verifique se o Serviço de Aplicativo do Azure está em execução. Se estiver, tente reiniciá-lo.
Erro (ConnectionFailure): A conexão foi fechada pelo host remoto. Código de erro: 1011. Detalhes do erro: O código de status da resposta não indica sucesso: 500 (InternalServerError) Seu bot especificou uma voz neural no campo de fala de sua atividade de saída, mas a região do Azure associada à sua chave de recurso não oferece suporte a vozes neurais. Veja vozes neurais e vozes padrão.

Se as ações na tabela não resolverem o problema, consulte Assistentes de voz: perguntas frequentes. Se você ainda não conseguir resolver o problema depois de seguir todas as etapas deste tutorial, insira um novo problema na página GitHub do Assistente de Voz.

Uma observação sobre o tempo limite de conexão

Se você estiver conectado a um bot e nenhuma atividade tiver acontecido nos últimos cinco minutos, o serviço fechará automaticamente a conexão do soquete da Web com o cliente e com o bot. Esta ação é propositada. Uma mensagem aparece na barra inferior: "A conexão ativa expirou, mas está pronta para se reconectar sob demanda".

Não é necessário selecionar o botão Reconectar . Pressione o botão do microfone e comece a falar, digite uma mensagem de texto ou diga a palavra-chave (se estiver ativada). A conexão é restabelecida automaticamente.

Ver atividades do bot

Cada bot envia e recebe mensagens de atividade. Na janela Registro de atividades do cliente do Windows Voice Assistant, os logs com carimbo de data/hora mostram cada atividade que o cliente recebeu do bot. Você também pode ver as atividades que o cliente enviou para o bot usando o método DialogServiceConnector.SendActivityAsync . Quando você seleciona um item de log, ele mostra os detalhes da atividade associada como JSON.

Aqui está um exemplo de JSON de uma atividade que o cliente recebeu:

{
    "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 saber mais sobre o que é retornado na saída JSON, consulte os campos na atividade. Para este tutorial, você pode se concentrar nos campos de texto e fala .

Exibir o código-fonte do cliente para chamadas para o SDK de fala

O Windows Voice Assistant Client usa o pacote NuGet Microsoft.CognitiveServices.Speech, que contém o SDK de Fala. Um bom lugar para começar a revisar o código de exemplo é o método InitSpeechConnector() no arquivo VoiceAssistantClient\MainWindow.xaml.cs, que cria estes dois objetos Speech SDK:

  • DialogServiceConfig: Para definições de configuração como chave de recurso e sua região.
  • DialogServiceConnector: Para gerenciar a conexão do canal e os eventos de assinatura do cliente para lidar com respostas de fala e bot reconhecidas.

Adicionar ativação de palavras-chave personalizadas

O SDK de fala suporta ativação de palavra-chave personalizada. Semelhante a "Hey Cortana" para um assistente da Microsoft, você pode escrever um aplicativo que ouvirá continuamente uma palavra-chave de sua escolha. Tenha em mente que uma palavra-chave pode ser uma única palavra ou uma frase de várias palavras.

Nota

O termo palavra-chave é frequentemente usado de forma intercambiável com o termo palavra despertar. Você pode ver ambos usados na documentação da Microsoft.

A deteção de palavras-chave acontece no aplicativo cliente. Se você estiver usando uma palavra-chave, o áudio será transmitido para o canal Direct Line Speech somente se a palavra-chave for detetada. O canal Direct Line Speech inclui um componente chamado verificação de palavra-chave, que faz um processamento mais complexo na nuvem para verificar se a palavra-chave escolhida está no início do fluxo de áudio. Se a verificação de palavras-chave for bem-sucedida, o canal se comunicará com o bot.

Siga estas etapas para criar um modelo de palavra-chave, configurar o Windows Voice Assistant Client para usar esse modelo e testá-lo com seu bot:

  1. Crie uma palavra-chave personalizada usando o serviço de fala.
  2. Descompacte o arquivo de modelo que você baixou na etapa anterior. Deve ser nomeado para a sua palavra-chave. Você está procurando um arquivo chamado kws.table.
  3. No Windows Voice Assistant Client, localize o menu Configurações (o ícone de engrenagem no canto superior direito). Em Caminho do arquivo de modelo, insira o nome completo do caminho para o arquivo kws.table da etapa 2.
  4. Marque a caixa de seleção Habilitado . Você verá esta mensagem ao lado da caixa de seleção: "Ouvirá a palavra-chave na próxima conexão". Se você forneceu o arquivo errado ou um caminho inválido, você verá uma mensagem de erro.
  5. Insira os valores para Chave de assinatura e Região de chave de assinatura e selecione OK para fechar o menu Configurações .
  6. Selecione Reconectar. Você verá uma mensagem que diz: "Nova conversa iniciada - digite, pressione o botão do microfone ou diga a palavra-chave". O aplicativo agora está ouvindo continuamente.
  7. Fale qualquer frase que comece com a sua palavra-chave. Por exemplo: "{sua palavra-chave}, que horas são?" Você não precisa fazer uma pausa depois de pronunciar a palavra-chave. Quando você termina, duas coisas acontecem:
    • Você vê uma transcrição do que você falou.
    • Você ouve a resposta do bot.
  8. Continue a experimentar os três tipos de entrada suportados pelo bot:
    • Inserir texto na barra inferior
    • Pressionar o ícone do microfone e falar
    • Dizer uma frase que começa com a sua palavra-chave

Veja o código-fonte que permite a deteção de palavras-chave

No código-fonte do Windows Voice Assistant Client, use estes arquivos para revisar o código que permite a deteção de palavra-chave:

Opcional: altere o idioma e a voz do bot

O bot que você criou ouvirá e responderá em inglês, com um texto padrão em inglês dos EUA para voz de fala. No entanto, você não está limitado a usar o inglês ou uma voz padrão.

Nesta seção, você aprenderá a alterar o idioma em que seu bot ouve e responde. Você também aprende a selecionar uma voz diferente para esse idioma.

Alterar o idioma

Você pode escolher entre qualquer um dos idiomas mencionados na tabela de fala para texto . O exemplo a seguir altera o idioma para alemão.

  1. Abra o aplicativo Cliente do Windows Voice Assistant, selecione o botão Configurações (ícone de engrenagem no canto superior direito) e digite de-de no campo Idioma . Este é o valor de localidade mencionado na tabela de fala para texto .

    Esta etapa define o idioma falado para ser reconhecido, substituindo o padrão en-us. Ele também instrui o canal Direct Line Speech a usar uma voz padrão em alemão para a resposta do bot.

  2. Feche a página Configurações e selecione o botão Reconectar para estabelecer uma nova conexão com seu echo bot.

  3. Selecione o botão do microfone e diga uma frase em alemão. O texto reconhecido é exibido e o bot de eco responde com a voz alemã padrão.

Alterar a voz padrão do bot

Você pode selecionar a voz de texto para fala e controlar a pronúncia se o bot especificar a resposta na forma de uma SSML (Speech Synthesis Markup Language) em vez de texto simples. O bot de eco não usa SSML, mas você pode modificar facilmente o código para fazer isso.

O exemplo a seguir adiciona SSML à resposta do bot de eco para que a voz de-DE-RalfNeural alemã (uma voz masculina) seja usada em vez da voz feminina padrão. Consulte a lista de vozes padrão e a lista de vozes neurais suportadas para o seu idioma.

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

  2. Encontre estas linhas:

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

    Substitua-os por este 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. Crie sua solução no Visual Studio e corrija quaisquer erros de compilação.

O segundo argumento no método MessageFactory.Text define o campo de fala de atividade na resposta do bot. Com a alteração anterior, ele é substituído de texto simples para SSML, a fim de especificar uma voz alemã não padrão.

Reimplantar seu bot

Agora que você fez a alteração necessária no bot, a próxima etapa é republicá-lo no Serviço de Aplicativo do Azure e experimentá-lo:

  1. Na janela Gerenciador de Soluções, clique com o botão direito do mouse no projeto EchoBot e selecione Publicar.

  2. Sua configuração de implantação anterior já foi carregada como padrão. Selecione Publicar ao lado de EchoBot20190805125647 - Web Deploy.

    A mensagem Publicar com êxito aparece na janela de saída do Visual Studio e uma página da Web é aberta com a mensagem "Seu bot está pronto!"

  3. Abra o aplicativo Cliente do Windows Voice Assistant. Selecione o botão Configurações (ícone de engrenagem no canto superior direito) e certifique-se de que você ainda tem de-de no campo Idioma .

  4. Siga as instruções em Executar o cliente do Windows Voice Assistant para se reconectar com o bot recém-implantado, falar no novo idioma e ouvir a resposta do bot nesse idioma com a nova voz.

Clean up resources (Limpar recursos)

Se você não quiser continuar usando o bot de eco implantado neste tutorial, poderá removê-lo e todos os seus recursos associados do Azure excluindo o grupo de recursos do Azure:

  1. No portal do Azure, selecione Grupos de Recursos em Serviços do Azure.
  2. Encontre o grupo de recursos SpeechEchoBotTutorial-ResourceGroup . Selecione os três pontos (...).
  3. Selecione Eliminar grupo de recursos.

Explorar a documentação

Próximos passos