Exercício - Configurar a intenção e a compreensão da linguagem natural

Concluído

Neste módulo, você explorará o reconhecimento de intenção do Serviço de Fala do Azure. O reconhecimento de intenção permite equipar seu aplicativo com comandos de fala alimentados por IA, onde os usuários podem dizer comandos de fala inespecíficos e ainda fazer com que o sistema entenda sua intenção.

Preparar a cena

  1. Na janela Hierarquia, selecione o objeto Lunarcom e, em seguida, 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é o MRTK de ativos>. Tutorials.GettingStarted Prefabs>pasta RocketLauncher, arraste o RocketLauncher_Complete pré-fabricado para sua janela Hierarquia e coloque-o em um local adequado na frente da câmera.> Por exemplo:

    • Posição de transformação x = 0, y = 1, z = 1,5
    • Rotação da transformada x = 0, y = 90, z = 0

    Screenshot of adding the RocketLauncher_Complete prefab.

  3. Na janela Hierarquia, selecione o objeto Lunarcom novamente, expanda o objeto RocketLauncher_Complete>Buttons e atribua cada um dos objetos filho do objeto Buttons ao campo Lunar Launcher Buttons correspondente.

    Screenshot of assigning each of the buttons.

Criar o recurso de serviço de idioma do Azure

Nesta seção, você criará um recurso de serviço de idioma do Azure para o aplicativo CLU (Compreensão de linguagem conversacional) que você 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 Idioma:

    Screenshot of the Azure language service resource.

  2. Selecione o botão Criar para criar uma instância deste serviço:

    Screenshot of creating an instance of this service.

  3. Na página Criar Idioma, insira os seguintes valores:

    • Em Subscrição, selecione Avaliação gratuita se tiver uma subscrição de avaliação. Se não tiver uma subscrição de avaliação, selecione uma das suas outras subscrições.
    • Para o grupo Recursos, selecione o link Criar novo e insira um nome adequado, por exemplo, MRTK-Tutorials. Selecione OK.

    Screenshot of the Create Language screen.

    Gorjeta

    Se você já tiver outro grupo de recursos adequado em sua conta do Azure, poderá usar esse grupo de recursos em vez de criar um novo.

  4. Ainda na página Criar, insira os seguintes valores:

    • Em Name, insira um nome adequado para o serviço, por exemplo, MRTK-Tutorials-AzureSpeechServices
    • Em Região, escolha um local próximo à localização física dos usuários do aplicativo, por exemplo, Leste dos EUA
    • Para Nível de preço, neste tutorial, selecione F0 (5k transações por 30 dias)

    Screenshot of the configured Create Language form.

  5. Em seguida, selecione Rever + criar, reveja os detalhes e, em seguida, selecione o botão Criar na parte inferior da página para criar o recurso (e o novo grupo de recursos, se tiver configurado um para ser criado):

    Screenshot of the Review + Create screen.

  6. Quando o processo de criação de recursos estiver concluído, você verá a mensagem Sua implantação está concluída:

    Screenshot of the Overview screen.

Criar o aplicativo de compreensão de linguagem conversacional (CLU)

Nesta seção, você criará um aplicativo CLU, configurará e treinará seu modelo de previsão e o conectará ao recurso de linguagem do Azure criado na etapa anterior.

Especificamente, você criará uma intenção de que, se o usuário disser que uma ação deve ser tomada, o aplicativo dispara o evento em um dos três botões azuis na cena, dependendo de qual botão o PressableButton.OnClicked() usuário referencia.

Por exemplo, se o usuário diz para ir em frente e lançar o foguete, o aplicativo prevê que ir em frente significa que alguma ação deve ser tomada, e que o PressableButton.OnClicked() evento a ser direcionado está no botão de lançamento.

Os principais passos que você tomará 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 aos enunciados de exemplo
  6. Treinar, testar e publicar o aplicativo

1. Crie um aplicativo CLU

Usando a mesma conta de usuário usada 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 usados ao criar o recurso de serviço de Linguagem do Azure e selecione Concluído.

    Screenshot showing the Select an Azure resource popup.

  2. Depois de conectar o recurso do Azure, selecione Criar novo > Entendimento de Linguagem de Conversação e insira os seguintes valores na janela pop-up Criar um projeto:

    • Em Name, insira um nome adequado, por exemplo: MRTK-Tutorials-AzureSpeechServices. Anote o nome que você selecionou, você precisará dele mais tarde no tutorial.
    • Para Idioma principal dos Enunciados, selecione um idioma.
    • 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 Create (Criar) para criar o projeto.

    Screenshot of the Review and finish screen.

  4. Quando o novo aplicativo for criado, você será direcionado para a página de definição de esquema desse aplicativo.

    Screenshot of the App's dashboard page.

2. Crie 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, digite Pressione Button
  2. Selecione Adicionar intenção para criar a nova intenção:

    Screenshot of the Add an intent screen.

    Atenção

    Para o propósito deste tutorial, seu projeto 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 à página Definição de esquema. A intenção PressButton aparecerá na lista de intenções.

    Screenshot of the list of Intents.

