SemanticResultKey Construtores
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Constrói uma instância de SemanticResultKey e associa a chave aos componentes gramaticais.
Sobrecargas
| Name | Descrição |
|---|---|
| SemanticResultKey(String, GrammarBuilder[]) |
Atribui uma chave semântica a um ou mais GrammarBuilder objetos usados para criar uma gramática de reconhecimento de voz. |
| SemanticResultKey(String, String[]) |
Atribui uma chave semântica a uma ou mais String instâncias usadas para criar uma gramática de reconhecimento de fala. |
Observações
Os construtores especificam SemanticResultKey uma etiqueta de texto (a chave semântica) e um conjunto de componentes gramaticais para adicionar a uma gramática de reconhecimento de voz.
Os componentes gramaticais podem ser especificados como um array de GrammarBuilder objetos, ou como um array de String instâncias.
Se os componentes gramaticais forem usados no reconhecimento, pode aceder ao retorno SemanticValue usando a etiqueta de texto fornecida ao construtor de SemanticResultKey como chave semântica. A Value propriedade da SemanticValue instância será determinada pelos componentes gramaticais usados na definição de SemanticResultKey.
SemanticResultKey(String, GrammarBuilder[])
- Origem:
- SemanticResultKey.cs
- Origem:
- SemanticResultKey.cs
- Origem:
- SemanticResultKey.cs
- Origem:
- SemanticResultKey.cs
Atribui uma chave semântica a um ou mais GrammarBuilder objetos usados para criar uma gramática de reconhecimento de voz.
public:
SemanticResultKey(System::String ^ semanticResultKey, ... cli::array <System::Speech::Recognition::GrammarBuilder ^> ^ builders);
public SemanticResultKey(string semanticResultKey, params System.Speech.Recognition.GrammarBuilder[] builders);
new System.Speech.Recognition.SemanticResultKey : string * System.Speech.Recognition.GrammarBuilder[] -> System.Speech.Recognition.SemanticResultKey
Public Sub New (semanticResultKey As String, ParamArray builders As GrammarBuilder())
Parâmetros
- semanticResultKey
- String
A etiqueta a ser usada como chave semântica para aceder à SemanticValue instância associada aos GrammarBuilder objetos especificados pelo builders argumento.
- builders
- GrammarBuilder[]
Um array de componentes gramaticais que serão associados a um SemanticValue objeto acessível com a etiqueta definida em semanticResultKey.
Exemplos
O exemplo seguinte cria uma Grammar introdução para reconhecer palavra-passe do formulário "A minha palavra-passe é ...", onde a entrada real é correspondida a um coringa.
O coringa é marcado por um SpeechRecognizer cujo valor-chave é "Password". O SpeechRecognized handler verifica a presença desta etiqueta, obtém a entrada áudio da palavra-passe e verifica a palavra-passe.
private void pwdGrammar()
{
GrammarBuilder pwdBuilder = new GrammarBuilder("My Password is");
GrammarBuilder wildcardBuilder = new GrammarBuilder();
wildcardBuilder.AppendWildcard();
SemanticResultKey wildcardKey= new SemanticResultKey("Password", wildcardBuilder);
pwdBuilder+=wildcardKey;
Grammar grammar = new Grammar(pwdBuilder);
grammar.Name = "Password input";
grammar.SpeechRecognized +=
delegate(object sender, SpeechRecognizedEventArgs eventArgs)
{
SemanticValue semantics = eventArgs.Result.Semantics;
RecognitionResult result=eventArgs.Result;
if (!semantics.ContainsKey("Password"))
{
SpeechUI.SendTextFeedback(eventArgs.Result, "No Password Provided", false);
}
else
{
RecognizedAudio pwdAudio = result.GetAudioForWordRange(
result.Words[3],
result.Words[result.Words.Count - 1]);
MemoryStream pwdMemoryStream = new MemoryStream();
pwdAudio.WriteToAudioStream(pwdMemoryStream);
if (!IsValidPwd(pwdMemoryStream))
{
string badPwd = System.IO.Path.GetTempPath() + "BadPwd" + (new Random()).Next().ToString() + ".wav";
FileStream waveStream = new FileStream(badPwd, FileMode.Create);
pwdAudio.WriteToWaveStream(waveStream);
waveStream.Flush();
waveStream.Close();
SpeechUI.SendTextFeedback(eventArgs.Result, "Invalid Password", false);
}
}
};
grammar.Enabled = true;
_recognizer.LoadGrammar(grammar);
UpdateGrammarTree(_grammarTreeView, _recognizer);
}
Observações
Devido às conversões implícitas, o argumento builders suporta SemanticResultValuetambém , SemanticResultKey, Choices, e String objetos. Para mais informações sobre conversões implícitas, veja Implicit.
Ao realizar uma operação de reconhecimento, os GrammarBuilder objetos fornecidos no builders argumento são tratados como sequenciais. Por exemplo, se o seguinte SemanticResultValue for usado para construir um Grammar, a entrada para o motor de reconhecimento deve conter as palavras "a raposa castanha rápida" em sequência para ser reconhecida.
SemanticResultKey stringTest=new SemanticResultKey(
"stringTest", new GrammarBuilder[] {
new GrammarBuilder("the"),
new GrammarBuilder("quick"),
new GrammarBuilder("brown"),
new GrammarBuilder("fox")});
O semanticResultKey argumento contém a etiqueta usada para aceder ao SemanticValue que pode ser devolvido.
O Value de é SemanticValue determinado pelas GrammarBuilder instâncias fornecidas pelo builders parâmetro.
Se os GrammarBuilder objetos não contêm instâncias definidoras de SemanticResultValue, o valor do SemanticValue é null.
Se os GrammarBuilder objetos fornecidos no builders parâmetro fornecerem uma instância não etiquetada (não associada a um SemanticResultKey objeto) SemanticResultValue que é usada pela lógica de reconhecimento, essa instância de SemanticResultValue definirá a Value propriedade do SemanticValue que é produzida.
Deve haver uma, e apenas uma, instância não etiquetada SemanticResultValue nos GrammarBuilder objetos especificados pelo builders parâmetro. Se múltiplas instâncias de não etiquetadas SemanticResultValue estiverem associadas ao SemanticResultKey, cada uma tentará definir o valor do SemanticValue produzido no resultado de reconhecimento. Isto não é permitido, e o reconhecedor gerará uma exceção quando tentar usar um Grammar criado usando tal SemanticResultKey instância.
Instâncias de SemanticResultValue contidas nos GrammarBuilder objetos especificados pelo builders parâmetro e já associadas a outro SemanticResultKey não têm efeito na instância atual SemanticResultKey .
Aplica-se a
SemanticResultKey(String, String[])
- Origem:
- SemanticResultKey.cs
- Origem:
- SemanticResultKey.cs
- Origem:
- SemanticResultKey.cs
- Origem:
- SemanticResultKey.cs
Atribui uma chave semântica a uma ou mais String instâncias usadas para criar uma gramática de reconhecimento de fala.
public:
SemanticResultKey(System::String ^ semanticResultKey, ... cli::array <System::String ^> ^ phrases);
public SemanticResultKey(string semanticResultKey, params string[] phrases);
new System.Speech.Recognition.SemanticResultKey : string * string[] -> System.Speech.Recognition.SemanticResultKey
Public Sub New (semanticResultKey As String, ParamArray phrases As String())
Parâmetros
- semanticResultKey
- String
A etiqueta a usar acede à SemanticValue instância associada aos String objetos especificados pelo phrases argumento.
- phrases
- String[]
Um ou mais String objetos, cujo texto concatenado será associado a um SemanticValue objeto acessível com a etiqueta definida em semanticResultKey.
Exemplos
O exemplo seguinte cria a Grammar partir de um GrammarBuilder objeto que usa um SemanticResultKey, que é definido por um array de String objetos.
Um motor de reconhecimento que use o Grammar criado reconhecerá a frase "cor vermelho verde azul zero". A semântica do RecognizedPhrase devolvido por reconhecimento conterá a SemanticValue com a Value de "vermelho verde azul". Pode aceder a isso SemanticValue usando a etiqueta "code".
Devido ao SemanticResultValue("zero", 5) acrescentado ao GrammarBuilder, o objeto raiz SemanticValue no RecognizedPhrase terá um valor de 5.
private void keyTest()
{
// Say "color red green blue zero"
GrammarBuilder gb = new GrammarBuilder("color") +
new SemanticResultKey("code",
(new string[] {"red", "green", "blue"})) +
new SemanticResultValue("zero", 5);
Grammar g = new Grammar(gb);
g.Name = "keyTest";
_recognizer.LoadGrammar(g);
}
Observações
Ao realizar uma operação de reconhecimento, os String objetos usados no phrases parâmetro são tratados como sequenciais. Por exemplo, se o seguinte SemanticResultValue for usado para construir um Grammar, a entrada para o motor de reconhecimento deve conter as palavras "a raposa castanha rápida" em sequência para ser reconhecida.
SemanticResultKey stringTest=new SemanticResultKey("stringTest",
new string[] {
"the",
"quick",
"brown",
"fox"});
O semanticResultKey argumento determina a chave usada para aceder ao SemanticValue que pode ser devolvida.
Se construir um Grammar usando um GrammarBuilder objeto que contém uma chave semântica com um array de objetos de cadeia, o Value de produzido SemanticValue por uma operação de reconhecimento será a cadeia usada no reconhecimento. No exemplo anterior, isto significa que Value seria "a raposa castanha rápida".