IAgentCommands::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 // the Voice setting for Command collection
);
Establece la propiedad de texto Voz de un comando.
- Devuelve S_OK para indicar que la operación se realizó correctamente.
-
bszVoice
-
BSTR que especifica el valor de la propiedad de texto Voice de una colección Commands .
Una colección Commands debe tener establecida su propiedad de texto Voz para que sea accesible por voz. También debe tener establecida su propiedad VoiceCaption o Caption para que aparezca en la ventana Comandos de voz y su propiedad Visible establecida en True para que aparezca en el menú emergente del carácter.
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 deben ir 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 espacios adecuados entre palabras que incluya entre corchetes o paréntesis, así como otro texto. No olvide incluir espacios adecuados entre el texto entre corchetes o paréntesis y el texto que no está entre corchetes o 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, el siguiente resultado es una gramática que admite "try this", "please try this" y "please try this", con iteraciones ilimitadas de "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":
"New York+"
Por lo tanto, normalmente quiere 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 crear 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 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 ). Cuando se usan puntos suspensivos, 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 "[...] check mail [...]" el motor de reconocimiento de voz coincidirá con frases como "please check mail" o "check mail please" to this command. Los puntos suspensivos se pueden usar en cualquier parte de una cadena. Sin embargo, tenga cuidado de usar esta técnica como configuración de voz con puntos suspensivos puede aumentar el potencial de coincidencias no deseadas.
Al definir las palabras y la gramática del comando, incluya al menos una palabra que sea necesaria; es decir, evite proporcionar solo palabras opcionales. Además, asegúrese de que la palabra solo incluya palabras y letras pronunciables. En el caso de los números, es mejor escribir la palabra en lugar de usar una representación ambigua. Por ejemplo, "345" no es una buena forma gramatical. De forma similar, en lugar de "IEEE", use "I triple E". Además, omita los signos o signos de puntuación. 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 provocar que el motor de voz no compile la gramática para todos los comandos. Por último, haga que el parámetro de voz sea lo más distinto 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 es que el motor de voz realice 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.
Puede incluir en las palabras gramaticales en forma de "text\pronunciation", donde "text" es el texto que se muestra y "pronunciación" es texto que aclara la pronunciación. Por ejemplo, la gramática "1st\first" se reconocería cuando el usuario dice "primero", pero el evento Command devolverá el texto "1st\first". También puede usar IPA (Alfabeto fonético internacional) para especificar una pronunciación comenzando la pronunciación con un carácter de signo de libra ("#"), después el texto que representa la pronunciación IPA.
En el caso de los motores de reconocimiento de voz japonés, puede definir la gramática con el formato "kana\kanji", lo que reduce las pronunciaciones alternativas y aumenta la precisión. (La ordenación se invierte por motivos de compatibilidad con versiones anteriores). Esto es especialmente importante para la pronunciación de los nombres adecuados en Kanji. Sin embargo, puedes pasar "kanji", sin kana, en cuyo caso el motor debe escuchar todas las pronunciaciones aceptables para kanji. También puedes pasar solo Kana.
Excepto los errores que usan los caracteres de formato de agrupación o repetición, Microsoft Agent no notificará errores en la gramática, a menos que el propio motor notifique el error. Si pasa texto en la gramática que el motor no puede compilar, pero el motor no controla y devuelve como un error, el Agente no puede notificar el error. Por lo tanto, la aplicación cliente debe tener cuidado de definir la gramática de la propiedad Voice .
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 de gramática se admiten. Use SRModeID para usar un motor específico.
El funcionamiento de esta propiedad depende del estado del estado de reconocimiento de voz del servidor de Microsoft Agent. Por ejemplo, si el reconocimiento de voz está deshabilitado o no está instalado, esta función no tiene ningún efecto inmediato. Sin embargo, si el reconocimiento de voz está habilitado durante una sesión, el comando será accesible cuando su aplicación cliente esté activa de entrada.
Consulte también
IAgentCommands::GetVoice, IAgentCommands::SetCaption, IAgentCommands::SetVisible