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

Concluído

Neste módulo, irá explorar o reconhecimento de intenções do Serviço de Voz do Azure. O reconhecimento de intenção permite-lhe equipar a sua aplicação com comandos de voz baseados em IA, onde os utilizadores podem dizer comandos de voz não específicos e ainda ter a sua intenção compreendida pelo sistema.

Preparar a cena

  1. Na janela Hierarquia, selecione o objeto Lunarcom e, em seguida, na janela Inspetor, utilize o botão Adicionar Componente para adicionar o componente Lunarcom Intent Recognizer (Script) ao objeto Lunarcom:

    Captura de ecrã a mostrar o componente Lunarcom Intent Recognizer (Script).

  2. Na janela Projeto, navegue para o MRTK Recursos>. Tutorials.GettingStarted>Prefabs>RocketLauncher folder, drag the RocketLauncher_Complete prefab into your Hierarchy window, and place it at asuitable location in front of the camera, por exemplo:

    • Transformar Posição X = 0, Y = -0,4, Z = 1
    • Transformar Rotação X = 0, Y = 90, Z = 0

    Captura de ecrã a mostrar Adicionar o RocketLauncher_Complete pré-fabricado.

  3. Na janela Hierarquia, selecione novamente o objeto Lunarcom e, em seguida, expanda o objeto botão RocketLauncher_Complete> e atribua cada um dos objetos subordinados do objeto Botões ao campo Botões do Iniciador Lunar correspondente:

    Captura de ecrã a mostrar a atribuição de cada um dos botões.

Criar o recurso de compreensão de linguagem do Azure

Nesta secção, irá criar um recurso de predição do Azure para a aplicação Language Understanding Intelligent Service (LUIS) que irá criar na secção seguinte.

  1. Inicie sessão no portal do Azure e selecione Criar um recurso. Em seguida, procure e selecione Language Understanding:

    Captura de ecrã a mostrar o recurso de predição do Azure.

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

    Captura de ecrã a mostrar a criação de uma instância deste serviço.

  3. Na página Criar, selecione a opção Predição e introduza os seguintes valores:

    • Em Subscrição, selecione Registo Gratuito 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 de recursos, selecione a ligação Criar novo , introduza um nome adequado, por exemplo: MRKT-Tutorials. Selecione OK.

    Captura de ecrã a mostrar a opção Configurar a predição.

    Nota

    A partir do momento da escrita, não precisa de criar um recurso de criação, uma vez que será gerada automaticamente uma chave de avaliação de criação no LUIS quando criar a Language Understanding Serviço Inteligente (LUIS) na secção seguinte.

    Dica

    Se já tiver outro grupo de recursos adequado na sua conta do Azure, poderá utilizar este grupo de recursos em vez de criar um novo.

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

    • Em Nome, introduza um nome adequado para o serviço, por exemplo: MRTK-Tutorials-AzureSpeechServices
    • Para Localização da predição, escolha uma localização próxima da localização física dos utilizadores da aplicação, por exemplo: (E.U.A.) E.U.A. Oeste
    • Para Escalão de preço de Predição, para efeitos deste tutorial, selecione F0 (5 Chamadas por segundo, 10 000 Chamadas por mês)

    Captura de ecrã a mostrar Configurar a página de criação.

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

    Captura de ecrã a mostrar Rever os detalhes.

    Nota

    A criação dos novos recursos poderá demorar alguns minutos.

  6. Assim que o processo de criação de recursos estiver concluído, verá a mensagem A implementação está concluída:

    Captura de ecrã a mostrar a Apresentação de mensagens.

Criar o serviço inteligente de compreensão de idiomas (LUIS)

Nesta secção, irá criar uma aplicação LUIS, configurar e preparar o respetivo modelo de predição e ligá-lo ao recurso de predição do Azure que criou no passo anterior.

Especificamente, irá criar uma intenção de que, se o utilizador disser que deve ser tomada uma ação, a aplicação acionará o Interactable. OnClick() evento num dos três botões vermelhos na cena, dependendo do botão que o utilizador referenciar.

Por exemplo, se o utilizador disser para avançar e iniciar o foguetão, a aplicação irá prever que deve ser tomada alguma ação e que o Interactable. OnClick() evento para o destino está no botão iniciar .

Os principais passos que irá seguir para o conseguir são:

  1. Criar uma aplicação LUIS
  2. Criar intenções
  3. Criar expressões de exemplo
  4. Criar entidades
  5. Atribuir entidades às expressões de exemplo
  6. Preparar, testar e publicar a aplicação
  7. Atribuir um recurso de predição do Azure à aplicação

1. Criar uma aplicação LUIS

Com a mesma conta de utilizador que utilizou ao criar o recurso do Azure na secção anterior, inicie sessão no LUIS, selecione o seu país/região e aceite os termos de utilização. No passo seguinte, quando lhe for pedido para Ligar a sua conta do Azure, selecione Continuar a utilizar a chave de avaliação para utilizar um recurso de criação do Azure.

Nota

