IAgentCommand::SetVoice

[Microsoft Agent está en desuso a partir de Windows 7 y puede no estar disponible en versiones posteriores de Windows].

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

Establece la propiedad Voice de un comando.

  • Devuelve S_OK para indicar que la operación se realizó correctamente.

bszVoice

BSTR que especifica el texto de la propiedad Voice de un comando.

Un comando debe tener establecida su propiedad Voz y la propiedad Enabled para que sea accesible por voz. También debe tener establecida su propiedad VoiceCaption para que aparezca en la ventana Comandos de voz. (Para la compatibilidad con versiones anteriores, si no hay voiceCaption, se usa la configuración de título ).

La expresión BSTR que proporcione puede incluir caracteres entre corchetes ([ ]) para indicar palabras opcionales y caracteres de barra vertical (|) para indicar cadenas alternativas. Las alternativas se deben incluir entre paréntesis. Por ejemplo, "(hello [there] | hi)" indica al motor de voz que acepte "hello", "hello there" o "hi" para el comando. Recuerde incluir los espacios adecuados entre el texto entre corchetes o paréntesis y el texto que no está entre corchetes ni paréntesis.

Puede usar el operador star (*) para especificar cero o más instancias de las palabras incluidas en el grupo o el operador más (+) para especificar una o varias instancias. Por ejemplo, los siguientes resultados en una gramática que admite "try this", "please try this" y "please try this", with unlimited iterations of "please":

   "please* try this"

El siguiente formato de gramática excluye "try this" porque el operador + define al menos una instancia de "please":

   "please+ try this"

Los operadores de repetición siguen las reglas normales de precedencia y se aplican al elemento de texto inmediatamente anterior. Por ejemplo, la gramática siguiente da como resultado "Nueva York" y "Nueva York", pero no "Nueva York Nueva York":

   "New York+"

Por lo tanto, normalmente querrá usar estos operadores con los caracteres de agrupación. Por ejemplo, la gramática siguiente incluye "New York" y "New York New York":

   "(New York)+"

Los operadores de repetición son útiles cuando desea componer una gramática que incluya una secuencia repetida, como un número de teléfono o una especificación de una lista de elementos:

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

Aunque los operadores también se pueden usar con los corchetes (un carácter de agrupación opcional), hacerlo puede reducir la eficacia del procesamiento del Agente de la gramática.

También puede usar puntos suspensivos (...) para admitir la detección de palabras, es decir, indicar al motor de reconocimiento de voz que omita las palabras habladas en esta posición en la frase (a veces denominadas palabras no utilizados). Por lo tanto, el motor de voz solo reconoce palabras específicas en la cadena independientemente de cuándo se hable con palabras o frases adyacentes. Por ejemplo, si establece esta propiedad en "[...] comprobar correo [...]" el motor de reconocimiento de voz coincidirá con frases como "compruebe correo" o "comprobar correo por favor" con este comando. Los puntos suspensivos se pueden usar en cualquier parte de una cadena. Sin embargo, tenga cuidado con esta técnica, ya que la configuración de voz con puntos suspensivos puede aumentar el potencial de coincidencias no deseadas.

Al definir las palabras y la gramática para el comando, asegúrese siempre de incluir al menos una palabra que sea necesaria; es decir, evite proporcionar solo palabras opcionales. Además, asegúrese de que la palabra solo incluye palabras y letras pronunciables. En el caso de los números, es mejor escribir la palabra en lugar de usar la representación numérica. Además, omita cualquier puntuación o símbolo. Por ejemplo, en lugar de "la pizza #1 $10!", use "la pizza número 1 diez dólares". Incluir caracteres o símbolos no pronunciables para un comando puede hacer que el motor de voz no compile la gramática para todos los comandos. Por último, haga que el parámetro de voz sea tan distinto como sea razonablemente posible de otros comandos de voz que defina. Cuanto mayor sea la similitud entre la gramática de voz para los comandos, más probable será que el motor de voz produzca un error de reconocimiento. También puede usar las puntuaciones de confianza para distinguir mejor entre dos comandos que pueden tener gramática de voz similar o similar.

Al establecer la propiedad Voz de un comando , se habilitan automáticamente los servicios de voz del Agente, lo que hace que la clave de escucha y la sugerencia de escucha estén disponibles. Sin embargo, no carga el motor de reconocimiento de voz.

Nota

Las características gramaticales disponibles pueden depender del motor de reconocimiento de voz. Es posible que desee consultar con el proveedor del motor para determinar qué opciones gramaticales se admiten. Use IAgentCharacterEx::SRModeID para especificar un motor.

 

Consulte también

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