Share via


Elementos e atributos de Voice Command Definition (VCD) v1.2

Observação

O Cortana Skills Kit para o consumidor e a empresa e as habilidades criadas nessas plataformas foram preteridos.

Documentação de referência para os elementos de marcação XML e atributos usados em arquivos VCD (Definição de Comando de Voz) para especificar restrições de reconhecimento.

Use comandos de voz para iniciar um aplicativo e especificar uma ação ou um comando a ser executado. Por exemplo, um usuário pode tocar no botão Iniciar e dizer "Widgets da Contoso, mostrar best sellers" para iniciar o aplicativo Widgets da Contoso e navegar até uma página de "best sellers".

Elementos e atributos

Assim como acontece com qualquer arquivo XML, um arquivo VCD deve começar com uma declaração XML que especifica a versão XML e a codificação de caracteres.

<?xml version="1.0" encoding="utf-8"?>

O elemento raiz é o elemento VoiceCommands e seu atributo xmlns deve ser definido http://schemas.microsoft.com/voicecommands/1.2 como (sem caracteres maiúsculos). Para obter um exemplo que esteja em conformidade com esse esquema, consulte o exemplo de Comando de Voz da Cortana.

Elemento Descrição
VoiceCommands Obrigatórios. O elemento raiz de um arquivo VCD. Contém entre 1 e 15 elementos CommandSet , cada um dos quais representa os comandos de voz para um único idioma.
CommandSet Elemento filho obrigatório do elemento VoiceCommands . Um contêiner para todos os comandos de voz que um aplicativo aceitará no idioma especificado pelo atributo xml:lang necessário.

O valor do atributo xml:lang deve ser exclusivo no documento VoiceCommand e é uma linguagem única e específica, especificada no formato de nome de idioma, que corresponde a um idioma que está disponível no painel de controle de Fala .

Nota Os idiomas especificados no arquivo VCD, mas sem suporte no sistema, são ignorados.

O atributo Name é opcional e pode ser qualquer cadeia de caracteres arbitrária; no entanto, o atributo Name é necessário para fazer referência e atualizar a PhraseList de um elemento CommandSet programaticamente. O elemento CommandSet contém os seguintes elementos filho: CommandPrefix (0 ou 1) ou AppName (0 ou 1), Exemplo (exatamente 1), Command (1 a 100), elementos PhraseList (0 a 10) e elementos PhraseTopic (0 a 10). Esses elementos filho devem ocorrer na ordem listada.

Mutuamente exclusivo CommandPrefix

Elemento filho opcional do elemento CommandSet . Se estiver presente, deverá ser o primeiro elemento filho do elemento CommandSet .

Especifica um nome amigável para um aplicativo que um usuário pode falar ao fornecer um comando de voz. Isso é útil para aplicativos com nomes longos ou difíceis de pronunciar.

Evite usar prefixos que entram em conflito com outras experiências habilitadas para voz.

AppName

Elemento filho opcional do elemento CommandSet . Se estiver presente, deverá ser o primeiro elemento filho do elemento CommandSet .

Substitui CommandPrefix e dá suporte ao atributo RequireAppName e {builtin:AppName} à frase do elemento ListenFor .

Especifica um nome amigável para um aplicativo que um usuário pode falar ao fornecer um comando de voz. Isso é útil para aplicativos com nomes longos ou difíceis de pronunciar.

Evite usar prefixos que entram em conflito com outras experiências habilitadas para voz.

Por padrão, o AppName tem suporte como sufixo no comando de voz.

Comando

Elemento filho necessário do elemento CommandSet .

Usa o atributo Name . Define uma ação de aplicativo que os usuários podem iniciar falando e o que os usuários podem dizer para iniciar a ação. Cada elemento Command pode ser associado a uma página específica em seu aplicativo. Contém os seguintes elementos filho necessários: Exemplo (exatamente 1), ListenFor (1 a 20), Feedback (exatamente 1) e Navigate (exatamente 1). Esses elementos filho devem ocorrer na ordem listada.