3. Crie exemplos de enunciados

  1. Na barra lateral esquerda, selecione o botão Rotulagem de dados. Na tela Rotulagem de dados, selecione Pressionar botão na lista suspensa Selecionar intenção.

    Screenshot of the Data labeling page.

  2. À lista Enunciados de intenção do PressButton , adicione os seguintes exemplos de enunciados :

    • ativar sequência de lançamento
    • Mostre-me uma dica de posicionamento
    • Iniciar a sequência de lançamento
    • Pressione o botão Dicas de posicionamento
    • Dê-me uma dica
    • Pressione o botão de inicialização
    • Eu preciso de uma dica
    • Pressione o botão Reset
    • Hora de redefinir a experiência
    • Vá em frente e lance o foguete
  3. Quando você tiver adicionado todos os enunciados de exemplo, sua página de rotulagem de dados deverá ter esta aparência:

    Screenshot of the updated Data labeling page.

    Atenção

    Para o propósito deste tutorial, seu projeto Unity fará referência às palavras "dica", "dicas", "redefinir" e "iniciar". É extremamente importante que você escreva essas palavras exatamente da mesma maneira em todos os casos.

4. Criar entidades

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

    • Em 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 Target, para que você tenha duas entidades chamadas Action e Target.

    Screenshot of creating a target entity.

    Atenção

    Para o propósito deste tutorial, seu projeto 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. Atribua entidades aos enunciados de exemplo

  1. Selecione a palavra ir e, em seguida, na palavra à frente e, em seguida, selecione Ação (Simples) no menu pop-up contextual para rotular ir em frente como um valor de entidade de ação.

    Screenshot of labeling go ahead as an action entity value.

  2. A frase ir em frente agora é definida como um valor de entidade de ação . Agora há um valor de entidade de ação sob as palavras "vá em frente".

    Screenshot of the added action entity value.

    Nota

    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 e, em seguida, selecione Target no menu pop-up contextual para rotular launch como um valor de entidade de destino.

    Screenshot of selecting the word launch.

  4. A palavra de lançamento agora é definida como um valor de entidade de destino. Agora há um valor de entidade de destino sob a palavra "lançamento".

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

  5. O enunciado go ahead and launch the rocket de exemplo de intenção PressButton agora está configurado para ser previsto da seguinte maneira:

    • Intenção: Pressione Button
    • Entidade de ação: vá em frente
    • Entidade alvo: lançamento
  6. Repita o processo anterior para atribuir um rótulo de Ação e uma entidade de destino a cada um dos enunciados de exemplo, tendo em mente que as seguintes palavras devem ser rotuladas como entidades de destino :

    • dica (direciona o HintsButton no projeto Unity)
    • dicas (alvos HintsButton no projeto Unity)
    • reset (destina-se ao ResetButton no projeto Unity)
    • launch (tem como alvo o LaunchButton no projeto Unity)
  7. Selecione Guardar alterações. Quando você tiver rotulado todos os enunciados de exemplo, sua página de intenção do PressButton deverá ter esta aparência:

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

6. Treine, teste e publique o aplicativo

  1. Para treinar o aplicativo, selecione o botão Trem na barra lateral esquerda. Você deve ver a página Empregos 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 padrão.
    • Selecione Dividir automaticamente o conjunto de testes dos dados de treinamento.
  3. Selecione Treinar para iniciar o processo de treinamento. Quando o processamento do treinamento terminar, você verá uma notificação de treinamento concluído.

    Screenshot of Finished training notification.

  4. Para revisar os resultados do treinamento, selecione seu modelo de saída na tela 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 Implantando um modelo na barra lateral esquerda. Você deve ver a página Implantando 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 que você selecionou, você precisará dele mais tarde no tutorial.
    • Selecione o modelo que você criou anteriormente na lista suspensa Selecione 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 unity ao aplicativo CLU

  1. Enquanto estiver no pop-up Obter URL de previsão, selecione o ícone Copiar para copiar o URL de previsão.

    Screenshot of Get Prediction URL popup.

  2. De volta ao seu projeto 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 maneira.

    • No campo Ponto de extremidade da CLU, passe a URL de previsão copiada na etapa anterior.
    • No campo Nome do Projeto da CLU, passe o Nome do Projeto que você anotou ao criar um aplicativo CLU.
    • No campo Implantação da CLU, passe o Nome da Implantação que você anotou ao criar uma nova implantação.
    • No campo Language Service API Key, passe a chave API (Key1 ou Key2) para o seu Language Service. Você pode encontrar isso no portal do Azure selecionando seu serviço de idioma e, em seguida, selecionando Chaves e ponto de extremidade no menu à esquerda.

    Screenshot of passing the example query you copied.

Testar o reconhecimento de intenção

  1. Para usar o reconhecimento de intenção diretamente no editor Unity, você deve permitir que seu computador de desenvolvimento use ditado. Para verificar essa configuração, abra Configurações do Windows, escolha Fala de Privacidade> e verifique se o reconhecimento de fala online está ativado.

    Screenshot of Testing the intent recognition.

  2. Se você entrar no modo de jogo, poderá testar o reconhecimento de intenção pressionando primeiro o botão de foguete. Então, quando você diz o primeiro exemplo de enunciação, vá em frente e lance o foguete, você verá o lançamento do LunarModule no espaço.

    Screenshot of Enter the game mode.

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