Exercício – Configurar a compreensão de intenções e da linguagem natural
Neste módulo, você vai explorar o reconhecimento de intenções do Serviço de Fala do Azure. O reconhecimento de intenção permite que equipe seu aplicativo com comandos de fala com tecnologia de IA, em que os usuários podem dizer comandos de fala não específicos e ainda assim fazer com que o sistema entenda sua intenção.
Preparar a cena
Na janela Hierarquia, selecione o objeto Lunarcom e, na janela Inspetor, use o botão Adicionar componente para adicionar o componente Lunarcom Intent Recognizer (Script) ao objeto Lunarcom.
Na janela Projeto, navegue até a pasta Assets>MRTK.Tutorials.GettingStarted>Prefabs>RocketLauncher, arraste o prefab RocketLauncher_Complete para sua janela Hierarquia e coloque-o em um local adequado na frente da câmera. Por exemplo:
- Posição da Transformação X = 0, Y = 1, Z = 1,5
- Rotação da Transformação X = 0, Y = 90, Z = 0
Na janela Hierarquia, selecione o objeto Lunarcom novamente e depois expanda o objeto RocketLauncher_Complete>Buttons e atribua a cada um dos objetos filho do objeto Botões ao campo Lunar Launcher Buttons correspondentes.
Criar o recurso de serviço de linguagem do Azure
Nesta seção, você criará um recurso de serviço de linguagem do Azure para o aplicativo de compreensão da linguagem coloquial (CLU) que criará na próxima seção.
Entre no portal do Azure e selecione Criar um recurso e, em seguida, procure e selecione Serviço de Linguagem:
Selecione o botão Criar para gerar uma instância desse serviço:
Na página Criar Idioma, insira os seguintes valores:
- Para Assinatura, selecione Avaliação gratuita se você tiver uma assinatura de avaliação. Se você não tem uma assinatura de avaliação, selecione uma das outras assinaturas.
- Para o Grupo de recursos, selecione o linkCriar novo e depois digite um nome adequado; por exemplo, MRTK-Tutorials. Selecione OK.
Dica
Se você já tiver um grupo de recursos adequado em sua conta do Azure, poderá usá-lo em vez de criar um novo.
Enquanto ainda estiver na página Criar, insira os seguintes valores:
- Para Name, insira um nome adequado para o serviço; por exemplo, MRTK-Tutorials-AzureSpeechServices
- Para Region, escolha um local próximo à localização física dos usuários do seu aplicativo, por exemplo: Leste dos EUA
- Para Tipo de preço, neste tutorial, selecione F0 (5 mil transações por 30 dias)
Em seguida, selecione Revisar + criar, revise os detalhes, selecione o botão Criar na parte inferior da página para criar o recurso (e o novo grupo de recursos, se você configurou um para ser criado):
Depois que o processo de criação de recursos for concluído, você verá a mensagem Sua implantação foi concluída:
Criar o aplicativo de compreensão da linguagem coloquial (CLU)
Nesta seção, você criará um aplicativo de CLU, configurará e treinará seu modelo de previsão e o conectará ao recurso de linguagem do Azure que você criou na etapa anterior.
Especificamente, você criará uma intenção para que, no caso de o usuário vocalizar uma ação a ser executada, o aplicativo acione o evento PressableButton.OnClicked()
em um dos três botões azuis na cena, dependendo de a qual botão o usuário faz referência.
Por exemplo, se o usuário disser vá em frente e lance o foguete, o aplicativo preverá que vá em frente significa que alguma ação deve ser executada e que o evento PressableButton.OnClicked()
de destino está no botão de inicialização.
As principais etapas que você seguirá para conseguir isso são:
- Criar um aplicativo CLU
- Criar intenções
- Criar exemplos de enunciados
- Criar entidades
- Atribuir entidades a exemplos de enunciados
- Treinar, testar e publicar o aplicativo
1. Criar um aplicativo CLU
Usando a mesma conta de usuário que você usou ao criar o recurso do Azure na seção anterior, entre no Language Studio.
Depois de entrar, você será solicitado a selecionar um recurso do Azure. Selecione os valores que você usou ao criar o recurso do serviço de Linguagem do Azure e pressione Concluído.
Depois de conectar o recurso do Azure, selecione Criar novo > Compreensão da Linguagem Coloquial e insira os seguintes valores na janela pop-up Criar um projeto:
- Em Nome, insira um nome adequado, como MRTK-Tutorials-AzureSpeechServices. Anote o nome selecionado, você precisará dele mais tarde no tutorial.
- Para a Linguagem principal de enunciados, selecione uma linguagem.
- Para Descrição, opcionalmente, insira uma descrição adequada.
Selecione Avançar para revisar a configuração do projeto. Selecione Criar para criar o cluster.
Quando o novo aplicativo tiver sido criado, você será levado à página de Definição do esquema do aplicativo.
2. Criar intenções
Na página Definição de esquema, selecione Adicionar e insira o seguinte valor na janela pop-up Adicionar uma intenção:
- Para Nome da intenção, insira PressButton
Selecione Adicionar intenção para criar a nova intenção:
Cuidado
Para os fins deste tutorial, seu projeto do Unity fará referência a essa intenção pelo nome (
PressButton
). É extremamente importante que você nomeie sua intenção exatamente da mesma forma.Quando a nova intenção tiver sido criada, você será levado de volta para a página Definição de esquema. A intenção PressButton aparecerá na lista de intenções.
3. Criar exemplos de enunciados
Na barra lateral esquerda, selecione o botão Rotulagem de dados. Na tela Rotulagem de dados, selecione PressButton no menu suspenso Selecionar intenção.
À lista de Declarações da intenção PressButton, adicione os seguintes exemplos de declarações:
- ativar sequência de inicialização
- mostrar-me uma dica de posicionamento
- iniciar a sequência de inicialização
- pressionar o botão de dicas de posicionamento
- dê-me uma dica
- pressione o botão iniciar
- preciso de uma dica
- pressione o botão redefinir
- tempo para redefinir a experiência
- Ir em frente e lançar o foguete
Depois de adicionar todos os exemplos de enunciados, sua página de rotulagem de dados deverá ter a seguinte aparência:
Cuidado
Para os fins deste tutorial, seu projeto do Unity fará referência às palavras "hint" (dica), "hints" (dicas), "reset" (redefinir) e "launch" (iniciar). É extremamente importante que você escreva essas palavras exatamente da mesma forma em todas as instâncias.
4. Criar entidades
Enquanto estiver na página Rotulagem de dados, selecione Adicionar entidade no painel Atividade à direita e insira os seguintes valores na janela pop-up Adicionar uma entidade:
- Para Nome da entidade, insira Ação
Selecione Adicionar entidade para criar a nova entidade.
Repita a etapa anterior para criar outra entidade chamada Destino para que você tenha duas entidades chamadas Ação e Destino.
Cuidado
Para os fins deste tutorial, seu projeto do Unity fará referência a essas entidades por seus nomes,
Action
eTarget
. É extremamente importante que você nomeie suas entidades exatamente da mesma forma.
5. Atribuir entidades a exemplos de enunciados
Selecione a palavra go e, em seguida, a palavra ahead e selecione Ação (Simples) no menu pop-up contextual para rotular go ahead (prosseguir) como um valor da entidade Ação.
A frase ir em frente frase agora é definida como um valor de entidade de Ação. Agora há um valor para a entidade de Ação sob as palavras "go ahead".
Observação
A linha vermelha que você vê sob o rótulo na imagem indica que o valor da entidade não foi previsto; isso será resolvido quando você treinar o modelo na próxima seção.
Em seguida selecione a palavra launch (iniciar) e selecione Destino no menu pop-up contextual para rotular launch como um valor de entidade de Destino.
A palavra iniciar agora está definida como um valor de entidade de Destino. Agora há um valor para a entidade de Destino sob a palavra "launch" (iniciar).
O enunciado de exemplo de intenção PressButton
go ahead and launch the rocket
agora está configurado para ser previsto da seguinte forma:- Intenção: PressButton
- Entidade de ação: vá em frente
- Entidade de destino: iniciar
Repita o processo anterior para atribuir uma Ação e um rótulo de entidade de Destino a cada uma das expressões de exemplo, tendo em mente que as seguintes palavras devem ser rotuladas como entidades de Destino:
- dica (tem como destino HintsButton no projeto do Unity)
- dicas (tem como destino HintsButton no projeto do Unity)
- redefinir (tem como destino ResetButton no projeto do Unity)
- iniciar (tem como destino LaunchButton no projeto do Unity)
Selecione Salvar alterações. Quando você tiver rotulado todos os enunciados de exemplo, sua página de intenção PressButton deverá ter a seguinte aparência:
6. Treinar, testar e publicar o aplicativo
Para treinar o aplicativo, selecione o botão Treinar na barra lateral esquerda. Você deverá ver a página de Trabalhos de treinamento.
Selecione Iniciar um trabalho de treinamento e selecione os seguintes valores:
- Selecione Treinar um novo modelo e insira um nome adequado; por exemplo, MRTK-Tutorials-AzureSpeechServices.
- Selecione Treinamento standard.
- Selecione Dividir automaticamente o conjunto de testes dos dados de treinamento.
Selecione Treinar para iniciar o processo de treinamento. Quando o treinamento terminar de ser processado, você verá uma notificação de Treinamento concluído.
Para analisar os resultados do treinamento, selecione seu Modelo de saída na tela de Trabalhos de treinamento e, em seguida, selecione a guia Desempenho do Modelo.
Para implantar o aplicativo, selecione o botão Implantar um modelo na barra lateral esquerda. Você deverá ver a página Implementando um modelo.
Selecione Adicionar implantação e insira os seguintes valores no pop-up Adicionar implantação:
- Selecione Criar um novo nome de implantação e insira um nome adequado. Anote o nome selecionado, você precisará dele posteriormente no tutorial.
- Selecione o modelo que você criou anteriormente no menu suspenso Selecionar um modelo treinado.
Selecione Implantar e aguarde a conclusão do processo de publicação.
Selecione a nova implantação e selecione o botão Obter URL de previsão.
Conecte o projeto de unidade ao aplicativo da CLU
Na janela pop-up Obter URL de previsão, selecione o ícone Copiar para copiar a URL de previsão.
De volta ao seu projeto do Unity, na janela Hierarquia, selecione o objeto Lunarcom e, em seguida, na janela Inspetor, localize o componente Lunarcom Intent Recognizer (Script) e configure-o da seguinte forma.
- No campo Ponto de extremidade da CLU, passe a URL de previsão que você copiou na etapa anterior.
- No campo Nome do projeto da CLU, passe o Nome do projeto anotado ao criar um aplicativo da CLU.
- No campo Implantação da CLU, passe o Nome da implantação anotado ao criar uma nova implantação.
- No campo Chave de API do Serviço de Linguagem, passe a chave de API (Key1 ou Key2) para seu Serviço de Linguagem. Você pode encontrar isso no portal do Azure selecionando seu serviço de linguagem e, em seguida, selecionando Chaves e ponto de extremidade no menu à esquerda.
Teste o reconhecimento de intenção
Para usar o reconhecimento de intenção diretamente no editor do Unity, você deve permitir que seu computador de desenvolvimento use ditado. Para verificar essa configuração, abra as Configurações do Windows, e depois escolha Privacidade>Fala e certifique-se de que o Reconhecimento de fala online esteja ativado.
Se você entrar no modo de Jogo, poderá testar o reconhecimento de intenção pressionando o botão foguete. Então, quando você disser o primeiro exemplo de enunciado, go ahead and launch the rocket (prosseguir e iniciar o foguete), você verá o LunarModule ser lançado no espaço.
Tente todos os enunciados de exemplo, depois alguma variação dos enunciados de exemplo e, em seguida, alguns enunciados aleatórios.