Se já se inscreveu no LUIS e a chave de avaliação de criação tiver expirado, pode consultar a documentação Migrar para uma chave de criação de recursos do Azure para mudar o recurso de criação do LUIS para o Azure.

  1. Depois de iniciar sessão, selecione Nova aplicação e introduza os seguintes valores na janela de pop-up Criar nova aplicação :

    • Em Nome, introduza um nome adequado, por exemplo: Tutoriais MRTK – AzureSpeechServices
    • Para Cultura, selecione Inglês
    • Para Descrição, introduza opcionalmente uma descrição adequada
    • Para Recurso de predição, selecione o recurso de predição por lista pendente que tinha sido criada portal do Azure.
  2. Selecione Concluído para criar a nova aplicação:

    Captura de ecrã a representar Selecionar o botão concluído.

  3. Quando a nova aplicação tiver sido criada, será levado para a página Dashboard dessa aplicação:

    Captura de ecrã a mostrar a página do dashboard da Aplicação.

2. Criar intenções

  1. Na página Dashboard, navegue para a página Criar >Intenções> de Recursos da Aplicação e, em seguida, selecione Criar e introduza o seguinte valor na janela de pop-up Criar nova intenção:

    • Em Nome da intenção, introduza PremirButton
  2. Selecione Concluído para criar a nova intenção:

    Captura de ecrã a mostrar Criar uma nova intenção.

    Atenção

    Para efeitos deste tutorial, o projeto do Unity fará referência a esta intenção pelo respetivo nome (PressButton). É extremamente importante que dê exatamente o mesmo nome à sua intenção.

  3. Quando a nova intenção tiver sido criada, será levado para a página dessa intenção:

    Captura de ecrã a mostrar a página da Intenção.

3. Criar expressões de exemplo

  1. Para a lista de expressões de Exemplo da intenção PressButton, adicione as seguintes expressões de exemplo:

    • ativar sequência de iniciação
    • mostrar-me uma sugestão de colocação
    • iniciar a sequência de iniciação
    • premir o botão de sugestões de colocação
    • dar-me uma sugestão
    • premir o botão iniciar
    • Preciso de uma sugestão
    • premir o botão de reposição
    • tempo para repor a experiência
    • vá em frente e inicie o foguetão
  2. Quando tiver adicionado todas as expressões de exemplo, a página de intenção PressButton deverá ter o seguinte aspeto:

    Captura de ecrã a mostrar a página de intenção PressButton.

    Atenção

    Para efeitos deste tutorial, o seu projeto do Unity referenciará as palavras "sugestão", "sugestões", "repor" e "iniciar". É extremamente importante escrever estas palavras exatamente da mesma forma em todas as instâncias.

4. Criar entidades

  1. Na página de intenção PressButton, navegue para a página Criar >Entidades de > Recursos da Aplicação e, em seguida, selecione Criar e introduza os seguintes valores na janela de pop-up Criar nova entidade:

    • Em Nome da entidade, introduza Ação
    • Para Tipo de entidade, selecione Machine learned
  2. Selecione Criar para criar a nova entidade:

    Captura de ecrã a mostrar Criar uma nova entidade.

  3. Repita o passo anterior para criar outra entidade com o nome Destino, para que tenha duas entidades denominadas Ação e Destino:

    Captura de ecrã a mostrar Criar uma entidade de destino.

    Atenção

    Para efeitos deste tutorial, o projeto do Unity referenciará estas entidades pelos respetivos nomes Action e Target. É extremamente importante que dê exatamente o mesmo nome às suas entidades.

5. Atribuir entidades às expressões de exemplo

Na página Entidades, navegue de volta para a página de intenções PressButton .

  1. Uma vez novamente na página de intenção PremirButton, selecione a palavra ir e, em seguida, na palavra à frente e, em seguida, selecione Ação (Simples) no menu de pop-up contextual para etiquetar avançar como um valor de entidade Ação :

    Captura de ecrã a mostrar a etiqueta como um valor de entidade de ação.

  2. A expressão avançar está agora definida como um valor de entidade Ação . Existe agora um valor de entidade de ação nas palavras "vá em frente":

    Captura de ecrã a mostrar Atenção ao valor da entidade de ação.

    Nota

    A linha vermelha que vê sob a etiqueta na imagem indica que o valor da entidade não foi previsto; isto será resolvido quando preparar o modelo na secção seguinte.

  3. Em seguida, selecione a palavra iniciar e, em seguida, selecione Destino (Simples) no menu de pop-up contextual para etiquetar o lançamento como um valor de entidade de destino:

    Captura de ecrã a mostrar a seleção da palavra iniciar.

  4. A palavra de iniciação está agora definida como um valor de entidade De destino. Existe agora um valor de entidade De destino na palavra "launch":

    Captura de ecrã a mostrar Atenção ao valor da entidade De destino sob a palavra iniciar.

  5. A expressão go ahead and launch the rocket de exemplo de intenção PressButton está agora configurada para ser prevista da seguinte forma:

    • Intenção: PremirButton
    • Entidade de ação: avance
    • Entidade de destino: iniciar
  6. Repita o processo anterior para atribuir uma etiqueta de entidade Action e Target a cada uma das expressões de exemplo, tendo em conta que as seguintes palavras devem ser etiquetadas como Entidades de destino:

    • sugestão (destina-se ao HintsButton no projeto unity)
    • sugestões (destinos HintsButton no projeto unity)
    • reset (destina-se ao ResetButton no projeto unity)
    • launch (destina-se ao LaunchButton no projeto unity)
  7. Quando tiver etiquetado todas as expressões de exemplo, a página de intenção PressButton deverá ter o seguinte aspeto:

    Captura de ecrã a mostrar todas as expressões de exemplo etiquetadas.