Exemplo Filho obrigatório do elemento CommandSet (exatamente 1) e do elemento Command (1 a 20). Fornece um exemplo representativo do que um usuário pode dizer para um CommandSet como um todo e para um comando individual. Esses exemplos ficarão visíveis para um usuário na tela O que posso dizer . Essa tela é exibida quando um usuário pressiona e segura o botão Pesquisar (em telefones Windows) ou invoca a Cortana e diz: "Ajuda" ou "O que posso dizer?", ou toca Em Ver mais.

Nota Os exemplos devem incluir AppName ou CommandPrefix.

ListenFor

Elemento filho obrigatório (1 a 20) do elemento Command .

Contém uma palavra ou frase que seu aplicativo reconhecerá para este comando. Isso pode incluir ou ser uma referência ao atributo Label de um elemento PhraseList (ou PhraseTopic), que aparece no elemento ListenFor entre chaves, por exemplo: {myList}ou {myTopic}.

O conteúdo de qualquer elemento ListenFor pode ser reconhecido para ativar o comando.

Um atributo RequireAppName opcional pode ser especificado para indicar se o valor do elemento AppName pode ser anexado, acrescentado ou usado embutido com o elemento ListenFor .

Esse atributo dá suporte a quatro valores:

  • BeforePhrase

    O usuário deve dizer o AppName antes da frase ListenFor .

  • AfterPhrase

    O usuário deve dizer "In|Ativado|Usando|Com" AppName após a frase ListenFor .

  • BeforeOrAfterPhrase

    O usuário deve dizer o AppName antes ou depois da frase ListenFor .

  • Explicitamente Especificada

    O AppName é explicitamente referenciado no ListenFor, usando {builtin:AppName}. O usuário não é obrigado a dizer o AppName antes ou depois da frase ListenFor .

Use colchetes em torno de uma palavra ou palavras que são opcionais. Ou seja, a palavra ou as palavras podem ser faladas, mas não são necessárias para uma correspondência. Por exemplo, <ListenFor>[Show] {options}</ListenFor>.

Você pode configurar a funcionalidade curinga incluindo um caractere asterisco dentro de um par de chaves, como <ListenFor> Find {*} </ListenFor>. Neste exemplo, o comando de voz corresponderá enquanto o usuário falar "Localizar", opcionalmente seguido por qualquer outra palavra ou frase. Se o comando de voz de um elemento ListenFor habilitado para curinga for correspondido, a propriedade SpeechRecognitionResult.Text conterá a cadeia de caracteres "..." na mesma posição que o curinga.

Comentários Elemento filho obrigatório do elemento Command . Especifica o texto que será exibido e lido novamente para o usuário quando o comando for reconhecido. Se o elemento Feedback incluir uma referência a um atributo Label de um elemento PhraseList (ou PhraseTopic), cada elemento ListenFor no elemento Command que contém também deverá referenciar o mesmo atributo Label do elemento PhraseList (ou PhraseTopic).
Mutuamente exclusivo NavegarElemento filho necessário do elemento Command , a menos que o elemento Command tenha um elemento filho VoiceCommandService . O atributo Target é opcional e normalmente é usado para especificar a página para a qual o aplicativo deve navegar quando ele é iniciado. Você pode obter o valor do atributo Target (ou a cadeia de caracteres vazia se omitir o atributo Target ) do dicionário SpeechRecognitionSemanticInterpretation.Properties usando a chave "NavigationTarget".
VoiceCommandService Elemento filho necessário do elemento Command , a menos que o elemento Command tenha um elemento filho Navigate . Esse elemento especifica que o comando de voz é tratado por meio de um serviço de aplicativo (consulte Windows.ApplicationModel.AppService) com comentários exibidos na tela da Cortana . O atributo Target é obrigatório e deve corresponder ao valor do atributo Name do elemento AppService no manifesto do pacote do aplicativo.
PhraseList

Filho opcional do elemento CommandSet . Um elemento CommandSet não pode conter mais de 2.000 elementos Item e 2.000 elementos Item é o limite total combinado em todos os elementos PhraseList em um CommandSet. Cada Item especifica uma palavra ou frase que pode ser reconhecida para iniciar o comando que faz referência à PhraseList. O conteúdo Itens pode ser atualizado programaticamente de dentro de seu aplicativo. Uma PhraseList requer o atributo Label , cujo valor pode aparecer — entre chaves — dentro dos elementos ListenFor ou Feedback e é usado para fazer referência à PhraseList.

