Partilhar via


IAgentCommand::SetVoice

[O Microsoft Agent foi preterido a partir do Windows 7 e pode não estar disponível em 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.

Umde Comandodeve ter sua propriedade Voice e propriedade Enabled definida 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ção Caption será usada.)

A expressão BSTR fornecida pode incluir caracteres entre colchetes ([ ]) para indicar palavras opcionais e caracteres de barra vertical (|) para indicar cadeias de caracteres alternativas. Os suplentes devem ser colocados entre parênteses. Por exemplo, "(olá [lá] | hi)" diz ao mecanismo de fala para aceitar "olá", "olá lá" 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 estrela (*) para especificar zero ou mais ocorrências das palavras incluídas no grupo ou o operador mais (+) para especificar uma ou mais instâncias. Por exemplo, o seguinte resulta em uma gramática que suporta "try this", "please try this" e "please please try this", com iterações ilimitadas de "please":

   "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 aplicam-se ao item de texto imediatamente anterior. Por exemplo, a seguinte gramática resulta em "New York" e "New York York", mas não em "New York New York":

   "New York+"

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

   "(New York)+"

Os operadores de repetição são úteis quando você deseja compor uma gramática que inclua uma sequência repetida, como um número de telefone ou a 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 os colchetes (um caractere de agrupamento opcional), isso pode reduzir a eficiência do processamento da gramática pelo Agent.

Você também pode usar uma reticência (...) para apoiar de deteção de palavras, ou seja, dizer ao mecanismo de reconhecimento de fala para ignorar palavras faladas nessa posição na frase (às vezes chamada de lixo palavras). 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 "[...] check mail [...]" o mecanismo de reconhecimento de fala fará a correspondência de frases como "please check mail" ou "check mail please" para este comando. As elipses podem ser usadas em qualquer lugar dentro de uma corda. No entanto, tenha cuidado ao usar esta técnica, porque as configurações de voz com elipses podem aumentar o potencial de correspondências indesejadas.

Ao definir as palavras e a gramática para o seu comando, certifique-se sempre de incluir pelo menos uma palavra que seja necessária; ou seja, evite fornecer apenas palavras opcionais. Além disso, certifique-se de que 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ímbolos. Por exemplo, em vez de "a pizza #1 $10!", use "a pizza número um dez dólares". A inclusão de caracteres ou símbolos não pronunciáveis para um comando pode fazer com que o mecanismo de fala não consiga compilar a gramática de todos os seus comandos. Por fim, torne seu 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 similar.

A configuração da propriedade Voice para um Command habilita automaticamente os serviços de fala do Agente, 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. Você pode querer verificar com o fornecedor do mecanismo para determinar quais opções gramaticais são suportadas. Use IAgentCharacterEx::SRModeID para especificar um mecanismo.

 

Ver também

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