SemanticValue Clase

Definición

Representa la organización de la semántica de una frase reconocida.Represents the semantic organization of a recognized phrase.

public ref class SemanticValue sealed : System::Collections::Generic::ICollection<System::Collections::Generic::KeyValuePair<System::String ^, System::Speech::Recognition::SemanticValue ^>>, System::Collections::Generic::IDictionary<System::String ^, System::Speech::Recognition::SemanticValue ^>, System::Collections::Generic::IEnumerable<System::Collections::Generic::KeyValuePair<System::String ^, System::Speech::Recognition::SemanticValue ^>>
[System.Serializable]
public sealed class SemanticValue : System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string,System.Speech.Recognition.SemanticValue>>, System.Collections.Generic.IDictionary<string,System.Speech.Recognition.SemanticValue>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string,System.Speech.Recognition.SemanticValue>>
type SemanticValue = class
    interface IDictionary<string, SemanticValue>
    interface ICollection<KeyValuePair<string, SemanticValue>>
    interface seq<KeyValuePair<string, SemanticValue>>
    interface IEnumerable
Public NotInheritable Class SemanticValue
Implements ICollection(Of KeyValuePair(Of String, SemanticValue)), IDictionary(Of String, SemanticValue), IEnumerable(Of KeyValuePair(Of String, SemanticValue))
Herencia
SemanticValue
Atributos
Implementaciones

Ejemplos

En el ejemplo siguiente se muestra un controlador SpeechRecognized para un evento diseñado para controlar los comandos para cambiar el color de primer plano y de fondo.The following example shows a handler for a SpeechRecognized event designed to handle commands to change foreground and background color.

El controlador identifica frases reconocidas que no tienen ninguna estructura semántica subyacente detectando un Count de cero y un Value de null.The handler identifies recognized phrases that have no underlying semantic structure by detecting a Count of zero and a Value of null. A continuación, esta salida de reconocimiento se procesa directamente mediante el análisis del texto sin formato.This recognition output is then processed directly by parsing the raw text.

En otros casos, el controlador usa claves para obtener los componentes RGB de un nombre de color, para determinar si el comando cambiará el primer plano o el fondo, o para indicar que no se ha encontrado ninguna clave válida.In other cases, the handler uses keys to obtain the RGB components of a color name, to determine whether the command will change the foreground or background, or to indicate that no valid key was found.

  
newGrammar.SpeechRecognized +=  
  delegate(object sender, SpeechRecognizedEventArgs eventArgs)   
  {  
  
    // Retrieve the value of the semantic property.  
    bool changeBackGround = true;  
    string errorString = "";  
    SemanticValue semantics = eventArgs.Result.Semantics;  
  
    Color newColor = Color.Empty;  
  
    try   
    {  
      if (semantics.Count == 0 && semantics.Value==null)  
      {  
        // Signifies recognition by a grammar with no semantics.  
        // Parse the string, assuming that the last word is color,  
        // and search for "background" or "foreground" in the input.  
        if (eventArgs.Result.Text.Contains("foreground"))   
        {  
          changeBackGround = false;  
        }  
        string cName = eventArgs.Result.Words[eventArgs.Result.Words.Count - 1].Text;  
        newColor = Color.FromName(cName);  
  
      }  
      else if (semantics.ContainsKey("colorStringList") ^ semantics.ContainsKey("colorRGBValueList"))   
      {  
  
        // Determine whether to change background or foreground.  
        if (semantics.ContainsKey("applyChgToBackground"))   
        {  
          changeBackGround = semantics["applyChgToBackground"].Value is bool;  
        }  
  
        // Get the RGB color value.  
        if (semantics.ContainsKey("colorStringList"))   
        {  
          newColor = Color.FromName((string)semantics["colorStringList"].Value);  
        }  
        if (semantics.ContainsKey("colorRGBValueList"))   
        {  
          newColor = System.Drawing.Color.FromArgb((int)semantics["colorRGBValueList"].Value);  
        }  
      }  
      else   
      {  
  
        // Throw an exception if the semantics do not contain the keys we  
        // support.  
        throw(new Exception("Unsupported semantics keys found."));  
      }  
    }  
  
    catch (Exception exp)   
    {  
      MessageBox.Show(String.Format("Unable to process color semantics.:\n{0}\n", exp.Message));  
      return;  
    }  
  
    // Change colors, either foreground or background.  
    if (changeBackGround)   
    {  
      BackColor = newColor;  
      float Bright = BackColor.GetBrightness();  
      float Hue = BackColor.GetHue();  
      float Sat = BackColor.GetSaturation();  
  
      // Make sure that text is readable regardless of the background.  
      if (BackColor.GetBrightness() <= .50)   
      {  
        ForeColor = Color.White;  
      }  
      else   
      {  
        ForeColor = Color.Black;  
      }  
    }  
    else   
    {  
      ForeColor = newColor;  
      float Bright = ForeColor.GetBrightness();  
      float Hue = ForeColor.GetHue();  
      float Sat = ForeColor.GetSaturation();  
  
      // Make sure that text is readable regardless of Foreground.  
      if (ForeColor.GetBrightness() <= .50)   
      {  
        BackColor = Color.White;  
      }  
      else   
      {  
        BackColor = Color.Black;  
      }  
    }  
    return;  
  };  

