Proprietà Voice (oggetto Commands)

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

Descrizione

Restituisce o imposta il testo passato alla grammatica del motore vocale (per il riconoscimento).

Sintassi

agent**. Caratteri ("CharacterID"). Commands.Voice** [ = string]

Parte Descrizione
string Espressione stringa corrispondente alle parole o alle frasi da usare dal motore di riconoscimento vocale.

 

Commenti

Se non si specifica questo parametro, l'oggetto VoiceCaption per l'oggetto Commands non verrà visualizzato nella finestra Comandi vocali.

L'espressione stringa 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", "please try this", "please try this", "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, in genere si vuole 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 il carattere di raggruppamento delle parentesi quadre facoltative, ciò può 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 "[...] check mail [...]", 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 a usare questa tecnica perché può aumentare il potenziale di corrispondenze indesiderate.

Quando si definisce la grammatica della parola per il comando, 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 una rappresentazione ambigua. Ad esempio, "345" non è una buona forma di grammatica. Analogamente, invece di "IEEE", usare "I triple E". 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.

È possibile includere nelle parole di grammatica sotto forma di "text\pronuncia", dove il testo è visualizzato e la pronuncia è testo che chiarisce la pronuncia. Ad esempio, la grammatica "1st\first" viene riconosciuta quando l'utente dice "first", ma l'evento Command restituirà il testo "1st\first". È anche possibile usare IPA (alfabeto fonetico internazionale) per specificare una pronuncia iniziando la pronuncia con un carattere di segno di sterlina ("#"), quindi includere il testo che rappresenta la pronuncia IPA.

Per i motori di riconoscimento vocale giapponese, è possibile definire la grammatica nel formato "kana\kanji", riducendo le pronuncia alternative e aumentando l'accuratezza. L'ordinamento viene invertito per la compatibilità con le versioni precedenti. Questo è particolarmente importante per la pronuncia dei nomi appropriati in Kanji. Tuttavia, è possibile passare in Kanji senza Kana, nel qual caso il motore deve ascoltare tutte le pronuncia accettabili per kanji. È anche possibile passare solo Kana.

Si noti anche che per le lingue come giapponese, cinese e thai, che non usano caratteri di spazio per designare le interruzioni di parola, inserire un carattere di spazio a larghezza zero Unicode (0x200B) per indicare le interruzioni logiche delle parole.

Ad eccezione degli errori che usano il raggruppamento o la formattazione dei caratteri di ripetizione, Agent non segnala errori nella grammatica, a meno che il motore stesso non segnala l'errore. Se si passa testo nella grammatica che il motore non riesce a compilare, ma il motore non gestisce e restituisce come errore, Agent non può segnalare l'errore. Pertanto, l'applicazione client deve definire attentamente la grammatica per la proprietà Voice .

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 SRModeID per usare un motore specifico.

 

L'operazione di questa proprietà dipende dallo stato della proprietà di riconoscimento vocale del server. Ad esempio, se il riconoscimento vocale è disabilitato o non è installato, questa proprietà non ha alcun effetto.