SemanticResultValue クラス

定義

セマンティクス値を表し、必要に応じて、音声認識文法のコンポーネントに値を関連付けます。

public ref class SemanticResultValue
public class SemanticResultValue
type SemanticResultValue = class
Public Class SemanticResultValue
継承
SemanticResultValue

次の例では、 Grammar コマンド "Set/Change/Alter 前景/Background..." を認識するを返します。 [カラーリスト]。 SemanticResultValue および SemanticResultKey インスタンス (およびオブジェクトと共に) を使用して、 Choices GrammarBuilder 認識時に解析できるセマンティクスを定義します。 解析されたセマンティクスは、要求された色と、前景色または背景色を変更するかどうかを決定します。

private Grammar FgBgColorGrammar()   
{  
  Grammar grammar = null;  

  // Allow the command to begin with set, alter, change.  
  Choices introChoices = new Choices();  
  foreach (string introString in new string[] { "Change", "Set", "Alter" })   
  {  
    GrammarBuilder introGB = new GrammarBuilder(introString);  
    introChoices.Add(new SemanticResultValue(introGB, String.Format("Command: {0}", introString)));  
  }    

  GrammarBuilder cmdIntro = new GrammarBuilder(introChoices);  

  // Define the arguments for the command to select foreground or background   
  // and to change their color as semantic values.  
  Choices fgOrbgChoice = new Choices();  
  GrammarBuilder backgroundGB=new GrammarBuilder("background");  
  backgroundGB.Append(new SemanticResultValue(true));  
  fgOrbgChoice.Add(backgroundGB);  
  fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("foreground", false));  
  SemanticResultKey fgOrbgChoiceKey = new SemanticResultKey("BgOrFgBool", fgOrbgChoice);  
  Choices colorChoice = new Choices();  
  foreach (string colorName in System.Enum.GetNames(typeof(KnownColor)))   
  {  

    // Use implicit conversion of SemanticResultValue to GrammarBuilder.      
    colorChoice.Add(  
        (GrammarBuilder) (new SemanticResultValue(colorName, (Color.FromName(colorName)).Name)));  
  }  

  // Create a GrammarBuilder for CmdArgs to be appended to CmdIntro using  
  // semantic keys.  
  GrammarBuilder cmdArgs = new GrammarBuilder();  
  cmdArgs.Append(new SemanticResultKey("BgOrFgBool", fgOrbgChoice));  
  cmdArgs.AppendWildcard();  
  cmdArgs.Append(new SemanticResultKey("colorStringList", colorChoice));  

  GrammarBuilder cmds =   
      GrammarBuilder.Add(  
                       cmdIntro,  
                       new GrammarBuilder(new SemanticResultKey("Cmd Args", cmdArgs)));  
  grammar = new Grammar(cmds);  
  grammar.Name = "Tree [Set,change,alter] [foreground,background] * color";  
  return grammar;  
}  

注釈

およびオブジェクトの使用は、の SemanticResultValue SemanticResultKey GrammarBuilder Choices セマンティック構造を設計する最も簡単な方法です Grammar 。 句のセマンティック情報にアクセスするには、のプロパティを使用して、のインスタンスを取得し SemanticValue Semantics RecognizedPhrase ます。

注意

オブジェクトによって管理 SemanticResultValue される値は Object 、コンストラクターに渡されるインスタンスによって定義されます。 このの基になる型は、、、、 Object またはである必要があり bool int float string ます。 それ以外の型の場合は Grammar 、を使用してインスタンスを構築でき SemanticResultValue ません。

インスタンスの一般的な使用では、 SemanticResultValue Grammar 句、規則、オブジェクトなど、の認識可能なコンポーネントにインスタンスを関連付け Choices ます。 関連付けられているコンポーネントが認識操作の一部として使用されている場合は、を使用して、 SemanticResultValue 返された語句のセマンティクスに値が定義されます。

インスタンスを文法要素に関連付けるには SemanticResultValue 、の作成に使用されるコンストラクターに応じて、2つの基本的な方法があり SemanticResultValue ます。

  • のインスタンスによって指定された値のみ Object がオブジェクトの構築に使用される場合 SemanticResultValue 、は、 SemanticResultValue オブジェクトに加えて、その前にある文法コンポーネントに関連付けられ GrammarBuilder ます。

    たとえば、次のコード片で、 Grammar このインスタンスを使用して構築されたが GrammarBuilder "background" という語を認識している場合、の値は true 認識された句のセマンティクスで設定されます。

    GrammarBuilder backgroundGB=new GrammarBuilder("background");  
    backgroundGB.Append(new SemanticResultValue(true));  
    

    詳細については、SemanticResultValue(Object) の説明を参照してください。

  • 値を指定すると共に文字列値の句または特定のインスタンスが使用されている場合は、 GrammarBuilder Object SemanticResultValue その値が文字列値の句またはインスタンスに自動的に関連付けられ GrammarBuilder ます。 語句または GrammarBuilder オブジェクトが認識プロセスで使用されている場合、値は認識された語句のセマンティクスに割り当てられます。

    次の例は、これを示しています。これは、との明示的な呼び出しを使用する前の例と機能的には同じです Append SemanticResultValue(Object) 。 認識ロジックで "background" という単語が使用されている場合は、認識された true セマンティクスに値が追加されます。

    fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("background", true));  
    

    詳細については、「」および「」の説明を参照してください SemanticResultValue(GrammarBuilder, Object) SemanticResultValue(String, Object)

によって使用されるには、すべてのインスタンスが、 Grammar SemanticResultValue そのに SemanticValue よって使用されるいずれかのオブジェクトに関連付けられている必要があり Grammar ます。 これは、セマンティックキーをに関連付けることによって行われ SemanticResultValue ます。

オブジェクトを使用して、セマンティックキーを明示的ににアタッチすることができ SemanticResultValue SemanticResultKey ます。 SemanticResultValue キーに明示的にアタッチされていないインスタンスは、既定のルートキーにアタッチされ SemanticValue ます。

を使用してを設定した後、 SemanticResultValue Value 既定のルートキーを使用してタグ付けされているかどうかにかかわらず、 SemanticResultKey その値を変更する必要がないか、認識操作中に例外が発生します。

次の例では、のルートを設定してから変更するため、例外が発生し Value Grammar ます。

GrammarBuilder gb=new GrammarBuilder();  
gb.Append(new SemanticResultValue("One"));  
gb.Append(new SemanticResultValue("Two"));  

一方、次の例のコードは許可されています。 の複数のインスタンスが定義されてい SemanticResultValue ますが、オブジェクトに含まれて Choices おり、1つだけがキーの値を設定するために使用され bgOrfgText ます。

Choices fgOrbgChoice = new Choices();  
fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("background"));  
fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("foreground"));  
SemanticResultKey fgOrbgChoiceKey = new SemanticResultKey("BgOrFgText", fgOrbgChoice);  

コンストラクター

SemanticResultValue(GrammarBuilder, Object)

SemanticResultValue クラスの新しいインスタンスを初期化して、セマンティクス値と GrammarBuilder オブジェクトを関連付けます。

SemanticResultValue(Object)

SemanticResultValue クラスの新しいインスタンスを初期化して、セマンティクス値を指定します。

SemanticResultValue(String, Object)

SemanticResultValue クラスの新しいインスタンスを初期化して、セマンティクス値と String オブジェクトを関連付けます。

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToGrammarBuilder()

現在の GrammarBuilder インスタンスから構築された SemanticResultValue のインスタンスを返します

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象

こちらもご覧ください