6. Preparar, testar e publicar a aplicação

  1. Para preparar a aplicação, selecione o botão Preparar e aguarde pela conclusão do processo de preparação:

    Captura de ecrã a mostrar Preparar a aplicação.

    Nota

    Como pode ver na imagem acima, as linhas vermelhas em todas as etiquetas foram removidas, o que indica que todos os valores da entidade estão previstos. Além disso, repare que o ícone de estado à esquerda do botão Preparar mudou de cor de vermelho para verde.

  2. Quando o processamento da preparação terminar, selecione o botão Testar e, em seguida, escreva em avançar, inicie o foguetão e prima a tecla Enter:

    Captura de ecrã a mostrar a seleção do botão de teste.

  3. Quando a expressão de teste tiver sido processada, selecione Inspecionar para ver o resultado do teste:

    • Intenção: PremirButton (com 98,5% de certeza)
    • Entidade de ação: avance
    • Entidade de destino: iniciar

    Captura de ecrã a mostrar a seleção de inspecionar para ver os resultados do teste.

  4. Para publicar a aplicação, selecione o botão Publicar no canto superior direito e, em seguida, na janela de pop-up Escolher o bloco de publicação e definições , selecione Produção e selecione o botão Concluído :

    Captura de ecrã a mostrar Publicar a aplicação.

  5. Aguarde pela conclusão do processo de publicação:

    Captura de ecrã a mostrar Aguardar a conclusão do processo de publicação.

  6. Navegue para a página Gerir > Definições > da Aplicação recursos do Azure. A página Recursos do Azure deve ter um aspeto semelhante a este:

    Captura de ecrã da página de recursos do Azure.

Ligar o projeto do Unity à aplicação LUIS

  1. Na página Gerir > Definições > da Aplicação recursos do Azure, selecione o ícone Copiar para copiar a Consulta de Exemplo:

    Captura de ecrã a mostrar a origem da ligação ao projeto do Unity.

  2. De volta ao 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 forma:

    • No campo Ponto Final do LUIS , transmita a Consulta de Exemplo que copiou no passo anterior. Certifique-se de que remove YOUR_QUERY_HERE do URL:

    Captura de ecrã a mostrar Passar a consulta de exemplo que copiou.

Testar e melhorar o reconhecimento de intenções

  1. Para utilizar o reconhecimento de intenções diretamente no editor do Unity, tem de permitir que o seu computador de desenvolvimento utilize o ditado. Para verificar esta definição, abra as Definições do Windows e, em seguida, selecioneVoz de Privacidade> e certifique-se de que o Reconhecimento de voz online está ativado:

    Captura de ecrã a mostrar a origem do teste do reconhecimento de intenções.

  2. Se entrar no Modo de jogo, pode testar o reconhecimento de intenção ao premir primeiro o botão do foguetão. Em seguida, partindo do princípio de que o seu computador tem um microfone, quando disser o primeiro exemplo de expressão, vá em frente e inicie o foguetão, verá o LunarModule a iniciar no espaço:

    Captura de ecrã a mostrar Entrar no modo de jogo.

  3. Experimente todas as expressões de exemplo e, em seguida, algumas variações das expressões de exemplo, bem como algumas expressões aleatórias.

  4. Em seguida, regresse ao LUIS e navegue para a página Melhorar > o desempenho > da aplicação Rever expressões de ponto final. Utilize o botão de alternar para mudar da Vista de Entidades predefinida para a Vista de Tokens e, em seguida, reveja as expressões:

    • Na coluna Expressão , altere e remova as etiquetas atribuídas conforme necessário para que fiquem alinhadas com a sua intenção
    • Na coluna Intenção alinhada , verifique se a intenção está correta
    • Na coluna Adicionar/Eliminar , selecione o botão de marca de verificação verde para adicionar a expressão ou o botão vermelho x para eliminá-la.
  5. Quando tiver revisto quantas expressões quiser, selecione o botão Preparar para voltar a preparar o modelo e, em seguida, o botão Publicar para voltar a publicar a aplicação atualizada:

    Captura de ecrã a mostrar Voltar a preparar o modelo.

    Nota

    Se uma expressão de ponto final não estiver alinhada com a intenção PressButton, mas quiser que o modelo saiba que a expressão não tem intenção, pode alterar a intenção Alinhado para Nenhum.

  6. Repita este processo quantas vezes quiser para melhorar o seu modelo de aplicação.