Condividi tramite


IAgentCommand::SetVoice

[Microsoft Agent è deprecato a partire da Windows 7 e potrebbe non essere disponibile nelle versioni successive di Windows.]

HRESULT SetVoice(
   BSTR bszVoice  // voice text setting for Command
);

Imposta la proprietà Voice per un comando.

  • Restituisce S_OK per indicare che l'operazione è riuscita.

bszVoice

BSTR che specifica il testo per la proprietà Voice di un comando.

Un comando deve avere la proprietà Voice e la proprietà Enabled impostata per essere accessibile dalla voce. Deve inoltre avere la proprietà VoiceCaption impostata per essere visualizzata nella finestra Comandi vocali. Per la compatibilità con le versioni precedenti, se non è presente VoiceCaption, viene usata l'impostazione Didascalia .

L'espressione BSTR fornita può includere caratteri parentesi quadre ([ ]) per indicare le parole facoltative e i caratteri della barra verticale (|) per indicare stringhe alternative. Le alternative devono essere racchiuse tra parentesi. Ad esempio, "(hello [there] | hi)" indica al motore vocale di accettare "hello", "hello there" o "hi" per il comando. Ricordarsi di includere spazi appropriati tra il testo tra parentesi o parentesi e il testo non tra parentesi o parentesi.

È possibile usare l'operatore star (*) per specificare zero o più istanze delle parole incluse nel gruppo o nell'operatore plus (+) per specificare una o più istanze. Ad esempio, i risultati seguenti in una grammatica che supporta "try this", "try this", "please try this" e "please please try this", with unlimited iterations of "please":

   "please* try this"

Il formato di grammatica seguente esclude "try this" perché l'operatore + definisce almeno un'istanza di "please":

   "please+ try this"

Gli operatori di ripetizione seguono le normali regole di precedenza e si applicano all'elemento di testo immediatamente precedente. Ad esempio, la grammatica seguente genera "New York" e "New York", ma non "New York New York":

   "New York+"

Pertanto, si vuole in genere usare questi operatori con i caratteri di raggruppamento. Ad esempio, la grammatica seguente include sia "New York" che "New York New York":

   "(New York)+"

Gli operatori di ripetizione sono utili quando si vuole comporre una grammatica che include una sequenza ripetuta, ad esempio un numero di telefono o una specifica di un elenco di elementi:

   "call (one|two|three|four|five|six|seven|eight|nine|zero|oh)*"
   "I'd like (cheese|pepperoni|pineapple|canadian bacon|mushrooms|and)+"

Anche se gli operatori possono essere usati anche con le parentesi quadre (un carattere di raggruppamento facoltativo), in modo da ridurre l'efficienza dell'elaborazione dell'agente della grammatica.

È anche possibile usare i puntini di sospensione (...) per supportare l'spoting delle parole, ovvero dicendo al motore di riconoscimento vocale di ignorare le parole pronunciate in questa posizione nella frase (talvolta denominate garbage words). Pertanto, il motore di riconoscimento vocale riconosce solo parole specifiche nella stringa indipendentemente da quando parlato con parole o frasi adiacenti. Ad esempio, se si imposta questa proprietà su "[...] controllare la posta [...]" il motore di riconoscimento vocale corrisponderà a frasi come "controlla posta elettronica" o "controlla posta elettronica" a questo comando. I puntini di sospensione possono essere usati ovunque all'interno di una stringa. Tuttavia, prestare attenzione all'uso di questa tecnica, perché le impostazioni vocali con i puntini di sospensione possono aumentare il potenziale di corrispondenze indesiderate.

Quando si definiscono le parole e la grammatica per il comando, assicurarsi sempre di includere almeno una parola necessaria; ovvero, evitare di fornire solo parole facoltative. Assicurarsi inoltre che la parola includa solo parole e lettere pronunciabili. Per i numeri, è meglio specificare la parola anziché usare la rappresentazione numerica. Inoltre, omettere qualsiasi punteggiatura o simboli. Ad esempio, invece di "la pizza #1 $10!", usare "il numero 1 dieci dollaro pizza". L'inclusione di caratteri o simboli non pronunciabili per un comando può causare l'esito negativo della compilazione della grammatica per tutti i comandi. Infine, rendere il parametro vocale il più possibile distinto da altri comandi vocali definiti. Maggiore è la somiglianza tra la grammatica vocale per i comandi, più probabilmente il motore vocale farà un errore di riconoscimento. È anche possibile usare i punteggi di attendibilità per distinguere meglio tra due comandi che possono avere una grammatica vocale simile o simile.

L'impostazione della proprietà Voice per un comando abilita automaticamente i servizi voce dell'agente, rendendo disponibile la chiave di ascolto e il suggerimento di ascolto. Tuttavia, non carica il motore di riconoscimento vocale.

Nota

Le funzionalità di grammatica disponibili possono dipendere dal motore di riconoscimento vocale. È possibile controllare con il fornitore del motore per determinare quali opzioni di grammatica sono supportate. Usare IAgentCharacterEx::SRModeID per specificare un motore.

 

Vedere anche

IAgentCommand::GetVoice, IAgentCommand::SetCaption, IAgentCommand::SetEnabled, IAgentCommands::Add, IAgentCommands::Insert