SemanticValue クラス

定義

認識された語句のセマンティックの組織を表します。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))
継承
SemanticValue
属性
実装

次の例は、前景色とSpeechRecognized背景色を変更するコマンドを処理するように設計されたイベントのハンドラーを示しています。The following example shows a handler for a SpeechRecognized event designed to handle commands to change foreground and background color.

このハンドラーは、0とのCount nullValue検出することによって、基になるセマンティック構造を持たない認識された語句を識別します。The handler identifies recognized phrases that have no underlying semantic structure by detecting a Count of zero and a Value of null. この認識出力は、生のテキストを解析することによって直接処理されます。This recognition output is then processed directly by parsing the raw text.

それ以外の場合、ハンドラーは、カラー名の RGB コンポーネントを取得するためにキーを使用して、コマンドが前景または背景を変更するかどうか、または有効なキーが見つからなかったことを示します。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;  
  };  

注釈

SemanticValueは、system.string でセマンティックテクノロジを実装するプライマリオブジェクトです。SemanticValue is the primary object that implements the semantic technology in System.Speech. セマンティック解釈を使用すると、音声入力を正しく解釈するために認識エンジンによって使用されるルールを文法で定義できます。Semantic interpretation allows grammars to define rules for use by a recognition engine to correctly interpret audio input. また、セマンティック解釈を使用すると、認識エンジンは、認識された単語や単語のシーケンスだけを返すのではなく、より簡単に処理できるように結果を整理することができます。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.

たとえば、認識エンジンの出力 "Change background to red" は、アプリケーションが処理する前に解析して解釈する必要があります。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. オブジェクトGrammarでは、フレーズに2つのセマンティックサブ構造体があることを指定することによって、処理を明確にするセマンティック解釈を指定できます。1つは背景または前景 (テキスト "背景" で表されます) を選択し、もう1つは選択します。色 ("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").

Speech は、 SemanticValueオブジェクトツリー内の認識操作のセマンティクスを表します。System.Speech represents the semantics of a recognition operation in a tree of SemanticValue objects.

SemanticValueインスタンスには次のものが含まれます。Each SemanticValue instance includes the following:

  • のインスタンスValueSemanticValueキーとして使用される、プロパティによってアクセスされる。 ObjectAn Object, accessed by means of the Value property, used to key the instance of the SemanticValue.

  • Confidenceプロパティによって返されるセマンティック解析の精度の尺度。A measure of the accuracy of semantic parsing, returned by the Confidence property.

  • 子オブジェクトの名前と値のペアKeyValuePair<TKey,TValue>() のコレクション。これは、 SemanticValueインスタンスでもあります。A collection of name/value pairs (KeyValuePair<TKey,TValue>) of child objects, which are also SemanticValue instances. 子ノードには、次SemanticValueの例IDictionary<TKey,TValue>に示すように、 SemanticValue文字列参照キーとインスタンスを使用してを実装することによってアクセスできます。Child nodes are accessible through the SemanticValue implementation of IDictionary<TKey,TValue> using a string lookup key and a SemanticValue instance, as in the following example.

    foreach (KeyValuePair<String, SemanticValue> child in semantics)   
    {  
      Utils.CreateSemanticsTreeNodes(semanticsNode.Nodes, child.Value, child.Key);  
    }  
    

Speech に基づく認識エンジンは、明示的なセマンティックSemanticValue構造を持たない語句に対しても、認識のすべての出力に対しての有効なインスタンスを提供します。Recognition engines based on System.Speech provide valid instances of SemanticValue for all output from recognition, even for phrases with no explicit semantic structure.

句のSemantics RecognizedPhraseインスタンスは、オブジェクト (またはそのオブジェクトを継承するRecognitionResultオブジェクト) のプロパティを使用して取得されます。 SemanticValueThe SemanticValue instance for a phrase is obtained using the Semantics property on the RecognizedPhrase object (or objects that inherit from it, such as RecognitionResult).