Comentarios

SemanticValuees el objeto principal que implementa la tecnología semántica en System. Speech.SemanticValue is the primary object that implements the semantic technology in System.Speech. La interpretación semántica permite a las gramáticas definir reglas para su uso por parte de un motor de reconocimiento para interpretar correctamente la entrada de audio.Semantic interpretation allows grammars to define rules for use by a recognition engine to correctly interpret audio input. La interpretación semántica también permite que los motores de reconocimiento organicen los resultados para que se puedan procesar más fácilmente, en lugar de devolver únicamente palabras y secuencias de palabras reconocidas.Semantic interpretation also enables recognition engines to organize their results so that they can be more easily processed, rather than returning only recognized words and sequences of words.

Por ejemplo, la salida del motor de reconocimiento "cambiar fondo a rojo" tendría que ser analizada e interpretada por una aplicación antes de que se pudiera actuar.For example, the recognition engine output "Change background to red" would have to be parsed and interpreted by an application before it could be acted upon. Un Grammar objeto puede especificar una interpretación semántica para que el procesamiento sea más claro especificando que la frase tiene dos subestructuras semánticas, una para seleccionar fondo o primer plano (representado por el texto "background") y la otra para seleccionar color (representado por el texto "red").A Grammar object can specify a semantic interpretation to make processing clearer by specifying that the phrase has two semantic substructures, one for selecting background or foreground (represented by the text "background"), and the other for selecting color (represented by the text "red").

System. Speech representa la semántica de una operación de reconocimiento en un árbol de SemanticValue objetos.System.Speech represents the semantics of a recognition operation in a tree of SemanticValue objects.

Cada SemanticValue instancia incluye lo siguiente:Each SemanticValue instance includes the following:

Los motores de reconocimiento basados en System. Speech proporcionan instancias SemanticValue válidas de para todas las salidas de reconocimiento, incluso para frases sin estructura semántica explícita.Recognition engines based on System.Speech provide valid instances of SemanticValue for all output from recognition, even for phrases with no explicit semantic structure.

La SemanticValue instancia de para una frase se obtiene utilizando Semantics la propiedad en RecognizedPhrase el objeto (u RecognitionResultobjetos que heredan de ella, como).The SemanticValue instance for a phrase is obtained using the Semantics property on the RecognizedPhrase object (or objects that inherit from it, such as RecognitionResult).

SemanticValuelos objetos obtenidos para frases reconocidas sin estructura semántica se caracterizan por:SemanticValue objects obtained for recognized phrases without semantic structure are characterized by:

  • Falta de elementos secundarios (Count es 0).The lack of children (Count is 0).

  • La propiedad Value es null.The Value property is null.

  • Nivel de confianza semántica artificial de 1,0 (devuelto Confidencepor).An artificial semantic confidence level of 1.0 (returned by Confidence).

Normalmente, las aplicaciones SemanticValue crean instancias indirectamente, agregándolas Grammar a los objetos SemanticResultValue mediante SemanticResultKey instancias de y, junto Choices con GrammarBuilder los objetos y.Typically, applications create SemanticValue instances indirectly, adding them to Grammar objects by using SemanticResultValue and SemanticResultKey instances, in conjunction with Choices and GrammarBuilder objects.

