Elementi e attributi VCD (Voice Command Definition) versione 1.2

Nota

Le Cortana Skills Kit per consumer e enterprise e le competenze basate su queste piattaforme sono state deprecate.

Documentazione di riferimento per gli elementi di markup XML e gli attributi usati nei file VCD (Voice Command Definition) per specificare i vincoli di riconoscimento.

Usare i comandi vocali per avviare un'app e specificare un'azione o un comando da eseguire. Ad esempio, un utente può toccare il pulsante Start e pronunciare "Contoso Widgets, show best seller" per avviare l'app Contoso Widgets e passare a una pagina "best seller".

Elementi e attributi

Come per qualsiasi file XML, un file VCD deve iniziare con una dichiarazione XML che specifica sia la versione XML che la codifica dei caratteri.

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

L'elemento radice è l'elemento VoiceCommands e il relativo attributo xmlns deve essere impostato su http://schemas.microsoft.com/voicecommands/1.2 (senza caratteri maiuscoli). Per un esempio conforme a questo schema, vedi l'esempio di Cortana Voice Command.

Elemento Descrizione
VoiceCommands Obbligatorio. Elemento radice di un file VCD. Contiene tra 1 e 15 elementi CommandSet , ognuno dei quali rappresenta i comandi vocali per una singola lingua.
Commandset Elemento figlio obbligatorio dell'elemento VoiceCommands . Contenitore per tutti i comandi vocali che un'app accetterà nella lingua specificata dall'attributo xml:lang richiesto.

Il valore dell'attributo xml:lang deve essere univoco nel documento VoiceCommand ed è una singola lingua specifica, specificata nel modulo del nome della lingua, che corrisponde a una lingua disponibile nel pannello di controllo Voce .

Nota Le lingue specificate nel file VCD, ma non supportate nel sistema, vengono ignorate.

L'attributo Name è facoltativo e può essere qualsiasi stringa arbitraria; Tuttavia, l'attributo Name è necessario per fare riferimento e aggiornare un elemento CommandSet PhraseList a livello di codice. L'elemento CommandSet contiene gli elementi figlio seguenti: CommandPrefix (0 o 1) o AppName (0 o 1), Example (esattamente 1), Command (da 1 a 100), elementi PhraseList (da 0 a 10) e elementi PhraseTopic (da 0 a 10). Questi elementi figlio devono essere presenti nell'ordine elencato.

Escludono CommandPrefix

Elemento figlio facoltativo dell'elemento CommandSet . Se presente, deve essere il primo elemento figlio dell'elemento CommandSet .

Specifica un nome descrittivo per un'app che un utente può pronunciare quando assegna un comando vocale. Ciò è utile per le app con nomi lunghi o difficili da pronunciare.

Evitare di usare prefissi in conflitto con altre esperienze abilitate per la voce.

AppName

Elemento figlio facoltativo dell'elemento CommandSet . Se presente, deve essere il primo elemento figlio dell'elemento CommandSet .

Sostituisce CommandPrefix e supporta l'attributo RequireAppName e {builtin:AppName} la frase dell'elemento ListenFor .

Specifica un nome descrittivo per un'app che un utente può pronunciare quando assegna un comando vocale. Ciò è utile per le app con nomi lunghi o difficili da pronunciare.

Evitare di usare prefissi in conflitto con altre esperienze abilitate per la voce.

Per impostazione predefinita, AppName è supportato come suffisso nel comando vocale.

Comando

Elemento figlio obbligatorio dell'elemento CommandSet .

Accetta l'attributo Name . Definisce un'azione dell'app che gli utenti possono avviare parlando e cosa gli utenti possono dire per avviare l'azione. Ogni elemento Command può essere associato a una pagina specifica nell'app. Contiene gli elementi figlio necessari seguenti: Esempio (esattamente 1), ListenFor (da 1 a 20), Feedback (esattamente 1) e Navigate (esattamente 1). Questi elementi figlio devono essere presenti nell'ordine elencato.

Esempio Elemento figlio obbligatorio dell'elemento CommandSet (esattamente 1) e dell'elemento Command (da 1 a 20). Fornisce un esempio rappresentativo di ciò che un utente può dire per un CommandSet nel suo complesso e per un singolo comando. Questi esempi saranno visibili a un utente dalla schermata Cosa posso dire . Questa schermata viene visualizzata quando un utente preme e tiene premuto il pulsante Cerca (nei telefoni Windows) o richiama Cortana e dice "Guida" o "Cosa posso dire?", oppure tocca Visualizza altro.

