Tutorial: habilitar o bot para voz
Você pode usar a Fala de IA do Azure para habilitar um bot de bate-papo por voz.
Neste tutorial, você usará o Microsoft Bot Framework para criar um bot que responde ao que você diz. Você implantará seu bot no Azure e o registrará no canal da Direct Line Speech do Bot Framework. Em seguida, você configurará um aplicativo cliente de exemplo para o Windows que lhe permite falar com o bot e ouvir ele responder a você.
Para concluir o tutorial, você não precisa de ampla experiência ou familiaridade com o Azure, bots do Bot Framework ou o Direct Line Speech.
O chatbot habilitado por voz que você fará neste tutorial segue estas etapas:
- O aplicativo cliente de exemplo está configurado para se conectar ao canal da Direct Line Speech e ao echo bot.
- Quando o usuário pressiona um botão, os áudios de voz são transmitidos pelo microfone. Ou o áudio é gravado continuamente quando uma palavra-chave personalizada é usada.
- Se uma palavra-chave personalizada for usada, a detecção de palavras-chave ocorrerá no dispositivo local, direcionando o streaming de áudio para a nuvem.
- O aplicativo cliente de exemplo usa o SDK de Fala para se conectar ao canal do Direct Line Speech e transmitir áudio.
- Opcionalmente, uma verificação de palavra-chave com maior precisão ocorre no serviço.
- O áudio é passado para o serviço de reconhecimento de fala e transcrito para texto.
- O texto reconhecido é passado para o echo bot como uma atividade do Bot Framework.
- O texto de resposta é transformado em áudio pelo serviço de TTS (conversão de texto em fala) e transmitido de volta ao aplicativo cliente para reprodução.
Observação
As etapas deste 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 a camada gratuita do serviço de Fala para concluir este tutorial.
Este tutorial abrange:
- Criar novos recursos do Azure.
- Compilar, testar e implantar o exemplo de echo bot em um Serviço de Aplicativo do Azure.
- Registrar seu bot com um canal da Direct Line Speech.
- Compilar e executar o Cliente do Assistente de Voz do Windows para interagir com o seu echo bot.
- Adicionar ativação por palavra-chave personalizada.
- Aprender a alterar o idioma da linguagem reconhecida e falada.
Pré-requisitos
Veja o que é necessário para concluir este tutorial:
- Um PC com Windows 10 com microfone e alto-falantes (ou fones de ouvido) funcionando.
- Visual Studio 2017 ou superior, com a carga de trabalho do ASP.NET e de desenvolvimento Web instalada.
- .NET Framework Runtime 4.6.1 ou superior.
- Uma conta do Azure. Inscreva-se gratuitamente.
- Uma conta do GitHub.
- Git para Windows.
Criar um grupo de recursos
O aplicativo cliente que você criará neste tutorial usa uma série de serviços do Azure. Para reduzir o tempo de ida e volta das respostas do bot, esses serviços devem estar na mesma região do Azure.
Esta seção explica como criar um grupo de recursos na região Oeste dos EUA. Você usa esse grupo de recursos ao criar recursos individuais para o Bot Framework, o canal da Direct Line Speech e o serviço de Fala.
- Vá para a página portal do Azure para criar um grupo de recursos.
- Forneça as seguintes informações:
- Definir a Assinatura para a Avaliação Gratuita. (Você também pode usar uma assinatura existente.)
- Insira um nome para Grupo de recursos. Recomendamos SpeechEchoBotTutorial-ResourceGroup.
- No menu suspenso Região, selecione Oeste dos EUA.
- Selecione Examinar e criar. Você verá uma faixa com o texto Validação aprovada.
- Selecione Criar. Pode levar alguns minutos para criar o grupo de recursos.
- Assim como para os outros recursos que você criará posteriormente neste tutorial, é uma boa ideia fixar esse grupo de recursos no seu painel para facilitar o acesso. Se você quiser fixar esse grupo de recursos, selecione o ícone fixar ao lado do nome.
Escolher uma região do Azure
Verifique se está usando uma região do Azure com suporte. O canal da Direct Line Speech usa o serviço de conversão de texto em fala, que tem vozes neural e padrão. As sintetizações de voz são usadas nessas regiões do Azuree as vozes padrão (em desativação) são usadas nessas regiões do Azure.
Para obter mais informações sobre as regiões, confira localizações 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 Fala
- Vá para a página do portal do Azure para criar um recurso do serviço de Fala.
- Forneça as seguintes informações:
- Para Nome, recomendamos SpeechEchoBotTutorial-Speech como o nome do recurso.
- Para Assinatura, verifique se a Avaliação Gratuita está selecionada.
- Para Localização, selecione Oeste dos EUA.
- Para Tipo de preço, selecione F0. Essa é a camada gratuita.
- Para Grupo de recursos, selecione SpeechEchoBotTutorial-ResourceGroup.
- Após inserir todas as informações necessárias, clique em Criar. Pode levar alguns minutos para criar o recurso.
- Posteriormente, neste tutorial, você precisará de chaves de assinatura para esse serviço. Você pode acessar as chaves a qualquer momento na área Visão geral do recurso (em Gerenciar chaves) ou na área Chaves.
Neste ponto, verifique se o seu grupo de recursos (SpeechEchoBotTutorial-ResourceGroup) tem um recurso do serviço de Fala:
Nome | Tipo | Location |
---|---|---|
SpeechEchoBotTutorial-Speech | Fala | Oeste dos EUA |
Criar um Plano do Serviço de Aplicativo do Azure
Um plano de serviço de aplicativo define um conjunto de recursos de computação para um aplicativo Web ser executado.
- Vá para a página do portal do Azure para criar um plano do Serviço de Aplicativo do Azure.
- Forneça as seguintes informações:
- Definir a Assinatura para a Avaliação Gratuita. (Você também pode usar uma assinatura existente.)
- Para Grupo de recursos, selecione SpeechEchoBotTutorial-ResourceGroup.
- Para Nome, recomendamos SpeechEchoBotTutorial-AppServicePlan como o nome do plano.
- Para Sistema Operacional, selecione Windows.
- Para Região, selecione Oeste dos EUA.
- Para Tipo de preço, verifique se Padrão S1 está selecionado. Esse deve ser o valor padrão. Se não for, defina Sistema operacional como Windows.
- Selecione Examinar e criar. Você verá uma faixa com o texto Validação aprovada.
- Selecione Criar. Pode levar alguns minutos para criar o recurso.
Neste ponto, verifique se o seu grupo de recursos (SpeechEchoBotTutorial-ResourceGroup) tem dois recursos:
Nome | Tipo | Location |
---|---|---|
SpeechEchoBotTutorial-AppServicePlan | Plano do Serviço de Aplicativo | Oeste dos EUA |
SpeechEchoBotTutorial-Speech | Serviços de IA do Azure | Oeste dos EUA |
Compilar um echo bot
Agora que você criou os recursos, comece com o exemplo do echo bot, que ecoa o texto que você inseriu como resposta. O código de exemplo já está configurado para funcionar com o canal da Direct Line Speech, com o qual você se conecta após implantar o bot no Azure.
Observação
As instruções a seguir, além de mais informações sobre o echo bot, estão disponíveis no LEIAME de exemplo no GitHub.
Executar o exemplo de bot no seu computador
Clonar o repositório de exemplos:
git clone https://github.com/Microsoft/botbuilder-samples.git
Abra o Visual Studio.
Na barra de ferramentas, selecione Arquivo>Abrir>Projeto/Solução. Em seguida, abra a solução de projeto:
samples\csharp_dotnetcore\02.echo-bot\EchoBot.sln
Depois que o projeto for carregado, selecione F5 para compilar e executar o projeto.
No navegador que será aberto, você verá uma tela semelhante a esta:
Testar o exemplo de bot com o Bot Framework Emulator
O Bot Framework Emulator é um aplicativo da área de trabalho que permite aos desenvolvedores de bot testar e depurar os bots deles localmente (ou remotamente, por meio 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 de texto e saída de texto. Depois de implantar o bot no Azure, você o testará com entrada de voz e saída de voz.
Instale o Bot Framework Emulator versão 4.3.0 ou superior.
Abra o Bot Framework Emulator e selecione Arquivo>Abrir Bot.
Insira a URL para o seu bot. Por exemplo:
http://localhost:3978/api/messages
Selecione Conectar.
O bot deve cumprimentar você com uma mensagem "Olá e boas-vindas!". Digite qualquer mensagem de texto e confirme que você recebeu uma resposta do bot.
Essa deve ser a aparência de uma troca de comunicação com uma instância do echo bot:
Implantar seu bot em um Serviço de Aplicativo do Azure
A etapa seguinte é implantar o echo bot no Azure. Há algumas maneiras de implantar um bot, incluindo a CLI do Azure e os modelos de implantação. Este tutorial se concentra na publicação diretamente do Visual Studio.
Observação
Se a opção Publicar não aparecer à medida que você executar as etapas a seguir, use o Instalador do Visual Studio para adicionar a carga de trabalho ASP.NET e de desenvolvimento Web.
No Visual Studio, abra o echo bot que foi configurado para uso com o canal da Direct Line Speech:
samples\csharp_dotnetcore\02.echo-bot\EchoBot.sln
No Gerenciador de Soluções, clique com o botão direito do mouse no projeto EchoBot e selecione Publicar.
Na janela Publicar que será aberta:
- Selecione Azure>Avançar.
- Selecione Serviço de Aplicativo do Azure (Windows)> Avançar.
- Selecione Criar um novo Serviço de Aplicativo do Azure pelo sinal de mais verde.
Quando a janela do Serviço de Aplicativo (Windows) for exibida:
Selecione Adicionar uma conta e entre com suas credenciais de conta do Azure. Se você já estiver conectado, selecione a sua conta na lista suspensa.
Para Nome insira um nome exclusivo globalmente para seu bot. Esse nome será usado para criar uma URL exclusiva para o seu bot.
Um nome padrão que inclui a data e hora é exibido na caixa (por exemplo, EchoBot20190805125647). Neste tutorial, você pode usar o nome padrão.
Para Assinatura, selecione Avaliação Gratuita.
Para Grupo de Recursos, selecione SpeechEchoBotTutorial-ResourceGroup.
Para Plano de Hospedagem, selecione SpeechEchoBotTutorial-AppServicePlan.
Selecione Criar. Na tela final do assistente, selecione Concluir.
Selecione Publicar. O Visual Studio implanta o bot no Azure.
Você verá uma mensagem de sucesso na janela de saída do Visual Studio que tem esta aparência:
Publish Succeeded. Web App was published successfully https://EchoBot20190805125647.azurewebsites.net/
O navegador padrão deve abrir e exibir uma página com o texto: "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 Aplicativo | Oeste dos EUA |
SpeechEchoBotTutorial-AppServicePlan | Plano do Serviço de Aplicativo | Oeste dos EUA |
SpeechEchoBotTutorial-Speech | Serviços de IA do Azure | Oeste dos EUA |
Habilitar soquetes Web
Você precisará fazer uma pequena alteração de configuração para que o bot possa se comunicar com o canal da Direct Line Speech usando soquetes da Web. Siga estas etapas para habilitar os WebSockets:
- Acesse o portal do Azure e selecione o recurso do seu Serviço de Aplicativo. O nome do recurso deve ser semelhante a EchoBot20190805125647 (seu nome de aplicativo exclusivo).
- No painel à esquerda, em Configurações, selecione Configuração.
- Selecione a guia Configurações Gerais.
- Encontre a alternância para Soquetes da Web e defina-o como Ativado.
- Selecione Salvar.
Dica
Você pode usar os controles da parte superior da página do Serviço de Aplicativo do Azure para interromper ou reiniciar o serviço. Essa capacidade pode ser útil quando você estiver solucionando problemas.
Criar um registro de canal
Após criar um recurso do Serviço de Aplicativo do Azure para hospedar o seu bot, a próxima etapa é criar um registro de canal. A criação de um registro de canal é um pré-requisito para registrar seu bot com canais do Bot Framework, incluindo o canal da Direct Line Speech. Se quiser saber mais sobre como os bots usam canais, confira Conectar um bot aos canais.
- Vá para a página do portal do Azure para criar um bot do Azure.
- Forneça as seguintes informações:
Para Bot handle, inserir SpeechEchoBotTutorial-BotRegistration-####. Substitua #### com outro de sua escolha.
Observação
O identificador do bot deve ser globalmente exclusivo. Se você inserir um e receber a mensagem "A ID de bot solicitada não está disponível", escolha outro número. Os exemplos a seguir usam 8726.
Para Assinatura, selecione Avaliação Gratuita.
Para Grupo de recursos, selecione SpeechEchoBotTutorial-ResourceGroup.
Para Localização, selecione Oeste dos EUA.
Para Tipo de preço, selecione F0.
Ignore Criar automaticamente a senha e a ID do Aplicativo.
- Na parte inferior do painel Bot do Azure, selecione Criar.
- Após a criação do recurso, abra o recurso SpeechEchoBotTutorial-BotRegistration-#### no portal do Azure.
- Na área Configurações, selecione Configuração.
- Para Ponto de extremidade de mensagens, insira a URL para seu aplicativo Web com o caminho /api/messages anexado. Por exemplo, se o nome globalmente exclusivo do aplicativo 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. Agora, ele deve mostrar pelo menos quatro recursos:
Nome | Tipo | Location |
---|---|---|
EchoBot20190805125647 | Serviço de Aplicativo | Oeste dos EUA |
SpeechEchoBotTutorial-AppServicePlan | Plano do Serviço de Aplicativo | Oeste dos EUA |
SpeechEchoBotTutorial-BotRegistration-8726 | Serviço de Bot | Global |
SpeechEchoBotTutorial-Speech | Serviços de IA do Azure | Oeste dos EUA |
Importante
O recurso do Serviço de Bot de IA do Azure mostra a região Global, mesmo que você tenha selecionado Oeste dos EUA. Isso é esperado.
Opcional: testar no webchat
A página Bot do Azure tem uma opção Teste no Webchat em Configurações. Ele não funciona por padrão com o seu bot, uma vez que o webchat precisa se autenticar no seu bot.
Se desejar testar o bot implantado com entrada de texto, use as etapas a seguir. Essas etapas são opcionais e não são necessárias para continuar com o tutorial.
No portal do Azure, encontre e abra o recurso EchoBotTutorial-BotRegistration-# # # #.
Na área Configurações, selecione Configuração. Copie o valor em ID do Aplicativo da Microsoft.
Abra a solução Visual Studio EchoBot. No Gerenciador de Soluções, encontre e selecione duas vezes o appsettings.json.
Substitua a cadeia de caracteres vazia ao lado de MicrosoftAppId no arquivo JSON pelo valor de ID copiado.
Retorne ao portal do Azure. Na área Configurações, selecione Configuração. Em seguida, selecione Gerenciar ao lado da ID do aplicativo da Microsoft.
Selecione Novo segredo do cliente. Adicione uma descrição (por exemplo, web chat) e selecione Adicionar. Copie o novo segredo.
Substitua a cadeia de caracteres vazia ao lado de MicrosoftAppPassword no arquivo JSON com o valor do segredo copiado.
Salve o arquivo JSON. O resultado deve ser semelhante a esse código:
{ "MicrosoftAppId": "YourAppId", "MicrosoftAppPassword": "YourAppPassword" }
Publicar o aplicativo novamente: clique com o botão direito do mouse no projeto EchoBot no Gerenciador de Soluções do Visual Studio, selecione Publicar e, em seguida, selecione o botão Publicar.
Registrar o canal da Direct Line Speech
Agora é hora de registrar seu bot com o canal da Direct Line Speech. Esse canal cria uma conexão entre o bot e um aplicativo cliente compilado com o SDK de fala.
No portal do Azure, encontre e abra seu recurso SpeechEchoBotTutorial-BotRegistration-####.
Na área de Configurações, selecione Canais e execute as etapas a seguir:
- Em Mais canais, clique em Direct Line Speech.
- Examine o texto na página Configurar a Direct Line Speech e, em seguida, expanda o menu suspenso Conta do serviço cognitivo.
- Selecione o recurso do serviço de Fala que você criou anteriormente (por exemplo, SpeechEchoBotTutorial-Speech) no menu para associar seu bot à chave de assinatura.
- Ignore o restante dos campos opcionais.
- Selecione Salvar.
Na área de Configurações, selecione Configuração e execute as etapas a seguir:
- Selecione a caixa de seleção Habilitar ponto de extremidade de streaming. Essa etapa é necessária para criar um protocolo de comunicação baseado em soquetes Web entre o bot e o canal da Direct Line Speech.
- Selecione Salvar.
Se você quiser saber mais, confira Conectar um bot à Direct Line Speech.
Executar o cliente do assistente de voz do Windows
O Cliente Assistente de Voz Windows é um aplicativo do WPF (Windows Presentation Foundation) em C# que usa o SDK de Fala para gerenciar a comunicação com o seu bot usando o canal da Direct Line Speech. Use-o para interagir com o seu bot e para testá-lo antes de gravar um aplicativo cliente personalizado. Ele é software livre, então você pode baixar o executável e usá-lo ou compilá-lo por conta própria.
O cliente do assistente de voz do Windows tem uma interface do usuário simples que permite configurar a conexão com o bot, exibir a conversa de texto, exibir as atividades do Bot Framework no formato JSON e exibir cartões adaptáveis. Ele também dá suporte ao uso de palavras-chave personalizadas. Você usa esse cliente para falar com o bot e receber uma resposta de voz.
Observação
Neste ponto, confirme se o microfone e os alto-falantes estão habilitados e funcionando.
Vá para o repositório do GitHub para o Cliente do Assistente de Voz do Windows.
Siga as instruções fornecidas para:
- Baixar um arquivo executável predefinido em um pacote .zip para executar
- Compilar o executável por conta própria, clonando o repositório e compilando o projeto
Abra o aplicativo cliente VoiceAssistantClient.exe e configure-o para se conectar ao bot, seguindo as instruções no repositório do GitHub.
Selecione Reconectar e verifique se você vê a mensagem "Nova conversa iniciada – digite ou pressione o botão do microfone".
Vamos testá-lo. Selecione no botão do microfone e fale algumas palavras em inglês. O texto reconhecido é exibido à medida que você falar. Quando terminar de falar, o bot responderá com a voz dele, dizendo "eco" e depois as palavras reconhecidas.
Você também pode usar texto para se comunicar com o bot. Basta digitar o texto na barra inferior.
Solucionar problemas de erros no Cliente do Assistente de Voz do Windows
Se receber uma mensagem de erro na janela do aplicativo principal, use esta tabela para identificar e solucionar o problema:
Mensagem | O que você deve fazer? |
---|---|
Erro (AuthenticationFailure): falha na atualização do WebSocket com um erro de autenticação (401). Verificar se a chave de recurso (ou o token de autorização) e o nome da região estão corretos | Na página Configurações do aplicativo, certifique-se de que você inseriu a chave e sua região corretamente. |
Erro (ConnectionFailure): a conexão foi encerrada pelo host remoto. Código de erro: 1011. Detalhes do erro: não foi possível se conectar ao bot antes de enviar uma mensagem | Certifique-se de que você selecionou a caixa de seleção Habilitar ponto de extremidade de streaming e/ou que ativou os soquetes da Web. Verifique se o seu Serviço de Aplicativo do Azure está em execução. Se estiver, tente reiniciá-lo. |
Erro (ConnectionFailure): a conexão foi encerrada pelo host remoto. Código de erro: 1002. Detalhes do erro: o servidor retornou o código de status '503' quando era esperado o código de status '101' | Certifique-se de que você selecionou a caixa de seleção Habilitar ponto de extremidade de streaming e/ou que ativou os soquetes da Web. Verifique se o seu Serviço de Aplicativo do Azure está em execução. Se estiver, tente reiniciá-lo. |
Erro (ConnectionFailure): a conexão foi encerrada pelo host remoto. Código de erro: 1011. Detalhes do erro: o código de status de resposta não indica sucesso: 500 (InternalServerError) | O bot especificou uma voz neural no campo fala da atividade de saída, mas a região do Azure associada à sua chave de recurso não oferece suporte para vozes neurais. Confira sintetizações de voz e vozes padrão. |
Se as ações na tabela não resolverem o problema, consulte Assistentes de voz: perguntas frequentes. Se ainda não conseguir resolver o problema depois de seguir todas as etapas neste tutorial, insira um novo problema na página do Assistente de Voz do GitHub.
Uma observação sobre atingir 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 encerrará automaticamente a conexão do soquete da web com o cliente e com o bot. Isso ocorre por design. Uma mensagem é exibida na barra inferior: "A conexão ativa atingiu o tempo limite, mas está pronta para se reconectar sob demanda".
Você não precisa selecionar o botão Reconectar. Pressione o botão de microfone e comece a conversar, insira uma mensagem de texto ou diga a palavra-chave (se houver uma habilitada). A conexão é restabelecida automaticamente.
Exibir atividades de bot
Todo bot envia e recebe mensagens de atividade. Na janela Log de atividades do Cliente do Assistente de Voz do Windows, 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 do 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 do JSON, confira os campos na atividade. Neste tutorial, você pode se concentrar nos campos texto e fala.
Exibir o código-fonte do cliente para chamadas ao SDK de Fala
O Cliente do Assistente de Voz do Windows 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 esses dois objetos do SDK de Fala:
- DialogServiceConfig: para definições de configuração, como chave de recurso e região.
- DialogServiceConnector: Para gerenciar a conexão com o canal e os eventos de assinatura do cliente a fim de controlar as respostas reconhecidas de Fala e do bot.
Adicionar ativação por palavra-chave personalizada
O SDK de Fala dá suporte à ativação por palavra-chave personalizada. Semelhante à "Ei Cortana" para o Assistente da Microsoft, você pode escrever um aplicativo que escutará continuamente por uma palavra-chave de sua escolha. Tenha em mente que uma palavra-chave pode ser uma palavra única ou uma frase com várias palavras.
Observação
O termo palavra-chave é, frequentemente, usado de forma intercambiável com o termo palavra de ativação. Você pode ver ambos usados na documentação da Microsoft.
A detecção de palavras-chave ocorre no aplicativo cliente. Se você estiver usando uma palavra-chave, o áudio só será transmitido ao canal da Direct Line Speech se a palavra-chave configurada for detectada. O canal da Direct Line Speech inclui um componente chamado verificação de palavra-chave, que realiza processamentos mais complexos na nuvem para verificar se a palavra-chave que você escolheu está no início do fluxo de áudio. Se a verificação da palavra-chave for realizada com sucesso, então o canal se comunicará com o bot.
Siga estas etapas para criar um modelo de palavra-chave, configurar o Cliente do Assistente de Voz do Windows para usar esse modelo e testá-lo com o bot:
- Criar uma palavra-chave personalizada usando o serviço de Fala.
- Descompacte o arquivo de modelo que você baixou na etapa anterior. Ele deve ser nomeado conforme sua palavra-chave. Você deve procurar um arquivo chamado kws.table.
- No Cliente do Assistente de Voz do Windows, encontre o menu Configurações (ícone de engrenagem no canto superior direito). Para o caminho do arquivo de Modelo e insira o nome do caminho completo para o arquivo kws.table da etapa 2.
- Selecione a caixa de seleção Habilitado. Você deverá ver essa mensagem ao lado da caixa de seleção: "Escutará pela palavra-chave na próxima conexão". Se você forneceu o arquivo errado ou um caminho inválido, uma mensagem de erro será exibida.
- Insira os valores para Chave de assinatura e Região de chave de assinatura e, em seguida, selecione OK para fechar o menu Configurações.
- Selecione Reconectar. Você deverá ver uma mensagem que lê: "Nova conversa iniciada – digite, pressione o botão do microfone ou diga a palavra-chave". O aplicativo está ouvindo continuamente.
- 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 após dizer da palavra-chave. Ao terminar, duas coisas acontecem:
- Você verá uma transcrição do que você falou.
- Você ouve a resposta do bot.
- Faça novos experimentos com os três tipos de entrada aos quais o bot dá suporte:
- Inserindo texto na barra inferior
- Pressionando o ícone do microfone e falando
- Dizendo uma frase que começa com a sua palavra-chave
Exibir o código-fonte que habilita a detecção de palavra-chave
No código-fonte do Cliente do Assistente de Voz do Windows, use esses arquivos para examinar o código que habilita a detecção de palavra-chave:
- O VoiceAssistantClient\Models.cs inclui uma chamada para o método SDK de Fala KeywordRecognitionModel.fromFile(). Esse método é usado para criar uma instância do modelo de um arquivo local no disco.
- VoiceAssistantClient\MainWindow.xaml.cs inclui uma chamada para o método SDK de Fala DialogServiceConnector.StartKeywordRecognitionAsync(). Esse método ativa a detecção contínua de palavra-chave.
Opcional: Alterar o idioma e a voz do bot
O bot que você criou escutará e responderá em inglês, com uma voz de conversão de texto em fala padrão em inglês dos EUA. 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 que o bot usará para escutar e responder. Você também aprenderá a selecionar uma voz diferente para esse idioma.
Alterar o idioma
Você pode escolher entre qualquer um dos idiomas mencionados na tabela de conversão de fala em texto. O exemplo a seguir altera o idioma para alemão.
Abra o aplicativo Cliente do Assistente de Voz Windows, selecione o botão Configurações (ícone de engrenagem superior direito) e insira de-de no campo Idioma. Este é o valor de localidade mencionado na tabela de reconhecimento de fala.
Isso define o idioma falado a ser reconhecido, substituindo o padrão en-US. Isso também instrui o canal da Direct Line Speech a usar uma voz em alemão padrão para a resposta do bot.
Feche a página Configurações e, em seguida, selecione o botão Reconectar para estabelecer uma nova conexão com o seu Echo Bot.
Selecione o botão do microfone e diga uma frase em alemão. O texto reconhecido é exibido e o Echo Bot responde com a voz em alemão padrão.
Alterar a voz do bot padrão
Você pode selecionar a voz para conversão de texto em fala e o controle da pronúncia se o bot especificar a resposta na forma de uma SSML (Linguagem de Marcação de Síntese de Fala), em vez de texto simples. O Echo Bot não usa SSML, mas você pode facilmente modificar o código para fazer isso.
O exemplo a seguir adiciona SSML à resposta do Echo Bot, de modo que a voz em alemão de-DE-RalfNeural
(uma voz masculina) será usada, em vez da voz feminina padrão. Consulte a lista de vozes padrão e a lista de sintetizações de voz que têm suporte para o seu idioma.
Abra samples\csharp_dotnetcore\02.echo-bot\echo-bot.cs.
Encontre estas linhas:
var replyText = $"Echo: {turnContext.Activity.Text}"; await turnContext.SendActivityAsync(MessageFactory.Text(replyText, replyText), cancellationToken);
Substitua-as 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);
Crie sua solução no Visual Studio e corrija eventuais erros de build.
O segundo argumento no método MessageFactory.Text
define o campo de atividade de fala na resposta do bot. Com a alteração anterior, foi feita a substituição de texto simples para SSML para especificar uma voz em alemão não padrão.
Reimplantar o 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:
Na janela do Gerenciador de Soluções, clique com o botão direito do mouse no projeto EchoBot e selecione Publicar.
Sua configuração de implantação anterior já foi carregada como padrão. Selecione Publicar, ao lado de EchoBot20190805125647 – Implantação da Web.
A mensagem Publicação com êxito será exibida na janela de saída do Visual Studio e uma página da Web será aberta com a mensagem "Seu bot está pronto!"
Abra o aplicativo do Cliente do Assistente de Voz do Windows. Selecione o botão Configurações (ícone de engrenagem superior direito) e certifique-se de que você ainda tem de-de no campo Idioma.
Siga as instruções em Executar o Cliente do Assistente de Voz do Windowspara se reconectar com o bot implantado recentemente, falar no novo idioma e ouvir o seu bot responder nesse idioma e com a nova voz.
Limpar recursos
Se não for continuar a usar o Echo Bot implantado neste tutorial, poderá removê-lo, juntamente com todos os recursos do Azure associados, excluindo o Grupo de Recursos do Azure:
- No portal do Azure, selecione Grupos de Recursos em Serviços do Azure.
- Encontre o grupo de recursos SpeechEchoBotTutorial-ResourceGroup. Selecione os três pontos (...).
- Selecione Excluir grupo de recursos.
Explorar documentação
- Implante em uma região do Azure perto de você para ver a melhora no tempo de resposta do bot.
- Implante em uma região do Azure que dá suporte à conversão de texto em fala neural de alta qualidade.
- Preço associado ao canal da Direct Line Speech:
- Compile e implante seu próprio bot habilitado para voz: