Desenvolver aplicativos de comandos personalizados

Importante

Os Comandos Personalizados serão desativados em 30 de abril de 2026. A partir de 30 de outubro de 2023, você não poderá criar novos aplicativos de Comandos Personalizados no Speech Studio. Relacionado com esta mudança, o LUIS será aposentado a 1 de outubro de 2025. A partir de 1 de abril de 2023 não é possível criar novos recursos LUIS.

Neste artigo de instruções, você aprenderá a desenvolver e configurar aplicativos de Comandos Personalizados. O recurso Comandos personalizados ajuda você a criar aplicativos avançados de comando de voz otimizados para experiências de interação que priorizam a voz. O recurso é mais adequado para a conclusão de tarefas ou cenários de comando e controle. É adequado para dispositivos de Internet das Coisas (IoT) e para dispositivos ambientais e sem cabeça.

Neste artigo, você cria um aplicativo que pode ligar e desligar uma TV, definir a temperatura e definir um alarme. Depois de criar esses comandos básicos, você aprenderá sobre as seguintes opções para personalizar comandos:

  • Adicionando parâmetros a comandos
  • Adicionando configurações aos parâmetros de comando
  • Construindo regras de interação
  • Criação de modelos de geração de linguagem para respostas de fala
  • Usando ferramentas de voz personalizadas

Criar um aplicativo usando comandos simples

Comece criando um aplicativo de Comandos Personalizados vazio. Para obter detalhes, consulte o início rápido. Neste aplicativo, em vez de importar um projeto, você cria um projeto em branco.

  1. Na caixa Nome, digite o nome do projeto Smart-Room-Lite (ou outro nome de sua escolha).

  2. Na lista Idioma, selecione Inglês (Estados Unidos).

  3. Selecione ou crie um recurso LUIS.

    Screenshot showing the

Atualizar recursos LUIS (opcional)

Você pode atualizar o recurso de criação selecionado na janela Novo projeto . Você também pode definir um recurso de previsão.

Um recurso de previsão é usado para reconhecimento quando seu aplicativo de Comandos Personalizados é publicado. Você não precisa de um recurso de previsão durante as fases de desenvolvimento e teste.

Adicionar um comando TurnOn

No aplicativo Smart-Room-Lite Custom Commands vazio que você criou, adicione um comando. O comando processa um enunciado, Turn on the tv. Ele responde com a mensagem Ok, turning the tv on.

  1. Crie um novo comando selecionando Novo comando na parte superior do painel esquerdo. A janela de comando Novo é aberta.
  2. Para o campo Nome, forneça o valor TurnOn.
  3. Selecione Criar.

O painel do meio lista as propriedades do comando.

A tabela a seguir explica as propriedades de configuração do comando. Para obter mais informações, consulte Conceitos e definições de comandos personalizados.

Configuração Description
Frases de exemplo Exemplos de enunciados que o usuário pode dizer para acionar esse comando.
Parâmetros Informações necessárias para concluir o comando.
Regras de conclusão Ações a serem tomadas para cumprir o comando. Exemplos: responder ao utilizador ou comunicar com um serviço Web.
Regras de interação Outras regras para lidar com situações mais específicas ou complexas.

Screenshot showing where to create a command.

Adicionar frases de exemplo

Na seção Frases de exemplo, você fornece um exemplo do que o usuário pode dizer.

  1. No painel central, selecione Frases de exemplo.

  2. No painel à direita, adicione exemplos:

    Turn on the tv
    
  3. Na parte superior do painel, selecione Salvar.

Você ainda não tem parâmetros, então pode ir para a seção Regras de conclusão.

Adicionar uma regra de conclusão

Em seguida, o comando precisa de uma regra de conclusão. Esta regra informa ao usuário que uma ação de cumprimento está sendo executada.

Para obter mais informações sobre regras e regras de conclusão, consulte Conceitos e definições de comandos personalizados.

  1. Selecione a regra de conclusão padrão Concluído. Em seguida, edite-o da seguinte forma:

    Definição Valor sugerido Description
    Nome ConfirmationResponse Um nome que descreve a finalidade da regra
    Condições Nenhuma Condições que determinam quando a regra pode ser executada
    Ações Enviar resposta>de fala Editor simples>Ok, turning the tv on A ação a ser tomada quando a condição da regra for verdadeira

    Screenshot showing where to create a speech response.

  2. Selecione Salvar para salvar a ação.

  3. De volta à seção Regras de conclusão, selecione Salvar para salvar todas as alterações.

    Nota

    Não é necessário usar a regra de conclusão padrão que acompanha o comando. Você pode excluir a regra de conclusão padrão e adicionar sua própria regra.

Adicionar um comando SetTemperature

Agora adicione mais um comando, SetTemperature. Este comando usa um único enunciado Set the temperature to 40 degreese responde com a mensagem Ok, setting temperature to 40 degrees.

Para criar o novo comando, siga as etapas usadas para o TurnOn comando, mas use a frase Set the temperature to 40 degreesde exemplo .

Em seguida, edite as regras de conclusão Concluído existentes da seguinte maneira:

Definição Valor sugerido
Nome ConfirmationResponse
Condições Nenhuma
Ações Enviar resposta>de fala Editor>simples Primeira variação>Ok, setting temperature to 40 degrees

Selecione Salvar para salvar todas as alterações no comando.

Adicionar um comando SetAlarm

Crie um novo SetAlarm comando. Use a frase Set an alarm for 9 am tomorrowde exemplo . Em seguida, edite as regras de conclusão Concluído existentes da seguinte maneira:

Definição Valor sugerido
Nome ConfirmationResponse
Condições Nenhuma
Ações Enviar resposta>de fala Editor>simples Primeira variação>Ok, setting an alarm for 9 am tomorrow

Selecione Salvar para salvar todas as alterações no comando.

Experimente

Teste o comportamento do aplicativo usando o painel de teste:

  1. No canto superior direito do painel, selecione o ícone Treinar .
  2. Quando o treinamento terminar, selecione Testar.

Experimente os seguintes exemplos de enunciados usando voz ou texto:

  • Você digita: defina a temperatura para 40 graus
  • Resposta esperada: Ok, definindo a temperatura para 40 graus
  • Você digita: liga a TV
  • Resposta esperada: Ok, ligando a TV
  • Você digita: defina um alarme para 9 da manhã de amanhã
  • Resposta esperada: Ok, definir um alarme para as 9 da manhã de amanhã

Screenshot showing the test in a web-chat interface.

Gorjeta

No painel de teste, você pode selecionar Ativar detalhes para obter informações sobre como essa entrada de voz ou texto foi processada.

Adicionar parâmetros aos comandos

Nesta seção, você aprenderá a adicionar parâmetros aos seus comandos. Os comandos requerem parâmetros para concluir uma tarefa. Em cenários complexos, os parâmetros podem ser usados para definir condições que acionam ações personalizadas.

Configurar parâmetros para um comando TurnOn

Comece editando o comando existente TurnOn para ativar e desativar vários dispositivos.

  1. Agora que o comando lida com cenários on e off, renomeie o comando como TurnOnOff.

    1. No painel à esquerda, selecione o comando TurnOn . Em seguida, ao lado de Novo comando na parte superior do painel, selecione o botão de edição.

    2. Na janela de comando Renomear, altere o nome para TurnOnOff.

  2. Adicione um novo parâmetro ao comando. O parâmetro representa se o usuário deseja ligar ou desligar o dispositivo.

    1. Na parte superior do painel central, selecione Adicionar. No menu suspenso, selecione Parâmetro.

    2. No painel à direita, na seção Parâmetros, na caixa Nome, adicione OnOff.

    3. Selecione Obrigatória. Na janela Adicionar resposta para um parâmetro necessário, selecione Editor simples. No campo Primeira variação, adicione Ativado ou Desativado.

    4. Selecione Atualizar.

      Screenshot that shows the 'Add response for a required parameter' section with the 'Simple editor' tab selected.

    5. Configure as propriedades do parâmetro usando a tabela a seguir. Para obter informações sobre todas as propriedades de configuração de um comando, consulte Conceitos e definições de comandos personalizados.

      Configuração Valor sugerido Description
      Nome OnOff Um nome descritivo para o parâmetro
      Obrigatório Selecionado Caixa de seleção que indica se um valor para esse parâmetro é necessário antes que o comando seja concluído.
      Resposta para o parâmetro necessário Editor simples>On or Off? Um prompt solicitando o valor desse parâmetro quando ele não é conhecido.
      Tipo Cadeia Tipo de parâmetro, como Número, String, Data Hora ou Geografia.
      Configuração Aceitar valores de entrada predefinidos de um catálogo interno Para cadeias de caracteres, essa configuração limita as entradas a um conjunto de valores possíveis.
      Valores de entrada predefinidos on, off Conjunto de valores possíveis e seus aliases.
    6. Para adicionar valores de entrada predefinidos, selecione Adicionar uma entrada predefinida. Na janela Novo Item , digite Nome conforme mostrado na tabela anterior. Neste caso, não está a utilizar aliases, pelo que pode deixar este campo em branco.

      Screenshot showing how to create a parameter.

    7. Selecione Salvar para salvar todas as configurações do parâmetro.

Adicionar um parâmetro SubjectDevice

  1. Para adicionar um segundo parâmetro para representar o nome dos dispositivos que podem ser controlados usando esse comando, selecione Adicionar. Use a seguinte configuração.

    Definição Valor sugerido
    Nome SubjectDevice
    Obrigatório Selecionado
    Resposta para o parâmetro necessário Editor simples>Which device do you want to control?
    Tipo Cadeia
    Configuração Aceitar valores de entrada predefinidos de um catálogo interno
    Valores de entrada predefinidos tv, fan
    Pseudónimos (tv) television, telly
  2. Selecione Guardar.

Modificar frases de exemplo

Para comandos que usam parâmetros, é útil adicionar frases de exemplo que abranjam todas as combinações possíveis. Por exemplo:

  • Informações completas sobre os parâmetros: turn {OnOff} the {SubjectDevice}
  • Informação parcial dos parâmetros: turn it {OnOff}
  • Nenhuma informação de parâmetro: turn something

Frases de exemplo que usam diferentes graus de informação permitem que o aplicativo Comandos Personalizados resolva resoluções de uma captura e resoluções de várias voltas usando informações parciais.

Com essas informações em mente, edite as frases de exemplo para usar estes parâmetros sugeridos:

turn {OnOff} the {SubjectDevice}
{SubjectDevice} {OnOff}
turn it {OnOff}
turn something {OnOff}
turn something

Selecione Guardar.

Gorjeta

No editor de frases de exemplo, use chaves para fazer referência aos seus parâmetros. Por exemplo, turn {OnOff} the {SubjectDevice}. Use uma guia para conclusão automática apoiada por parâmetros criados anteriormente.

Modificar regras de conclusão para incluir parâmetros

Modifique a regra ConfirmationResponsede conclusão existente.

  1. Na seção Condições, selecione Adicionar uma condição.

  2. Na janela Nova condição, na lista Tipo, selecione Parâmetros necessários. Na lista a seguir, selecione OnOff e SubjectDevice.

  3. Selecione Criar.

  4. Na seção Ações, edite a ação Enviar resposta de fala passando o mouse sobre ela e selecionando o botão de edição. Desta vez, use os parâmetros e SubjectDevice recém-criadosOnOff:

    Ok, turning the {SubjectDevice} {OnOff}
    
  5. Selecione Guardar.

Experimente as alterações selecionando o ícone Trem na parte superior do painel à direita.

Quando o treinamento terminar, selecione Testar. Uma janela Testar seu aplicativo é exibida. Tente as seguintes interações:

  • Entrada: desligue a tv
  • Saída: Ok, desligando a tv
  • Entrada: desligue a televisão
  • Saída: Ok, desligando a tv
  • Entrada: desligue-o
  • Saída: Qual dispositivo você deseja controlar?
  • Entrada: a tv
  • Saída: Ok, desligando a tv

Configurar parâmetros para um comando SetTemperature

Modifique o comando para permitir que ele defina a temperatura como o SetTemperature usuário direciona.

Adicione um TemperatureValue parâmetro. Utilize a seguinte configuração:

Configuração Valor sugerido
Nome TemperatureValue
Obrigatório Selecionado
Resposta para o parâmetro necessário Editor simples>What temperature would you like?
Tipo Number

Edite os enunciados de exemplo para usar os seguintes valores.

set the temperature to {TemperatureValue} degrees
change the temperature to {TemperatureValue}
set the temperature
change the temperature

Edite as regras de conclusão existentes. Use a seguinte configuração.

Configuração Valor sugerido
Condições Parâmetro>necessário TemperatureValue
Ações Enviar resposta de fala>Ok, setting temperature to {TemperatureValue} degrees

Configurar parâmetros para um comando SetAlarm

Adicione um parâmetro chamado DateTime. Use a seguinte configuração.

Definição Valor sugerido
Nome DateTime
Obrigatório Selecionado
Resposta para o parâmetro necessário Editor simples>For what time?
Tipo DateTime
Padrões de data Se a data estiver faltando, use hoje.
Padrões de tempo Se faltar a hora, utilize o início do dia.

Nota

Este artigo usa principalmente os tipos de parâmetros String, Number e DateTime. Para obter uma lista de todos os tipos de parâmetros suportados e suas propriedades, consulte Conceitos e definições de comandos personalizados.

Edite os enunciados de exemplo. Use os seguintes valores.

set an alarm for {DateTime}
set alarm {DateTime}
alarm for {DateTime}

Edite as regras de conclusão existentes. Use a seguinte configuração.

Definição Valor sugerido
Ações Enviar resposta de fala>Ok, alarm set for {DateTime}

Teste os três comandos juntos usando enunciados relacionados a comandos diferentes. (Você pode alternar entre os diferentes comandos.)

  • Entrada: Definir um alarme
  • Saída: Por que horas?
  • Entrada: Ligue a TV
  • Saída: Ok, ligando a tv
  • Entrada: Definir um alarme
  • Saída: Por que horas?
  • Entrada: 17h
  • Saída: Ok, alarme definido para 2020-05-01 17:00:00

Adicionar configurações aos parâmetros de comando

Nesta seção, você aprenderá mais sobre a configuração avançada de parâmetros, incluindo:

  • Como os valores de parâmetro podem pertencer a um conjunto definido fora do aplicativo Comandos personalizados.
  • Como adicionar cláusulas de validação nos valores dos parâmetros.

Configurar um parâmetro como uma entidade de catálogo externo

O recurso Comandos personalizados permite configurar parâmetros de tipo de cadeia de caracteres para fazer referência a catálogos externos hospedados em um ponto de extremidade da Web. Assim, você pode atualizar o catálogo externo independentemente sem editar o aplicativo Comandos personalizados. Esta abordagem é útil nos casos em que as entradas do catálogo são numerosas.

Reutilize o SubjectDeviceTurnOnOff parâmetro do comando. A configuração atual para este parâmetro é Aceitar entradas predefinidas do catálogo interno. Esta configuração refere-se a uma lista estática de dispositivos na configuração do parâmetro. Mova esse conteúdo para uma fonte de dados externa que possa ser atualizada independentemente.

Para mover o conteúdo, comece adicionando um novo ponto de extremidade da Web. No painel à esquerda, vá para a seção Pontos de extremidade da Web. Adicione um novo URL de ponto de extremidade da Web. Use a seguinte configuração.

Definição Valor sugerido
Nome getDevices
URL <Your endpoint of getDevices.json>
Método GET

Em seguida, configure e hospede um ponto de extremidade da Web que retorna um arquivo JSON que lista os dispositivos que podem ser controlados. O ponto de extremidade da Web deve retornar um arquivo JSON formatado como este exemplo:

{
    "fan" : [],
    "refrigerator" : [
        "fridge"
    ],
    "lights" : [
        "bulb",
        "bulbs",
        "light",
        "light bulb"
    ],
    "tv" : [
        "telly",
        "television"
        ]
}

Em seguida, vá para a página de configurações de parâmetros SubjectDevice . Configure as seguintes propriedades.

Definição Valor sugerido
Configuração Aceitar entradas predefinidas do catálogo externo
Ponto de extremidade do catálogo getDevices
Método GET

Em seguida, selecione Guardar.

Importante

Você não verá uma opção para configurar um parâmetro para aceitar entradas de um catálogo externo, a menos que tenha o ponto de extremidade da Web definido na seção Ponto de extremidade da Web no painel à esquerda.

Experimente selecionando Treinar. Após o término do treinamento, selecione Testar e tente algumas interações.

  • Entrada: ligar
  • Saída: Qual dispositivo você deseja controlar?
  • Entrada: luzes
  • Saída: Ok, acendendo as luzes

Nota

Agora você pode controlar todos os dispositivos hospedados no ponto de extremidade da Web. Mas você ainda precisa treinar o aplicativo para testar as novas alterações e, em seguida, publicar novamente o aplicativo.

Adicionar validação a parâmetros

Validações são construções que se aplicam a determinados tipos de parâmetros que permitem configurar restrições no valor do parâmetro. Eles solicitam correções se os valores não estiverem dentro das restrições. Para obter uma lista de tipos de parâmetros que estendem a construção de validação, consulte Conceitos e definições de comandos personalizados.

Teste validações usando o SetTemperature comando. Use as etapas a seguir para adicionar uma validação para o Temperature parâmetro.

  1. No painel à esquerda, selecione o comando SetTemperature .

  2. No painel central, selecione Temperatura.

  3. No painel à direita, selecione Adicionar uma validação.

  4. Na janela Nova validação, configure a validação conforme mostrado na tabela a seguir. Depois, selecione Criar.

    Configuração de parâmetros Valor sugerido Description
    Valor mínimo 60 Para parâmetros Number, o valor mínimo que este parâmetro pode assumir
    Valor máximo 80 Para parâmetros Number, o valor máximo que este parâmetro pode assumir
    Resposta a falhas Editor>simples Primeira variação>Sorry, I can only set temperature between 60 and 80 degrees. What temperature do you want? Um prompt para solicitar um novo valor se a validação falhar

    Screenshot showing how to add a range validation.

Experimente selecionando o ícone Trem na parte superior do painel à direita. Após o término do treinamento, selecione Testar. Experimente algumas interações:

  • Entrada: Defina a temperatura para 72 graus
  • Saída: Ok, definindo a temperatura para 72 graus
  • Entrada: Defina a temperatura para 45 graus
  • Saída: Desculpe, eu só posso definir a temperatura entre 60 graus e 80 graus
  • Entrada: faça 72 graus em vez disso
  • Saída: Ok, definindo a temperatura para 72 graus

Adicionar regras de interação

As regras de interação são regras extras que lidam com situações específicas ou complexas. Embora você seja livre para criar suas próprias regras de interação, neste exemplo você usa regras de interação para os seguintes cenários:

  • Confirmando comandos
  • Adicionando uma correção de uma etapa aos comandos

Para obter mais informações sobre regras de interação, consulte Conceitos e definições de comandos personalizados.

Adicionar confirmações a um comando

Para adicionar uma confirmação, use o SetTemperature comando. Para obter a confirmação, crie regras de interação usando as seguintes etapas:

  1. No painel à esquerda, selecione o comando SetTemperature .

  2. No painel central, adicione regras de interação selecionando Adicionar. Em seguida, selecione Regras>de interação Confirmar comando.

    Esta ação adiciona três regras de interação. As regras pedem ao usuário para confirmar a data e hora do alarme. Eles esperam uma confirmação (sim ou não) para o próximo turno.

    1. Modifique a regra de interação do comando Confirm usando a seguinte configuração:

      1. Altere o nome para Confirmar temperatura.
      2. A condição Todos os parâmetros necessários já está definida.
      3. Adicionar uma nova ação: Digite>Enviar resposta>de fala Tem certeza de que deseja definir a temperatura como {TemperatureValue} graus?
      4. Na seção Expectativas, deixe o valor padrão de Esperando confirmação do usuário.

      Screenshot showing how to create the required parameter response.

    2. Modifique a regra de interação Confirmação bem-sucedida para lidar com uma confirmação bem-sucedida (o usuário disse que sim).

      1. Altere o nome para Temperatura de confirmação bem-sucedida.
      2. Deixar a condição existente Confirmação foi bem-sucedida .
      3. Adicione uma nova condição: Digite>Parâmetros>necessários TemperatureValue.
      4. Deixe o valor padrão do estado pós-execução como Executar regras de conclusão.
    3. Modifique a regra de interação Confirmação negada para lidar com cenários em que a confirmação é negada (o usuário disse não).

      1. Altere o nome para Temperatura de confirmação negada.
      2. Deixar a condição de confirmação existente foi negada .
      3. Adicione uma nova condição: Digite>Parâmetros>necessários TemperatureValue.
      4. Adicionar uma nova ação: Digite>Enviar resposta>de fala Não há problema. Que temperatura então?.
      5. Altere o valor padrão do estado pós-execução para Aguarde a entrada do usuário.

Importante

Neste artigo, você usa o recurso de confirmação interno. Você também pode adicionar manualmente regras de interação, uma a uma.

Experimente as alterações selecionando Treinar. Quando o treinamento terminar, selecione Testar.

  • Entrada: Defina a temperatura para 80 graus
  • Saída: tem certeza de que deseja definir a temperatura como 80 graus?
  • Entrada: Não
  • Saída: Sem problemas. Que temperatura então?
  • Entrada: 72 graus
  • Saída: tem certeza de que deseja definir a temperatura como 72 graus?
  • Entrada: Sim
  • Saída: OK, definindo a temperatura para 72 graus

Implementar correções em um comando

Nesta seção, você configura uma correção de uma etapa. Essa correção é usada após a execução da ação de preenchimento. Você também verá um exemplo de como uma correção é habilitada por padrão se o comando ainda não for cumprido. Para adicionar uma correção quando o comando não estiver concluído, adicione o novo parâmetro AlarmTone.

No painel esquerdo, selecione o comando SetAlarm . Em seguida, adicione o novo parâmetro AlarmTone.

  • Nome>AlarmTone
  • Tipo>String
  • Chimes de valor>padrão
  • Configuração>Aceitar valores de entrada predefinidos do catálogo interno
  • Valores>de entrada predefinidos Chimes, Jingle e Echo (Estes valores são entradas individuais predefinidas.)

Em seguida, atualize a resposta para o parâmetro DateTime para Ready to set alarm with tone as {AlarmTone}. Por que tempo?. Em seguida, modifique a regra de conclusão da seguinte maneira:

  1. Selecione a regra de conclusão existente ConfirmationResponse.
  2. No painel à direita, passe o mouse sobre a ação existente e selecione Editar.
  3. Atualize a resposta de fala para OK, alarm set for {DateTime}. The alarm tone is {AlarmTone}.

Importante

O tom de alarme pode mudar sem qualquer configuração explícita em um comando contínuo. Por exemplo, ele pode mudar quando o comando ainda não terminou. Uma correção é habilitada por padrão para todos os parâmetros do comando, independentemente do número da volta, se o comando ainda não tiver sido cumprido.

Implementar uma correção quando um comando for concluído

A plataforma Comandos Personalizados permite a correção em uma etapa, mesmo quando o comando termina. Esta funcionalidade não está ativada por predefinição. Deve ser explicitamente configurado.

Use as seguintes etapas para configurar uma correção de uma etapa:

  1. No comando SetAlarm, adicione uma regra de interação do tipo Atualizar comando anterior para atualizar o alarme definido anteriormente. Renomeie a regra de interação como Atualizar alarme anterior.
  2. Deixe a condição padrão: O comando anterior precisa ser atualizado.
  3. Adicione uma nova condição: Type>Required Parameter>DateTime.
  4. Adicionar uma nova ação: Tipo>Enviar resposta>de fala Editor>simples Atualizando a hora de alarme anterior para {DateTime}.
  5. Deixe o valor padrão do estado pós-execução como Comando concluído.

Experimente as alterações selecionando Treinar. Aguarde até que o treinamento termine e selecione Testar.

  • Entrada: Defina um alarme.
  • Saída: Pronto para definir o alarme com tom como Chimes. A que horas?
  • Entrada: Defina um alarme com o tom como Jingle para as 9h de amanhã.
  • Saída: OK, alarme definido para 2020-05-21 09:00:00. O tom de alarme é Jingle.
  • Entrada: Não, 8h.
  • Saída: Atualizando o tempo de alarme anterior para 2020-05-29 08:00.

Nota

Em um aplicativo real, na seção Ações desta regra de correção, você também precisará enviar de volta uma atividade para o cliente ou chamar um ponto de extremidade HTTP para atualizar o tempo de alarme em seu sistema. Esta ação deve ser a única responsável pela atualização do tempo de alarme. Ele não deve ser responsável por qualquer outro atributo do comando. Neste caso, esse atributo seria o tom de alarme.

Adicionar modelos de geração de idiomas para respostas de fala

Os modelos de geração de linguagem (LG) permitem personalizar as respostas enviadas ao cliente. Eles introduzem variância nas respostas. Você pode obter a geração de idiomas usando:

  • Modelos de geração de idiomas.
  • Expressões adaptativas.

Os modelos de Comandos Personalizados são baseados nos modelos LG do Bot Framework. Como o recurso Comandos personalizados cria um novo modelo LG quando necessário (para respostas de fala em parâmetros ou ações), não é necessário especificar o nome do modelo LG.

Portanto, você não precisa definir seu modelo assim:

   # CompletionAction
   - Ok, turning {OnOff} the {SubjectDevice}
   - Done, turning {OnOff} the {SubjectDevice}
   - Proceeding to turn {OnOff} {SubjectDevice}

Em vez disso, você pode definir o corpo do modelo sem o nome, da seguinte forma:

Screenshot showing a template editor example.

Esta alteração introduz variação nas respostas de fala que são enviadas ao cliente. Para um enunciado, a resposta de fala correspondente é escolhida aleatoriamente entre as opções fornecidas.

Aproveitando os modelos LG, você também pode definir respostas de fala complexas para comandos usando expressões adaptáveis. Para obter mais informações, consulte o formato de modelos LG.

Por padrão, o recurso Comandos personalizados suporta todos os recursos, com as seguintes pequenas diferenças:

  • Nos modelos LG, as entidades são representadas como ${entityName}. O recurso Comandos personalizados não usa entidades. Mas você pode usar parâmetros como variáveis com a representação ou a ${parameterName}{parameterName} representação.
  • O recurso Comandos personalizados não suporta composição e expansão de modelos, porque você nunca edita o arquivo .lg diretamente. Você edita apenas as respostas de modelos criados automaticamente.
  • O recurso Comandos personalizados não suporta funções personalizadas que a LG injeta. Funções predefinidas são suportadas.
  • O recurso Comandos personalizados não oferece suporte a opções, como strict, replaceNulle lineBreakStyle.

Adicionar respostas de modelo a um comando TurnOnOff

Modifique o TurnOnOff comando para adicionar um novo parâmetro. Use a seguinte configuração.

Definição Valor sugerido
Nome SubjectContext
Obrigatório não selecionado
Tipo Cadeia
Valor predefinido all
Configuração Aceitar valores de entrada predefinidos do catálogo interno
Valores de entrada predefinidos room, , bathroomall

Modificar uma regra de conclusão

Edite a seção Ações da regra de conclusão existente ConfirmationResponse. Na janela Editar ação, alterne para Editor de modelos. Em seguida, substitua o texto pelo exemplo a seguir.

- IF: @{SubjectContext == "all" && SubjectDevice == "lights"}
    - Ok, turning all the lights {OnOff}
- ELSEIF: @{SubjectDevice == "lights"}
    - Ok, turning {OnOff} the {SubjectContext} {SubjectDevice}
- ELSE:
    - Ok, turning the {SubjectDevice} {OnOff}
    - Done, turning {OnOff} the {SubjectDevice}

Treine e teste seu aplicativo usando as seguintes entradas e saídas. Observe a variação das respostas. A variação é criada por várias alternativas do valor do modelo e também pelo uso de expressões adaptativas.

  • Entrada: ligue a tv
  • Saída: Ok, ligando a tv
  • Entrada: ligue a tv
  • Saída: Feito, ligado a tv
  • Entrada: desligue as luzes
  • Saída: Ok, apagando todas as luzes
  • Entrada: desligue as luzes da sala
  • Saída: Ok, apagando as luzes da sala

Usar uma voz personalizada

Outra maneira de personalizar as respostas dos Comandos Personalizados é selecionar uma voz de saída. Use as seguintes etapas para alternar a voz padrão para uma voz personalizada:

  1. No aplicativo Comandos personalizados, no painel à esquerda, selecione Configurações.
  2. No painel central, selecione Voz personalizada.
  3. Na tabela, selecione uma voz personalizada ou uma voz pública.
  4. Selecione Guardar.

Screenshot showing sample sentences and parameters.

Nota

Para vozes públicas, os tipos neurais estão disponíveis apenas para regiões específicas. Para obter mais informações, consulte Regiões suportadas pelo serviço de fala.

Você pode criar vozes personalizadas na página Projeto de voz personalizado. Para obter mais informações, consulte Introdução à voz personalizada.

Agora, o aplicativo responde na voz selecionada, em vez da voz padrão.

Próximos passos