Nota Gli esempi devono includere AppName o CommandPrefix.

Listenfor

Elemento figlio obbligatorio (da 1 a 20) dell'elemento Command .

Contiene una parola o una frase che l'app riconoscerà per questo comando. Può includere o essere un riferimento all'attributo Label di un elemento PhraseList (o PhraseTopic), che viene visualizzato nell'elemento ListenFor racchiuso tra parentesi graffe, ad esempio{ myList}o {myTopic}.

Il contenuto di qualsiasi elemento ListenFor può essere riconosciuto per attivare il comando.

È possibile specificare un attributo RequireAppName facoltativo per indicare se il valore dell'elemento AppName può essere anteporto, aggiunto o usato inline con l'elemento ListenFor .

Questo attributo supporta quattro valori:

  • BeforePhrase

    L'utente deve pronunciare appName prima della frase ListenFor .

  • AfterPhrase

    L'utente deve dire "In|Sì|Uso di |Con" AppName dopo la frase ListenFor .

  • BeforeOrAfterPhrase

    L'utente deve pronunciare AppName prima o dopo la frase ListenFor .

  • EsplicitamenteSpecificata

    AppName viene fatto riferimento in modo esplicito in ListenFor, usando {builtin:AppName}. L'utente non deve pronunciare AppName prima o dopo la frase ListenFor .

Usare parentesi quadre intorno a una parola o a parole facoltative. Ovvero, la parola o le parole possono essere pronunciate, ma non sono necessarie per una corrispondenza. Ad esempio: <ListenFor>[Show] {options}</ListenFor>.

È possibile configurare la funzionalità con caratteri jolly includendo un carattere asterisco all'interno di una coppia di parentesi graffe, ad esempio <ListenFor> Find {*} </ListenFor>. In questo esempio, il comando vocale corrisponderà purché l'utente parli "Trova", facoltativamente seguito da qualsiasi altra parola o frase. Se viene trovata la corrispondenza del comando vocale per un elemento ListenFor abilitato per caratteri jolly, la proprietà SpeechRecognitionResult.Text conterrà la stringa "..." nella stessa posizione del carattere jolly.

Commenti e suggerimenti Elemento figlio obbligatorio dell'elemento Command . Specifica il testo che verrà visualizzato e letto di nuovo all'utente quando il comando viene riconosciuto. Se l'elemento Feedback include un riferimento a un attributo Label di un elemento PhraseList (o PhraseTopic), ogni elemento ListenFor nell'elemento Command contenitore deve anche fare riferimento allo stesso attributo Label dell'elemento PhraseList (o PhraseTopic).
Escludono EsplorareElemento figlio obbligatorio dell'elemento Command , a meno che l'elemento Command non abbia un elemento figlio VoiceCommandService . L'attributo Target è facoltativo e viene in genere usato per specificare la pagina a cui l'app deve passare all'avvio. È possibile ottenere il valore dell'attributo Target (o la stringa vuota se si omette l'attributo Target ) dal dizionario SpeechRecognitionSemanticInterpretation.Properties usando la chiave "NavigationTarget".
VoiceCommandService Elemento figlio obbligatorio dell'elemento Command , a meno che l'elemento Command non abbia un elemento figlio Navigate . Questo elemento specifica che il comando vocale viene gestito tramite un servizio app (vedere Windows.ApplicationModel.AppService) con commenti e suggerimenti visualizzati nell'area di disegno di Cortana . L'attributo Target è obbligatorio e deve corrispondere al valore dell'attributo Name dell'elemento AppService nel manifesto del pacchetto dell'app.
PhraseList

Elemento figlio facoltativo dell'elemento CommandSet . Un elemento CommandSet può contenere non più di 2.000 elementi Item e 2.000 elementi Item è il limite totale combinato per tutti gli elementi PhraseList in un Oggetto CommandSet. Ogni elemento specifica una parola o una frase che può essere riconosciuta per avviare il comando che fa riferimento a PhraseList. Il contenuto items può essere aggiornato a livello di codice dall'interno dell'applicazione. Un oggetto PhraseList richiede l'attributo Label, il cui valore può apparire, racchiuso tra parentesi graffe, all'interno di elementi ListenFor o Feedback e viene usato per fare riferimento a PhraseList.

PhraseList ha un attributo facoltativo Disambiguate (valore predefinito true), che specifica se l'oggetto PhraseList produrrà una disambiguazione dell'utente quando vengono riconosciuti simultaneamente più elementi dell'elenco. Se false, anche questo PhraseList non sarà utilizzabile dall'interno degli elementi Feedback e non produrrà parametri per l'applicazione. Questo è utile per le frasi che sono modi alternativi di dire la stessa cosa, ma non richiedono alcuna azione specifica.

Nell'app, per scoprire quale frase dell'elenco è stata pronunciata, è possibile accedere al dizionario SpeechRecognitionSemanticInterpretation.Properties usando una chiave con lo stesso valore di Label of the PhraseList.

Elemento Elemento figlio facoltativo dell'elemento PhraseList . Una di più parole o frasi che possono essere riconosciute per avviare un comando. Un CommandSet non può contenere più di 2.000 elementi Item in tutti gli elementi PhraseList figlio.
FraseTopic

Elemento figlio facoltativo dell'elemento CommandSet . Specifica un argomento per il riconoscimento di vocabolario di grandi dimensioni. L'argomento può specificare un singolo attributo scenario (0 o 1) e diversi elementi figlio soggetti (da 0 a 20) per lo scenario, che può essere usato per migliorare la pertinenza del riconoscimento ottenuto. Un elemento PhraseTopic richiede l'attributo Label , il valore del quale può essere visualizzato, racchiuso tra parentesi graffe, all'interno di elementi ListenFor o Feedback e viene usato per fare riferimento a PhraseTopic.

L'attributo Scenario (impostazione predefinita "Dettatura") specifica lo scenario desiderato per questo PhraseTopic, che può ottimizzare il riconoscimento vocale sottostante dei comandi vocali usando il PhraseTopic per produrre risultati più adatti al contesto desiderato del comando. I valori validi sono "Linguaggio naturale", "Search", "Short Message", "Dictation", "Commands" e "Form Filling".

Gli elementi figlio Subject specificano un oggetto specifico dell'attributo Scenario del metodo PhraseTopic padre per perfezionare ulteriormente la pertinenza dei risultati del riconoscimento vocale all'interno dei comandi vocali usando il PhraseTopic. Gli argomenti verranno valutati nell'ordine fornito e, se appropriati, gli argomenti specificati in un secondo momento vincolano quelli specificati in precedenza. I valori di testo interni validi sono "Date/Ora", "Indirizzi", "Città/Stato", "Nomi persona", "Movies", "Music" e "Numero di telefono". ad esempio <Subject>Phone Number</Subject>

Nell'app per scoprire il contenuto parlato nel sottoinsieme di un elemento ListenFor rappresentato da un riferimento PhraseTopic , è possibile accedere al dizionario SpeechRecognitionSemanticInterpretation.Properties usando una chiave con lo stesso valore dell'etichetta del PhraseTopic.

Importante

Non è possibile annidare i caratteri speciali elencati di seguito. Ad esempio, le istruzioni come [[start] new game] e [{myPhraseList}] non sono possibili.

Carattere speciale Descrizione
{} Contiene il valore dell'attributo Label per PhraseList o PhraseTopic a cui fare riferimento, ad esempio {myList}o {myTopic}. Usato all'interno di un elemento ListenFor o Feedback . Un riferimento PhraseList o PhraseTopic in un elemento Feedback deve corrispondere a un riferimento corrispondente in un elemento ListenFor nello stesso comando.
[]Definisce che la parola o la frase racchiusa è facoltativa. La parola o la frase racchiusa possono essere pronunciate ma non è necessario essere riconosciuti per avviare il comando. Ad esempio, se il contenuto di un elemento ListenFor è "[start] [begin] new game", l'utente può parlare "start new game" o "new game" o "begin new game" (o anche "start begin new game") per avviare il comando. Ogni elemento tra parentesi quadre è facoltativo, ma deve essere parlato nell'ordine corretto da riconoscere. Quindi, nell'esempio "nuovo gioco" "start begin new game" funzionerebbe, ma "begin start new game" non funzionerebbe a causa dell'ordine in cui sono stati dichiarati.

Vedi anche

Windows.ApplicationModel.VoiceCommands

Interazioni con Cortana

Esempi
Esempio di comando vocale di Cortana