Exercício – Configurar a compreensão de intenções e da linguagem natural

Concluído

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

  1. 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.

    Screenshot of adding the Lunarcom Intent Recognizer (Script) component.

  2. 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

    Screenshot of adding the RocketLauncher_Complete prefab.

  3. 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.

    Screenshot of assigning each of the buttons.

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.

  1. Entre no portal do Azure e selecione Criar um recurso e, em seguida, procure e selecione Serviço de Linguagem:

    Screenshot of the Azure language service resource.

  2. Selecione o botão Criar para gerar uma instância desse serviço:

    Screenshot of creating an instance of this service.

  3. 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.

    Screenshot of the Create Language screen.

    Dica

    Se você já tiver um grupo de recursos adequado em sua conta do Azure, poderá usá-lo em vez de criar um novo.

  4. 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)

    Screenshot of the configured Create Language form.

  5. 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):

    Screenshot of the Review + Create screen.

  6. Depois que o processo de criação de recursos for concluído, você verá a mensagem Sua implantação foi concluída:

    Screenshot of the Overview screen.

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:

  1. Criar um aplicativo CLU
  2. Criar intenções
  3. Criar exemplos de enunciados
  4. Criar entidades
  5. Atribuir entidades a exemplos de enunciados
  6. 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.

  1. 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.

    Screenshot showing the Select an Azure resource popup.

  2. 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.

    Screenshot of the Create a project popup.

  3. Selecione Avançar para revisar a configuração do projeto. Selecione Criar para criar o cluster.

    Screenshot of the Review and finish screen.

  4. Quando o novo aplicativo tiver sido criado, você será levado à página de Definição do esquema do aplicativo.

    Screenshot of the App's dashboard page.

2. Criar intenções

  1. 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
  2. Selecione Adicionar intenção para criar a nova intenção:

    Screenshot of the Add an intent screen.

    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.

  3. 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.

    Screenshot of the list of Intents.

3. Criar exemplos de enunciados

  1. Na barra lateral esquerda, selecione o botão Rotulagem de dados. Na tela Rotulagem de dados, selecione PressButton no menu suspenso Selecionar intenção.

    Screenshot of the Data labeling page.

  2. À 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
  3. Depois de adicionar todos os exemplos de enunciados, sua página de rotulagem de dados deverá ter a seguinte aparência:

    Screenshot of the updated Data labeling page.

    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

  1. 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
  2. Selecione Adicionar entidade para criar a nova entidade.

    Screenshot of adding a new entity.

  3. Repita a etapa anterior para criar outra entidade chamada Destino para que você tenha duas entidades chamadas Ação e Destino.

    Screenshot of creating a target entity.

    Cuidado

    Para os fins deste tutorial, seu projeto do Unity fará referência a essas entidades por seus nomes, Action e Target. É extremamente importante que você nomeie suas entidades exatamente da mesma forma.

5. Atribuir entidades a exemplos de enunciados

  1. 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.

    Screenshot of labeling go ahead as an action entity value.

  2. 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".

    Screenshot of the added action entity value.

    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.

  3. 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.

    Screenshot of selecting the word launch.

  4. 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).

    Screenshot of the added Target entity value under the word launch.

  5. 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
  6. 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)
  7. 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:

    Screenshot of the PressButton intent page with all example utterances labeled.

6. Treinar, testar e publicar o aplicativo

  1. Para treinar o aplicativo, selecione o botão Treinar na barra lateral esquerda. Você deverá ver a página de Trabalhos de treinamento.

    Screenshot of the Training jobs screen.

  2. 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.
  3. Selecione Treinar para iniciar o processo de treinamento. Quando o treinamento terminar de ser processado, você verá uma notificação de Treinamento concluído.

    Screenshot of Finished training notification.

  4. 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.

    Screenshot of the Model performance screen.

  5. Para implantar o aplicativo, selecione o botão Implantar um modelo na barra lateral esquerda. Você deverá ver a página Implementando um modelo.

    Screenshot of the Deploying a model page.

  6. 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.
  7. Selecione Implantar e aguarde a conclusão do processo de publicação.

    Screenshot of the Deployment completed notification.

  8. Selecione a nova implantação e selecione o botão Obter URL de previsão.

    Screenshot of the Get Prediction URL page.

Conecte o projeto de unidade ao aplicativo da CLU

  1. Na janela pop-up Obter URL de previsão, selecione o ícone Copiar para copiar a URL de previsão.

    Screenshot of Get Prediction URL popup.

  2. 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.

    Screenshot of passing the example query you copied.

Teste o reconhecimento de intenção

  1. 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.

    Screenshot of Testing the intent recognition.

  2. 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.

    Screenshot of Enter the game mode.

  3. Tente todos os enunciados de exemplo, depois alguma variação dos enunciados de exemplo e, em seguida, alguns enunciados aleatórios.