SemanticResultKey Construtores
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Constrói uma instância e SemanticResultKey associa a chave a componentes gramaticais.
Sobrecargas
| Nome | Description |
|---|---|
| SemanticResultKey(String, GrammarBuilder[]) |
Atribui uma chave semântica a um ou mais GrammarBuilder objetos usados para criar uma gramática de reconhecimento de fala. |
| 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. |
Comentários
Os construtores para SemanticResultKey especificar uma marca de texto (a chave semântica) e um conjunto de componentes gramaticais a serem adicionados a uma gramática de reconhecimento de fala.
Os componentes gramaticais podem ser especificados como uma matriz de GrammarBuilder objetos ou como uma matriz de String instâncias.
Se os componentes gramaticais forem usados em reconhecimento, você poderá acessar o retornado SemanticValue usando a marca de texto fornecida ao construtor como SemanticResultKey uma 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 fala.
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 marca a ser usada como uma chave semântica para acessar a SemanticValue instância associada aos GrammarBuilder objetos especificados pelo builders argumento.
- builders
- GrammarBuilder[]
Uma matriz de componentes gramaticais que serão associados a um SemanticValue objeto acessível com a marca definida em semanticResultKey.
Exemplos
O exemplo a seguir cria uma Grammar entrada para reconhecer a senha do formulário "Minha senha é ...", em que a entrada real é correspondida com um curinga.
O curinga é marcado por um SpeechRecognizer cujo valor de chave é "Senha". O SpeechRecognized manipulador verifica a presença dessa marca, obtém a entrada de áudio da senha e verifica a senha.
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);
}
Comentários
Devido a conversões implícitas, o builders argumento também dá suporte SemanticResultValuea SemanticResultKeyChoicesobjetos e String objetos. Para obter mais informações sobre conversões implícitas, consulte Implicit.
Ao executar 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 uma Grammarentrada para o mecanismo de reconhecimento, deverá conter as palavras "a raposa marrom rápida" na sequência a 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 marca usada para acessar o SemanticValue que pode ser retornado.
O Value do SemanticValue é determinado pelas GrammarBuilder instâncias fornecidas pelo builders parâmetro.
Se os GrammarBuilder objetos não contiverem instâncias de definição, SemanticResultValueo valor será SemanticValuenull.
Se os GrammarBuilder objetos fornecidos no builders parâmetro fornecerem uma instância não registrada (não associada a um SemanticResultKey objeto) SemanticResultValue usada pela lógica de SemanticResultValue reconhecimento, essa instância definirá a Value propriedade do SemanticValue que é produzido.
Deve haver uma e apenas uma instância não SemanticResultValue registrada nos GrammarBuilder objetos especificados pelo builders parâmetro. Se várias instâncias não SemanticResultValue registradas estiverem associadas SemanticResultKeyao , cada uma tentará definir o valor do SemanticValue produzido no resultado do reconhecimento. Isso não é permitido e o reconhecedor gerará uma exceção quando tentar usar um Grammar criado usando essa SemanticResultKey instância.
As instâncias contidas SemanticResultValue nos GrammarBuilder objetos especificados pelo parâmetro e já associadas a builders outra SemanticResultKey não têm efeito sobre a 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 marca a ser usada acessa a 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 marca definida em semanticResultKey.
Exemplos
O exemplo a seguir cria um Grammar de um GrammarBuilder objeto que usa um SemanticResultKey, que é definido por uma matriz de String objetos.
Um mecanismo de reconhecimento usando o Grammar criado reconhecerá a frase "cor verde vermelho azul zero". A semântica do RecognizedPhrase retornado pelo reconhecimento conterá um com um SemanticValueValue "azul verde vermelho". Você pode acessar a SemanticValue marca usando o "código".
Devido ao SemanticResultValue("zero", 5) acréscimo ao GrammarBuilderobjeto 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);
}
Comentários
Ao executar 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 uma Grammarentrada para o mecanismo de reconhecimento, deverá conter as palavras "a raposa marrom rápida" na sequência a ser reconhecida.
SemanticResultKey stringTest=new SemanticResultKey("stringTest",
new string[] {
"the",
"quick",
"brown",
"fox"});
O semanticResultKey argumento determina a chave usada para acessar a SemanticValue que pode ser retornada.
Se você construir um Grammar objeto usando um GrammarBuilder objeto que contenha uma chave semântica com uma matriz de objetos de cadeia de caracteres, a ValueSemanticValue do produzido por uma operação de reconhecimento será a cadeia de caracteres usada no reconhecimento. No exemplo anterior, isso significa que Value seria "a raposa marrom rápida".