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

Concluído

Neste módulo, você explorará o reconhecimento de intenções do Azure Speech Service. O reconhecimento de intenções permite equipar a sua aplicação com comandos de fala movidos a IA, onde os utilizadores podem dizer comandos de fala não específicos e ainda ter a sua intenção entendida pelo sistema.

Preparar a cena

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

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

  2. Na janela Project, navegue até ao AssetsMRTK>. Tutorials.GettingStartedPrefabsRocketLauncher>>, arraste a RocketLauncher_Complete pré-fabricada para a sua janela da hierarquia e coloque-a num local adequado em frente à câmara, por exemplo:

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

    Screenshot of Add the RocketLauncher_Complete prefab.

  3. Na janela hierarquia, selecione novamente o objeto Lunarcom e, em seguida, expanda o objeto RocketLauncher_Complete>Abton e atribua os objetos do objeto do objeto botões para o campo de botões lunares correspondentes:

    Screenshot of Assigning each of the buttons.

Crie o recurso de compreensão da linguagem Azure

Nesta secção, irá criar um recurso de previsão Azure para a aplicação Language Understanding Serviço Inteligente (LUIS) que irá criar na secção seguinte.

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

    Screenshot of Azure prediction resource.

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

    Screenshot of create an instance of this service.

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

    • Para subscrição, selecione Free Trail se tiver uma subscrição de teste. Se não tiver uma subscrição de teste, selecione uma das suas outras subscrições.
    • Para o grupo de Recursos, selecione o novo link Criar , insira um nome adequado, por exemplo: MRKT-Tutorials. Selecione OK.

    Screenshot of Configure the prediction option.

    Nota

    A partir do momento desta escrita, não precisa de criar um recurso de autoria, porque uma chave de experimentação de autoria será automaticamente gerada dentro do LUIS quando criar o Serviço Inteligente Language Understanding (LUIS) na secção seguinte.

    Dica

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

  4. Enquanto ainda está na página Criar, insira os seguintes valores:

    • Para nome, insira um nome adequado para o serviço, por exemplo: MRTK-Tutorials-AzureSpeechServices
    • Para a localização da previsão, escolha um local próximo da localização física dos utilizadores da sua aplicação, por exemplo: (EUA) West US
    • Para o nível de preços de previsão, para efeitos deste tutorial, selecione F0 (5 chamadas por segundo, 10K Chamadas por mês)

    Screenshot of Configure the create page.

  5. Em seguida, selecione Rever + criar, rever 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 configurar um a ser criado):

    Screenshot of Review the details.

    Nota

    Criar os seus novos recursos pode levar alguns minutos.

  6. Uma vez concluído o processo de criação de recursos, verá a mensagem A sua implantação está concluída:

    Screenshot of Message display.

Crie o serviço inteligente de compreensão da linguagem (LUIS)

Nesta secção, irá criar uma app LUIS, configurar e treinar o seu modelo de previsão, e conectá-la ao recurso de previsão 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 irá ativar o Interactable. OnClick() evento num dos três botões vermelhos da cena, dependendo do botão que o utilizador referencia.

Por exemplo, se o utilizador disser para ir em frente e lançar o foguetão, a aplicação irá prever que vá em frente significa que devem ser tomadas algumas medidas , e que o Interactable. OnClick() evento a atingir está no botão de lançamento .

Os principais passos que tomará para o conseguir são:

  1. Criar uma aplicação LUIS
  2. Criar intenções
  3. Criar palavras de exemplo
  4. Criar entidades
  5. Atribuir entidades às expressões de exemplo
  6. Treine, teste e publique a app
  7. Atribua um recurso de previsão Azure à app

1. Criar uma aplicação LUIS

Utilizando a mesma conta de utilizador que usou ao criar o recurso Azure na secção anterior, faça sedús para o LUIS, selecione o seu país e concorde com os termos de utilização. No passo seguinte, quando solicitado para ligar a sua conta Azure, escolha Continuar a usar a sua chave de teste, para utilizar um recurso de autoria Azure.