SemanticValueセマンティック構造を使用せずに認識された語句に対して取得されるオブジェクトの特徴は次のとおりです。SemanticValue objects obtained for recognized phrases without semantic structure are characterized by:

  • 子がない (Countが 0)。The lack of children (Count is 0).

  • Value プロパティが null である。The Value property is null.

  • (によってConfidence返される) 1.0 の人為的セマンティック信頼レベル。An artificial semantic confidence level of 1.0 (returned by Confidence).

通常、アプリケーションでSemanticValueは、オブジェクトとSemanticResultKeyインスタンスをGrammarオブジェクトにSemanticResultValue追加して、インスタンスとインスタンスChoices GrammarBuilderを間接的に作成します。Typically, applications create SemanticValue instances indirectly, adding them to Grammar objects by using SemanticResultValue and SemanticResultKey instances, in conjunction with Choices and GrammarBuilder objects.

SemanticValueインスタンスの直接構築は、厳密に型指定された文法の作成時に役立ちます。Direct construction of a SemanticValue instance is useful during the creation of strongly-typed grammars.

SemanticValueIDictionary<TKey,TValue>ICollection<T>およびの各インターフェイスをIEnumerable<T>実装します。SemanticValue implements the IDictionary<TKey,TValue>, ICollection<T>, and IEnumerable<T> interfaces.

コンストラクター

SemanticValue(Object)

SemanticValue クラスの新しいインスタンスを初期化して、セマンティクス値を指定します。Initializes a new instance of the SemanticValue class and specifies a semantic value.

SemanticValue(String, Object, Single)

SemanticValue クラスの新しいインスタンスを初期化し、セマンティクス値、キー名、信頼レベルを指定します。Initializes a new instance of the SemanticValue class and specifies a semantic value, a key name, and a confidence level.

プロパティ

Confidence

SemanticValue の現在のインスタンスを返すセマンティック解析の正確性について相対計測を返します。Returns a relative measure of the certainty as to the correctness of the semantic parsing that returned the current instance of SemanticValue.

Count

現在の SemanticValue インスタンスにある子 SemanticValue オブジェクトの数を返します。Returns the number of child SemanticValue objects under the current SemanticValue instance.

Item[String]

現在の SemanticValue に属する子 SemanticValue インスタンスを返します。Returns child SemanticValue instances that belong to the current SemanticValue.

Value

現在の SemanticValue に含まれている情報を返す、読み取り専用プロパティ。A read-only property that returns the information contained in the current SemanticValue.

メソッド

Contains(KeyValuePair<String,SemanticValue>)

現在の SemanticValue インスタンス コレクションにキー/値ペアとして表された SemanticValue の特定のキーと特定のインスタンスが含まれるかどうかを示します。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)

現在の SemanticValue インスタンス コレクションに、指定されたキー文字列を持つ子 SemanticValue インスタンスが含まれるかどうかを示します。Indicates whether the current SemanticValue instance collection contains a child SemanticValue instance with a given key string.

Equals(Object)

指定したオブジェクトが SemanticValue のインスタンスで、現在の SemanticValue インスタンスと等しいかどうかを判定します。Determines whether a specified object is an instance of SemanticValue and equal to the current instance of SemanticValue.

GetHashCode()

SemanticValue オブジェクト用のハッシュ コードを提供します。Provides a hash code for a SemanticValue object.

GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
ToString()

現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

(継承元 Object)

明示的なインターフェイスの実装

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

指定したキーと SemanticValue をコレクションに追加します。Adds the specified key and SemanticValue to the collection.

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

コレクションから、すべてのキー/値ペアを削除します。Removes all key/value pairs from the collection.

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

キー/値ペアを対象となる配列内の特定の場所にコピーします。Copies a key/value pair to a specific location in a targeted array.

ICollection<KeyValuePair<String,SemanticValue>>.IsReadOnly

コレクションが読み取り専用かどうかを示す値を取得します。Gets a value that indicates whether the collection is read-only.

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

指定したキーと SemanticValue をコレクションから削除します。Removes the specified key and SemanticValue from the collection.

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

指定したキーと SemanticValue をディクショナリに追加します。Adds the specified key and SemanticValue to the dictionary.

