Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
[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 Command.
- Restituisce S_OK per indicare che l'operazione è stata completata correttamente.
UnCommanddeve avere la proprietàVoicee la proprietà Enabled impostata per essere accessibile tramite voce. Deve inoltre avere la proprietàVoiceCaptionimpostata per essere visualizzata nella finestra Comandi vocali. Per la compatibilità con le versioni precedenti, se non è presente VoiceCaption, viene usata l'impostazionecaption.
L'espressione BSTR specificata può includere caratteri parentesi quadre ([ ]) per indicare parole facoltative e caratteri 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 parentesi quadre o parentesi e il testo non racchiuso tra parentesi o parentesi.
È possibile usare l'operatore star (*) per specificare zero o più istanze delle parole incluse nel gruppo o nell'operatore più (+) per specificare una o più istanze. Ad esempio, i risultati seguenti in una grammatica che supporta "try this", "please try this" e "please try this", with unlimited iterations of "please":
"please* try this"
Il formato grammaticale 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 restituisce "New York" e "New York York", ma non "New York New York":
"New York+"
Pertanto, in genere si desidera utilizzare 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 desidera 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), ciò può ridurre l'efficienza dell'elaborazione dell'agente della grammatica.
È anche possibile usare i puntini di sospensione (...) per supportare di spoting delle parole, vale a dire al motore di riconoscimento vocale di ignorare le parole pronunciate in questa posizione nella frase (talvolta denominate parole di garbage). Pertanto, il motore di riconoscimento vocale riconosce solo parole specifiche nella stringa indipendentemente dal momento in cui viene pronunciata 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 "please check mail" o "check mail please" to this command. I puntini di sospensione possono essere usati ovunque all'interno di una stringa. Tuttavia, prestare attenzione a usare questa tecnica, perché le impostazioni vocali con 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 pronunciate. Per i numeri, è preferibile specificare la parola anziché usare la rappresentazione numerica. Omettere anche segni di punteggiatura o simboli. Ad esempio, invece di "1 $10 pizza!", usare "la pizza numero 1 dieci dollari". L'inclusione di caratteri o simboli non pronunciati per un comando può causare l'impossibilità di compilare la grammatica per tutti i comandi. Infine, rendere il parametro vocale il più possibile distinto dagli altri comandi vocali definiti. Maggiore è la somiglianza tra la grammatica vocale per i comandi, più probabilmente il motore di riconoscimento vocale genererà un errore di riconoscimento. È anche possibile usare i punteggi di attendibilità per distinguere meglio due comandi che possono avere una grammatica vocale simile o simile.
L'impostazione della proprietàvoce diper un comando abilita automaticamente i servizi voce dell'agente, rendendo disponibile il tasto Di ascolto e il suggerimento per l'ascolto. Tuttavia, non carica il motore di riconoscimento vocale.
Nota
Le funzionalità grammaticali disponibili possono dipendere dal motore di riconoscimento vocale. È possibile rivolgersi al 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