IAgentCommand::SetVoice

[O Microsoft Agent foi preterido a partir do Windows 7 e pode estar indisponível nas versões subsequentes do Windows.]

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

Define a propriedade Voice para um Command.

  • Retorna S_OK para indicar que a operação foi bem-sucedida.

bszVoice

Um BSTR que especifica o texto para a propriedade Voice de um Command.

Um Command deve ter sua propriedade Voice e a propriedade Enabled definidas para ser acessível por voz. Ele também deve ter sua propriedade VoiceCaption definida para aparecer na janela Comandos de Voz. (Para compatibilidade com versões anteriores, se não houver VoiceCaption, a configuraçãoLegenda será usada.)

A expressão BSTR fornecida pode incluir caracteres de colchete ([ ]) para indicar palavras opcionais e caracteres de barra vertical (|) para indicar cadeias de caracteres alternativas. As alternativas devem ser colocadas entre parênteses. Por exemplo, "(hello [there] | oi)" diz ao mecanismo de fala para aceitar "olá", "olá" ou "oi" para o comando. Lembre-se de incluir espaços apropriados entre o texto entre colchetes ou parênteses e o texto que não está entre colchetes ou parênteses.

Você pode usar o operador star (*) para especificar zero ou mais instâncias das palavras incluídas no grupo ou no operador de adição (+) para especificar uma ou mais instâncias. Por exemplo, o seguinte resulta em uma gramática que dá suporte a "experimente isso", "por favor, tente isso" e "por favor, tente isso", com iterações ilimitadas de "por favor":

   "please* try this"

O seguinte formato gramatical exclui "try this" porque o operador + define pelo menos uma instância de "please":

   "please+ try this"

Os operadores de repetição seguem regras normais de precedência e se aplicam ao item de texto imediatamente anterior. Por exemplo, a gramática a seguir resulta em "Nova York" e "Nova York", mas não em "Nova York":

   "New York+"

Portanto, você normalmente desejará usar esses operadores com os caracteres de agrupamento. Por exemplo, a gramática a seguir inclui "Nova York" e "Nova York":

   "(New York)+"

Operadores de repetição são úteis quando você deseja compor uma gramática que inclui uma sequência repetida, como um número de telefone ou especificação de uma lista de itens:

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

Embora os operadores também possam ser usados com colchetes (um caractere de agrupamento opcional), fazer isso pode reduzir a eficiência do processamento do Agent da gramática.

Você também pode usar reticências (...) para dar suporte à detecção de palavras, ou seja, dizendo ao mecanismo de reconhecimento de fala para ignorar palavras faladas nessa posição na frase (às vezes chamadas de palavras de lixo ). Portanto, o mecanismo de fala reconhece apenas palavras específicas na cadeia de caracteres, independentemente de quando faladas com palavras ou frases adjacentes. Por exemplo, se você definir essa propriedade como "[...] marcar email [...]" o mecanismo de reconhecimento de fala corresponderá frases como "por favor, marcar email" ou "marcar email por favor" a este comando. As reticências podem ser usadas em qualquer lugar dentro de uma cadeia de caracteres. No entanto, tenha cuidado ao usar essa técnica, pois as configurações de voz com reticências podem aumentar o potencial de correspondências indesejadas.

Ao definir as palavras e a gramática para seu comando, sempre certifique-se de incluir pelo menos uma palavra necessária; ou seja, evite fornecer apenas palavras opcionais. Além disso, verifique se a palavra inclui apenas palavras e letras pronunciáveis. Para números, é melhor soletrar a palavra em vez de usar a representação numérica. Além disso, omita qualquer pontuação ou símbolo. Por exemplo, em vez de "a pizza #1 $10!", use "a pizza de dez dólares número um". Incluir caracteres ou símbolos não pronunciáveis para um comando pode fazer com que o mecanismo de fala falhe ao compilar a gramática para todos os seus comandos. Por fim, torne o parâmetro de voz o mais distinto possível de outros comandos de voz que você definir. Quanto maior a semelhança entre a gramática de voz para comandos, maior a probabilidade de o mecanismo de fala cometer um erro de reconhecimento. Você também pode usar as pontuações de confiança para distinguir melhor entre dois comandos que podem ter gramática de voz semelhante ou semelhante.

Definir a propriedade Voz para um Comando habilita automaticamente os serviços de fala do Agent, disponibilizando a tecla Listening e a Dica de Escuta. No entanto, ele não carrega o mecanismo de reconhecimento de fala.

Observação

Os recursos gramaticais disponíveis podem depender do mecanismo de reconhecimento de fala. Talvez você queira marcar com o fornecedor do mecanismo para determinar quais opções de gramática têm suporte. Use IAgentCharacterEx::SRModeID para especificar um mecanismo.

 

Consulte Também

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