IDictionary<String,SemanticValue>.Keys

キーと値のペアの辞書からのキーを含むコレクションを取得します。Gets a collection that contains the keys from a dictionary of key/value pairs.

IDictionary<String,SemanticValue>.Remove(String)

指定したキーと SemanticValue をディクショナリから削除します。Removes the specified key and SemanticValue from the dictionary.

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

指定したキーに関連付けられている SemanticValue を取得します。Gets the SemanticValue associated with the specified key.

IDictionary<String,SemanticValue>.Values

キーと値のペアの辞書からの値を含むコレクションを取得します。Gets a collection that contains the values from a dictionary of key/value pairs.

IEnumerable.GetEnumerator()

コレクションを反復処理する列挙子を返します。Returns an enumerator that iterates through a collection.

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

コレクションを反復処理する列挙子を返します。Returns an enumerator that iterates through a collection.

拡張メソッド

CopyToDataTable<T>(IEnumerable<T>)

指定した入力 DataTable オブジェクトに応じて (ジェネリック パラメーター TDataRow)、IEnumerable<T> オブジェクトのコピーを格納する 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)

指定した入力 DataRow オブジェクトに応じて (ジェネリック パラメーター TDataTable)、指定した IEnumerable<T>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)

指定した入力 DataRow オブジェクトに応じて (ジェネリック パラメーター TDataTable)、指定した IEnumerable<T>DataRow オブジェクトをコピーします。Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

Cast<TResult>(IEnumerable)

IEnumerable の要素を、指定した型にキャストします。Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

指定された型に基づいて IEnumerable の要素をフィルター処理します。Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

クエリの並列化を有効にします。Enables parallelization of a query.

AsQueryable(IEnumerable)

IEnumerableIQueryable に変換します。Converts an IEnumerable to an IQueryable.

Ancestors<T>(IEnumerable<T>)

ソース コレクション内のすべてのノードの先祖が格納された、要素のコレクションを返します。Returns a collection of elements that contains the ancestors of every node in the source collection.

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

ソース コレクション内のすべてのノードの先祖が格納され、フィルター処理された要素のコレクションを返します。Returns a filtered collection of elements that contains the ancestors of every node in the source collection. 一致する XName を持つ要素のみがコレクションに含められます。Only elements that have a matching XName are included in the collection.

DescendantNodes<T>(IEnumerable<T>)

ソース コレクション内のすべてのドキュメントおよび要素の子孫ノードのコレクションを返します。Returns a collection of the descendant nodes of every document and element in the source collection.

Descendants<T>(IEnumerable<T>)

ソース コレクション内のすべての要素とドキュメントの子孫要素が格納された要素のコレクションを返します。Returns a collection of elements that contains the descendant elements of every element and document in the source collection.

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

ソース コレクション内のすべての要素とドキュメントの子孫要素が格納され、フィルター処理された要素のコレクションを返します。Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. 一致する XName を持つ要素のみがコレクションに含められます。Only elements that have a matching XName are included in the collection.

Elements<T>(IEnumerable<T>)

ソース コレクション内のすべての要素およびドキュメントの子要素のコレクションを返します。Returns a collection of the child elements of every element and document in the source collection.

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

ソース コレクション内のすべての要素およびドキュメントの、フィルター処理された子要素のコレクションを返します。Returns a filtered collection of the child elements of every element and document in the source collection. 一致する XName を持つ要素のみがコレクションに含められます。Only elements that have a matching XName are included in the collection.

InDocumentOrder<T>(IEnumerable<T>)

ソース コレクション内のすべてのノードがドキュメント順に並べ替えて格納された、ノードのコレクションを返します。Returns a collection of nodes that contains all nodes in the source collection, sorted in document order.

Nodes<T>(IEnumerable<T>)

ソース コレクション内のすべてのドキュメントおよび要素の子ノードのコレクションを返します。Returns a collection of the child nodes of every document and element in the source collection.

Remove<T>(IEnumerable<T>)

ソース コレクション内の親ノードからすべてのノードを削除します。Removes every node in the source collection from its parent node.

適用対象

こちらもご覧ください