Nota

Se já se inscreveu no LUIS e a sua chave de teste de autoria expirou, pode consultar o Migrate para um recurso Azure que autoria documentação-chave para mudar o seu recurso de autoria LUIS para Azure.

  1. Uma vez assinada, selecione Nova aplicação e introduza os seguintes valores na janela popup da nova aplicação :

    • Para nome, insira um nome adequado, por exemplo: TUTORiais MRTK - AzureSpeechServices
    • Para Cultura, selecione Inglês
    • Para descrição, insira opcionalmente uma descrição adequada
    • Para o recurso Prediction, selecione o recurso de previsão por lista de dropdown que tinha sido criado portal do Azure.
  2. Selecione Feito para criar a nova aplicação:

    Screenshot representing Select the done button.

  3. Quando a nova aplicação for criada, será levado para a página do Dashboard da aplicação:

    Screenshot of App's dashboard page.

2. Criar intenções

  1. A partir da página Dashboard, navegue para a página Build > App Assets >Intenções , em seguida, selecione Criar e introduzir o seguinte valor na janela popup de novas intenções :

    • Para nome de intenção, insira PressButton
  2. Selecione Feito para criar a nova intenção:

    Screenshot of Create a new intent.

    Atenção

    Para efeitos deste tutorial, o seu projeto De unidade referenciará esta intenção pelo seu nome (PressButton). É extremamente importante que diga exatamente a mesma coisa.

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

    Screenshot of Intent's page.

3. Criar palavras de exemplo

  1. À lista de palavras de exemplo do PressButton, adicione as seguintes declarações de exemplo:

    • ativar sequência de lançamento
    • mostrar-me uma dica de colocação
    • iniciar a sequência de lançamento
    • botão de sugestões de colocação de pressão
    • dá-me uma dica
    • carregar no botão de lançamento
    • Eu preciso de uma dica
    • pressione o botão de reset
    • tempo para redefinir a experiência
    • vá em frente e lançar o foguete
  2. Quando tiver adicionado todas as declarações de exemplo, a sua página de intenção PressButton deve ser assim:

    Screenshot of PressButton intent page.

    Atenção

    Para efeitos deste tutorial, o seu projeto Unidade referenciará as palavras "dica", "sugestões", "reset" e "lançamento". É extremamente importante que soletre estas palavras da mesma forma em todos os casos.

4. Criar entidades

  1. A partir da página de intenção PressButton, navegue até à página Build > App Assets >Entities , em seguida, selecione Criar e introduzir os seguintes valores na janela popup da nova entidade :

    • Para nome de entidade, insira Ação
    • Para o tipo de Entidade, selecione Máquina aprendida
  2. Selecione Criar para criar a nova entidade:

    Screenshot of Create a new entity.

  3. Repita o passo anterior para criar outra entidade chamada Target, para que tenha duas entidades chamadas Action and Target:

    Screenshot of Create a target entity.

    Atenção

    Para efeitos deste tutorial, o seu projeto De unidade referenciará estas entidades pelos seus nomes, Action e Target. É extremamente importante que nomeie as suas entidades exatamente da mesma forma.

5. Atribuir entidades às expressões de exemplo

A partir da página De Entidades, volte para a página de intenção do PressButton .

  1. Uma vez de volta na página de intenção pressButton, selecione a palavra ir e, em seguida, na palavra seguinte, em seguida, selecione Ação (Simples) do menu popup contextual para rotular vá em frente como um valor de entidade de Ação :

    Screenshot of Label go ahead as an action entity value.

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

    Screenshot of Notice the action entity value.

    Nota

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

  3. Em seguida, selecione o lançamento da palavra e, em seguida, selecione Target (Simple) do menu popup contextual para rotular o lançamento como um valor de entidade alvo :

    Screenshot of select the word launch.

  4. A palavra de lançamento é agora definida como um valor de entidade-alvo . Existe agora um valor de entidade-alvo sob a palavra "lançamento":

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

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

    • Intenção: PressButton
    • Entidade de ação: vá em frente
    • Entidade-alvo: lançamento
  6. Repita o processo anterior para atribuir uma etiqueta de Ação e uma entidade-alvo a cada uma das expressões de exemplo, tendo em conta que as seguintes palavras devem ser rotuladas como entidades-alvo :

    • dica (alvos do HintsButton no projeto Unidade)
    • dicas (alvos HintsButton no projeto Unidade)
    • reset (visa o ResetButton no projeto Unidade)
    • lançamento (visa o LaunchButton no projeto Unidade)
  7. Quando tiver rotulado todas as expressões de exemplo, a sua página de intenção PressButton deve ser assim:

    Screenshot of All the example utterances have been labeled.

6. Treine, teste e publique a app

  1. Para treinar a aplicação, selecione o botão Train e aguarde que o processo de treino esteja concluído:

    Screenshot of Train the app.

    Nota

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

  2. Quando o treino terminar o processamento, selecione o botão Teste e, em seguida, escreva em frente e lance o foguete e prima a tecla Enter:

    Screenshot of select the test button.

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

    • Intenção: PressButton (com uma certeza de 98,5%)
    • Entidade de ação: vá em frente
    • Entidade-alvo: lançamento

    Screenshot of select inspect to see the test results.

  4. Para publicar a aplicação, selecione o botão Publicar no canto superior direito, em seguida, na janela popup de publicação e definições , selecione Produção e selecione o botão Fazer :

    Screenshot of Publish the app.

  5. Aguarde que o processo de publicação esteja concluído:

    Screenshot of Wait for the publishing process to complete.

  6. Navegue para a página De Gestão > Definições >Recursos Azure. A sua página de Recursos Azure deve ser semelhante a esta:

    Screenshot of Azure resources page.

Ligação o projeto de unidade à app LUIS

  1. Na página 'Gerir > Definições >Recursos Azure', selecione o ícone Copiar para copiar a Consulta exemplo:

    Screenshot of Connecting the unity project.

  2. De volta ao seu projeto de Unidade, na janela da Hierarquia, selecione o objeto Lunarcom , em seguida, na janela do Inspetor, localize o componente Lunarcom Intent Recogniser (Script) e configuure-o da seguinte forma:

    • No campo LUIS Endpoint , passe o Exemplo de Consulta que copiou no passo anterior. Certifique-se de remover YOUR_QUERY_HERE do URL:

    Screenshot of Pass the example query you copied.

Teste e melhore o reconhecimento de intenção

  1. Para utilizar o reconhecimento de intenções diretamente no editor da Unidade, deve permitir que o seu computador de desenvolvimento utilize ditado. Para verificar esta definição, abra Windows Definições, em seguida, escolha PrivacySpeech> e certifique-se de que o reconhecimento de voz online é ligado:

    Screenshot of Testing the intent recognition.

  2. Se entrar no modo Jogo, pode testar o reconhecimento de intenção premindo primeiro o botão do foguetão. Então, assumindo que o seu computador tem um microfone, quando diz o primeiro exemplo, vá em frente e lance o foguete, verá o lançamento da LunarModule no espaço:

    Screenshot of Enter the game mode.

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

  4. Em seguida, volte ao LUIS e navegue para Construir > Melhorar a página de comentários de ponto> final do ponto final da app. Utilize o botão de alternar para mudar a partir do padrão Entidades Ver para Ver Tokens e, em seguida, rever as expressões:

    • Na coluna Utterance , altere e remova as etiquetas atribuídas conforme necessário para que se alinhem com a sua intenção
    • Na coluna de intenções alinhadas , 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á-lo.
  5. Quando tiver revisto as palavras que quiser, selecione o botão Train para voltar a treinar o modelo e, em seguida, o botão Publicar para republicar a aplicação atualizada:

    Screenshot of Retrain the model.

    Nota

    Se uma expressão de ponto final não se alinhar com a intenção do PressButton, mas gostaria que o seu modelo soubesse que a expressão não tem intenção, pode alterar a intenção alinhada para Nenhum.

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