SemanticResultKey Constructores
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Construye una instancia de y asocia la clave con los componentes de SemanticResultKey gramática.
Sobrecargas
| Nombre | Description |
|---|---|
| SemanticResultKey(String, GrammarBuilder[]) |
Asigna una clave semántica a uno o varios GrammarBuilder objetos usados para crear una gramática de reconocimiento de voz. |
| SemanticResultKey(String, String[]) |
Asigna una clave semántica a una o varias String instancias usadas para crear una gramática de reconocimiento de voz. |
Comentarios
Los constructores para SemanticResultKey especificar una etiqueta de texto (la clave semántica) y un conjunto de componentes de gramática que se van a agregar a una gramática de reconocimiento de voz.
Los componentes de gramática se pueden especificar como una matriz de GrammarBuilder objetos o como una matriz de String instancias.
Si los componentes de gramática se usan en reconocimiento, puede acceder al devuelto SemanticValue mediante la etiqueta de texto proporcionada al constructor de SemanticResultKey como clave semántica. La Value propiedad de la SemanticValue instancia se determinará mediante los componentes de gramática usados en la definición de SemanticResultKey.
SemanticResultKey(String, GrammarBuilder[])
- Source:
- SemanticResultKey.cs
- Source:
- SemanticResultKey.cs
- Source:
- SemanticResultKey.cs
- Source:
- SemanticResultKey.cs
Asigna una clave semántica a uno o varios GrammarBuilder objetos usados para crear una gramática de reconocimiento 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
Etiqueta que se va a usar como clave semántica para tener acceso a la SemanticValue instancia asociada a los GrammarBuilder objetos especificados por el builders argumento .
- builders
- GrammarBuilder[]
Matriz de componentes de gramática que se asociarán a un SemanticValue objeto accesible con la etiqueta definida en semanticResultKey.
Ejemplos
En el ejemplo siguiente se crea un para reconocer la Grammar entrada de contraseña del formulario "Mi contraseña es ...", donde la entrada real coincide con un carácter comodín.
El carácter comodín se etiqueta mediante un SpeechRecognizer cuyo valor de clave es "Password". El SpeechRecognized controlador comprueba la presencia de esta etiqueta, obtiene la entrada de audio de la contraseña y comprueba la contraseña.
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);
}
Comentarios
Debido a las conversiones implícitas, el builders argumento también admite SemanticResultValueobjetos , SemanticResultKey, Choicesy String . Para obtener más información sobre las conversiones implícitas, vea Implicit.
Al realizar una operación de reconocimiento, los GrammarBuilder objetos proporcionados en el builders argumento se tratan como secuenciales. Por ejemplo, si se usa lo siguiente SemanticResultValue para construir una Grammarentrada , la entrada del motor de reconocimiento debe contener las palabras "el zorro marrón rápido" en secuencia que se va a reconocer.
SemanticResultKey stringTest=new SemanticResultKey(
"stringTest", new GrammarBuilder[] {
new GrammarBuilder("the"),
new GrammarBuilder("quick"),
new GrammarBuilder("brown"),
new GrammarBuilder("fox")});
El semanticResultKey argumento contiene la etiqueta usada para tener acceso al SemanticValue objeto que se puede devolver.
El Value de SemanticValue viene determinado por las GrammarBuilder instancias proporcionadas por el builders parámetro .
Si los GrammarBuilder objetos no contienen instancias de definición de SemanticResultValue, el valor de SemanticValue es null.
Si los GrammarBuilder objetos proporcionados en el builders parámetro proporcionan una instancia sin etiquetar (no asociada a un SemanticResultKey objeto) SemanticResultValue que usa la lógica de reconocimiento, esa instancia de SemanticResultValue definirá la Value propiedad del SemanticValue que se genera.
Debe haber una y solo una instancia sin etiquetar SemanticResultValue en los GrammarBuilder objetos especificados por el builders parámetro . Si hay varias instancias de sin etiqueta SemanticResultValue asociadas a SemanticResultKey, cada una intentará establecer el valor del SemanticValue generado en el resultado del reconocimiento. Esto no se permite y el reconocedor generará una excepción cuando intente usar un Grammar creado mediante dicha SemanticResultKey instancia.
Las instancias de SemanticResultValue contenidas en los GrammarBuilder objetos especificados por el builders parámetro y que ya están asociadas a otra SemanticResultKey no tienen ningún efecto en la instancia actual SemanticResultKey .
Se aplica a
SemanticResultKey(String, String[])
- Source:
- SemanticResultKey.cs
- Source:
- SemanticResultKey.cs
- Source:
- SemanticResultKey.cs
- Source:
- SemanticResultKey.cs
Asigna una clave semántica a una o varias String instancias usadas para crear una gramática de reconocimiento de voz.
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
La etiqueta que se va a usar tiene acceso a la SemanticValue instancia asociada a los String objetos especificados por el phrases argumento .
- phrases
- String[]
Uno o varios String objetos, cuyo texto concatenado se asociará a un SemanticValue objeto accesible con la etiqueta definida en semanticResultKey.
Ejemplos
En el ejemplo siguiente se crea un Grammar objeto a partir de un GrammarBuilder objeto que usa un SemanticResultKeyobjeto , que se define mediante una matriz de String objetos .
Un motor de reconocimiento con el Grammar creado reconocerá la frase "color rojo verde azul cero". La semántica del RecognizedPhrase devuelto por el reconocimiento contendrá un SemanticValue elemento con un Value de "azul verde rojo". Puede acceder a SemanticValue mediante la etiqueta "código".
SemanticResultValue("zero", 5) Debido al objeto anexado a GrammarBuilder, el objeto raíz SemanticValue de RecognizedPhrase tendrá un 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);
}
Comentarios
Al realizar una operación de reconocimiento, los String objetos usados en el phrases parámetro se tratan como secuenciales. Por ejemplo, si se usa lo siguiente SemanticResultValue para construir una Grammarentrada , la entrada del motor de reconocimiento debe contener las palabras "el zorro marrón rápido" en secuencia que se va a reconocer.
SemanticResultKey stringTest=new SemanticResultKey("stringTest",
new string[] {
"the",
"quick",
"brown",
"fox"});
El semanticResultKey argumento determina la clave utilizada para tener acceso SemanticValue al objeto que se puede devolver.
Si crea un Grammar objeto mediante un GrammarBuilder objeto que contiene una clave semántica con una matriz de objetos de cadena, el Value de SemanticValue generado por una operación de reconocimiento será la cadena utilizada en el reconocimiento. En el ejemplo anterior, esto significa que Value sería "el zorro marrón rápido".