PhraseList tem um atributo Disambiguate opcional (padrão true), que especifica se essa PhraseList produzirá desambiguação de usuário quando vários itens da lista forem reconhecidos simultaneamente. Quando false, essa PhraseList também será inutilizável de dentro dos elementos Feedback e não produzirá parâmetros para seu aplicativo. Isso é útil para frases que são formas alternativas de dizer a mesma coisa, mas não exigem nenhuma ação específica.

Em seu aplicativo, para descobrir qual frase da lista foi falada, você pode acessar o dicionário SpeechRecognitionSemanticInterpretation.Properties usando uma chave com o mesmo valor que o Rótulo da PhraseList.

Item Filho opcional do elemento PhraseList . Uma das várias palavras ou frases que podem ser reconhecidas para iniciar um comando. Um CommandSet não pode conter mais de 2.000 elementos Item em todos os seus elementos PhraseList filho.
PhraseTopic

Filho opcional do elemento CommandSet . Especifica um tópico para reconhecimento de vocabulário grande. O tópico pode especificar um único atributo (0 ou 1) Scenario e vários (0 a 20) Elementos filho da entidade para o cenário, que podem ser usados para melhorar a relevância do reconhecimento obtido. Um PhraseTopic requer o atributo Label , cujo valor pode aparecer — entre chaves — dentro dos elementos ListenFor ou Feedback e é usado para fazer referência ao PhraseTopic.

O atributo Scenario (padrão "Ditado") especifica o cenário desejado para este PhraseTopic, que pode otimizar o reconhecimento de fala subjacente de comandos de voz usando o PhraseTopic para produzir resultados mais adequados ao contexto desejado do comando. Os valores válidos são "Linguagem Natural", "Pesquisa", "Mensagem Curta", "Ditado", "Comandos" e "Preenchimento de Formulário".

Os elementos filho Subject especificam um assunto específico ao atributo Scenario do PhraseTopic pai para refinar ainda mais a relevância dos resultados de reconhecimento de fala em comandos falados usando o PhraseTopic. As entidades serão avaliadas na ordem fornecida e, quando apropriado, as entidades especificadas posteriormente restringirão as especificadas anteriormente. Os valores de texto interno válidos são "Data/Hora", "Endereços", "Cidade/Estado", "Nomes de Pessoa", "Filmes", "Música" e "Número de Telefone". Por exemplo: <Subject>Phone Number</Subject>

Em seu aplicativo, para descobrir o conteúdo falado no subconjunto de um elemento ListenFor representado por uma referência PhraseTopic , você pode acessar o dicionário SpeechRecognitionSemanticInterpretation.Properties usando uma chave com o mesmo valor que o Rótulo de PhraseTopic.

Importante

Não é possível aninhar os caracteres especiais listados abaixo. Por exemplo, instruções como [[start] new game] e [{myPhraseList}] não são possíveis.

Caractere especial Descrição
{} Contém o valor do atributo Label para o PhraseList ou PhraseTopic a ser referenciado , por exemplo: {myList}ou {myTopic}. Usado em um elemento ListenFor ou Feedback . Uma referência PhraseList ou PhraseTopic em um elemento Feedback deve corresponder a uma referência correspondente em um elemento ListenFor no mesmo comando.
[]Designa que a palavra ou frase incluída é opcional. A palavra ou frase fechada pode ser falada, mas não é necessário ser reconhecida para iniciar o comando. Por exemplo, se o conteúdo de um elemento ListenFor for "[start] [begin] new game", o usuário poderá falar "iniciar novo jogo" ou "novo jogo" ou "começar novo jogo" (ou até mesmo "iniciar novo jogo") para iniciar o comando. Cada elemento entre colchetes é opcional de forma independente, mas deve ser falado na ordem correta para ser reconhecido. Assim, no exemplo de "novo jogo", "iniciar novo jogo" funcionaria, mas "começar a começar um novo jogo" não funcionaria devido à ordem em que foram declarados.

Confira também

Windows.ApplicationModel.VoiceCommands

Interações da Cortana

Amostras
Amostra de comando de voz da Cortana