Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
[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 // the Voice setting for Command collection
);
Define a propriedade de texto Voice para umde Comando do.
- Retorna S_OK para indicar que a operação foi bem-sucedida.
-
bszVoice
-
Um BSTR que especifica o valor da propriedade de texto Voice de uma coleção de comandos .
Uma coleçãocomandosdeve ter sua propriedade de texto Voice definida como acessível por voz. Ele também deve ter sua propriedade VoiceCaption ou Caption definida para aparecer na Janela comandos de voz e sua propriedade Visible definida como True para aparecer no menu pop-up do caractere.
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 o mecanismo de fala para aceitar "olá", "olá lá" ou "oi" para o comando. Lembre-se de incluir espaços apropriados entre palavras que você inclui entre colchetes ou parênteses, bem como outros textos. 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 de estrela (*) 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, os seguintes resultados em uma gramática que dá suporte a "try this", "please try this" e "please please try this", with unlimited iterations of "please":
"please* try this"
O seguinte formato de gramática exclui "experimente isso" porque o operador + define pelo menos uma instância de "por favor":
"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 deseja 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 redigir 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), isso pode reduzir a eficiência do processamento da gramática pelo Agente.
Você também pode usar reticências (...) para dar suporte a de detecção de palavras, ou seja, dizendo ao mecanismo de reconhecimento de fala para ignorar palavras faladas nessa posição na frase (às vezes chamada lixo palavras). Quando você usa reticências, 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 corresponderá a frases como "por favor, verifique o email" ou "check-mail por favor" para 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, inclua 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 uma representação ambígua. Por exemplo, "345" não é uma boa forma gramatical. Da mesma forma, em vez de "IEEE", use "I triple E". Além disso, omita qualquer pontuação ou símbolos. Por exemplo, em vez de "a pizza nº 1 $10!", use "a pizza número um de dez dólares". Incluir caracteres ou símbolos não pronunciáveis para um comando pode fazer com que o mecanismo de fala não compile 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 uma gramática de voz semelhante ou semelhante.
Você pode incluir em suas palavras gramaticais na forma de "texto\pronúncia", em que "text" é o texto exibido e "pronúncia" é um texto que esclarece a pronúncia. Por exemplo, a gramática , "1st\first", seria reconhecida quando o usuário diz "primeiro", mas o evento Command retornará o texto, "1st\first". Você também pode usar IPA (Alfabeto Fonético Internacional) para especificar uma pronúncia iniciando a pronúncia com um caractere de sinal de libra ("#"), em seguida, o texto que representa a pronúncia IPA.
Para mecanismos de reconhecimento de fala japonês, você pode definir gramática na forma "kana\kanji", reduzindo as pronúncias alternativas e aumentando a precisão. (A ordenação é revertida para compatibilidade com versões anteriores.) Isso é particularmente importante para a pronúncia de nomes adequados em Kanji. No entanto, você pode simplesmente passar "kanji", sem o Kana, nesse caso, o mecanismo deve ouvir todas as pronúncias aceitáveis para o Kanji. Você também pode passar apenas Kana.
Com exceção de erros usando os caracteres de formatação de agrupamento ou repetição, o Microsoft Agent não relatará erros em sua gramática, a menos que o próprio mecanismo relate o erro. Se você passar texto em sua gramática que o mecanismo não compila, mas o mecanismo não manipular e retornar como um erro, o Agente não poderá relatar o erro. Portanto, o aplicativo cliente deve ter cuidado ao definir a gramática da propriedade Voice.
Nota
Os recursos de gramática disponíveis podem depender do mecanismo de reconhecimento de fala. Talvez você queira verificar com o fornecedor do mecanismo para determinar quais opções de gramática têm suporte. Use o SRModeID para usar um mecanismo específico.
A operação dessa propriedade depende do estado do estado de reconhecimento de fala do servidor do Microsoft Agent. Por exemplo, se o reconhecimento de fala estiver desabilitado ou não estiver instalado, essa função não terá efeito imediato. No entanto, se o reconhecimento de fala estiver habilitado durante uma sessão, o comando ficará acessível quando seu aplicativo cliente estiver ativo na entrada.
Consulte Também
IAgentCommands::GetVoice, IAgentCommands::SetCaption, IAgentCommands::SetVisible