La construcción directa de SemanticValue una instancia de es útil durante la creación de gramáticas fuertemente tipadas.Direct construction of a SemanticValue instance is useful during the creation of strongly-typed grammars.

SemanticValueimplementa las IDictionary<TKey,TValue>interfaces, ICollection<T>y. IEnumerable<T>SemanticValue implements the IDictionary<TKey,TValue>, ICollection<T>, and IEnumerable<T> interfaces.

Constructores

SemanticValue(Object)

Inicializa una nueva instancia de la clase SemanticValue y especifica un valor semántico.Initializes a new instance of the SemanticValue class and specifies a semantic value.

SemanticValue(String, Object, Single)

Inicializa una nueva instancia de la clase de SemanticValue y especifica un valor semántico, un nombre de clave y un nivel de confianza.Initializes a new instance of the SemanticValue class and specifies a semantic value, a key name, and a confidence level.

Propiedades

Confidence

Devuelve una medida relativa de la certeza con respecto a la corrección del análisis semántico que devolvió la instancia de SemanticValue actual.Returns a relative measure of the certainty as to the correctness of the semantic parsing that returned the current instance of SemanticValue.

Count

Devuelve el número de objetos SemanticValue secundarios en la instancia de SemanticValue actual.Returns the number of child SemanticValue objects under the current SemanticValue instance.

Item[String]

Devuelve instancias de SemanticValue secundarias que pertenecen al SemanticValue actual.Returns child SemanticValue instances that belong to the current SemanticValue.

Value

Una propiedad de solo lectura que devuelve la información contenida en el SemanticValue actual.A read-only property that returns the information contained in the current SemanticValue.

Métodos

Contains(KeyValuePair<String,SemanticValue>)

Indica si la colección de la instancia de SemanticValue actual contiene una clave concreta y una instancia concreta de SemanticValue expresada como un par clave-valor.Indicates whether the current SemanticValue instance collection contains a specific key and a specific instance of SemanticValue expressed as a key/value pair.

ContainsKey(String)

Indica si la colección actual de la instancia de SemanticValue contiene una instancia de SemanticValue secundaria con una cadena de clave especificada.Indicates whether the current SemanticValue instance collection contains a child SemanticValue instance with a given key string.

Equals(Object)

Determina si un objeto específico es una instancia de SemanticValue e igual a la instancia actual de SemanticValue.Determines whether a specified object is an instance of SemanticValue and equal to the current instance of SemanticValue.

GetHashCode()

Proporciona un código hash para un objeto SemanticValue.Provides a hash code for a SemanticValue object.

GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
ToString()

Devuelve un valor de tipo string que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)

Implementaciones de interfaz explícitas

ICollection<KeyValuePair<String,SemanticValue>>.Add(KeyValuePair<String,SemanticValue>)

Agrega la clave y el SemanticValue especificados a la colección.Adds the specified key and SemanticValue to the collection.

ICollection<KeyValuePair<String,SemanticValue>>.Clear()

Quita todos los pares de clave y valor de la colección.Removes all key/value pairs from the collection.

ICollection<KeyValuePair<String,SemanticValue>>.CopyTo(KeyValuePair<String,SemanticValue>[], Int32)

Copia un par clave-valor en una ubicación específica de una matriz de destino.Copies a key/value pair to a specific location in a targeted array.

ICollection<KeyValuePair<String,SemanticValue>>.IsReadOnly

Obtiene un valor que indica si la colección es de solo lectura.Gets a value that indicates whether the collection is read-only.

ICollection<KeyValuePair<String,SemanticValue>>.Remove(KeyValuePair<String,SemanticValue>)

Quita la clave y el elemento SemanticValue especificados de la colección.Removes the specified key and SemanticValue from the collection.

IDictionary<String,SemanticValue>.Add(String, SemanticValue)

Agrega la clave y el SemanticValue especificados al diccionario.Adds the specified key and SemanticValue to the dictionary.

IDictionary<String,SemanticValue>.Keys

Obtiene una colección que contiene las claves de un diccionario de pares clave-valor.Gets a collection that contains the keys from a dictionary of key/value pairs.

IDictionary<String,SemanticValue>.Remove(String)

Quita la clave y el SemanticValue especificados del diccionario.Removes the specified key and SemanticValue from the dictionary.

IDictionary<String,SemanticValue>.TryGetValue(String, SemanticValue)

Obtiene el SemanticValue asociado con la clave especificada.Gets the SemanticValue associated with the specified key.

IDictionary<String,SemanticValue>.Values

Obtiene una colección que contiene los valores de un diccionario de pares clave-valor.Gets a collection that contains the values from a dictionary of key/value pairs.

IEnumerable.GetEnumerator()

Devuelve un enumerador que recorre en iteración una colección.Returns an enumerator that iterates through a collection.

IEnumerable<KeyValuePair<String,SemanticValue>>.GetEnumerator()

Devuelve un enumerador que recorre en iteración una colección.Returns an enumerator that iterates through a collection.

Métodos de extensión

CopyToDataTable<T>(IEnumerable<T>)

Devuelve un objeto DataTable que contiene copias de los objetos DataRow, dado un objeto IEnumerable<T> de entrada donde el parámetro T genérico es DataRow.Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)

Copia objetos DataRow en el objeto DataTable especificado, dado un objeto IEnumerable<T> de entrada donde el parámetro T genérico es DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler)

Copia objetos DataRow en el objeto DataTable especificado, dado un objeto IEnumerable<T> de entrada donde el parámetro T genérico es DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

Cast<TResult>(IEnumerable)

Convierte los elementos de IEnumerable en el tipo especificado.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtra los elementos de IEnumerable en función de un tipo especificado.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Habilita la paralelización de una consulta.Enables parallelization of a query.

AsQueryable(IEnumerable)

Convierte una interfaz IEnumerable en IQueryable.Converts an IEnumerable to an IQueryable.

Ancestors<T>(IEnumerable<T>)

Devuelve una colección de elementos que contiene los antecesores de todos los nodos de la colección de origen.Returns a collection of elements that contains the ancestors of every node in the source collection.

Ancestors<T>(IEnumerable<T>, XName)

Devuelve una colección de elementos filtrada que contiene los antecesores de todos los nodos de la colección de origen.Returns a filtered collection of elements that contains the ancestors of every node in the source collection. En la colección sólo se incluyen los elementos que tienen un objeto XName coincidente.Only elements that have a matching XName are included in the collection.

DescendantNodes<T>(IEnumerable<T>)

Devuelve una colección de los nodos descendientes de todos los documentos y elementos de la colección de origen.Returns a collection of the descendant nodes of every document and element in the source collection.

Descendants<T>(IEnumerable<T>)

Devuelve una colección de elementos que contiene los elementos descendientes de todos los elementos y documentos de la colección de origen.Returns a collection of elements that contains the descendant elements of every element and document in the source collection.

Descendants<T>(IEnumerable<T>, XName)

Devuelve una colección filtrada de elementos que contiene los elementos descendientes de todos los elementos y documentos de la colección de origen.Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. En la colección sólo se incluyen los elementos que tienen un objeto XName coincidente.Only elements that have a matching XName are included in the collection.

Elements<T>(IEnumerable<T>)

Devuelve una colección de los elementos secundarios de todos los elementos y documentos de la colección de origen.Returns a collection of the child elements of every element and document in the source collection.

Elements<T>(IEnumerable<T>, XName)

Devuelve una colección filtrada de los elementos secundarios de todos los elementos y documentos de la colección de origen.Returns a filtered collection of the child elements of every element and document in the source collection. En la colección sólo se incluyen los elementos que tienen un objeto XName coincidente.Only elements that have a matching XName are included in the collection.

InDocumentOrder<T>(IEnumerable<T>)

Devuelve una colección de nodos que contiene todos los nodos de la colección de origen, clasificados por documento.Returns a collection of nodes that contains all nodes in the source collection, sorted in document order.

Nodes<T>(IEnumerable<T>)

Devuelve una colección de los nodos secundarios de todos los documentos y elementos de la colección de origen.Returns a collection of the child nodes of every document and element in the source collection.

Remove<T>(IEnumerable<T>)

Quita todos los nodos de la colección de origen de su nodo primario.Removes every node in the source collection from its parent node.

Se aplica a

Consulte también: