次の方法で共有


SemanticResultKey クラス

定義

SemanticResultValue 値とキー文字列を関連付けて、SemanticValue オブジェクトを定義します。

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

次の例では、"My password is ..." という形式のパスワード入力を認識する を作成 Grammar します。ここで、実際の入力はワイルドカードと一致します。

ワイルドカードにはセマンティック キーがタグ付けされ SpeechRecognized 、ハンドラーはこのタグが存在するかどうかを確認して、パスワード入力が発生したことを確認します。

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);

}

注釈

System.Speech のセマンティック式の基本的な単位は です SemanticValue。これはキーと値のペアです。

オブジェクトを使用するとSemanticResultKey、オブジェクトと文字列に含まれるインスタンスにGrammarBuilderタグを付SemanticResultValueけ、認識時にインスタンスからSemanticValue値に簡単にアクセスできるようにします。

および オブジェクトを SemanticResultKey および オブジェクトとChoicesGrammarBuilder組み合わせて使用SemanticResultValueして、音声認識文法のセマンティック構造を定義できます。 認識結果のセマンティック情報にアクセスするには、 の プロパティを使用して の SemanticValue インスタンスを Semantics 取得します RecognizedPhrase

コンストラクター

SemanticResultKey(String, GrammarBuilder[])

音声認識文法を作成するために使用される 1 つ以上の GrammarBuilder オブジェクトにセマンティクス キーを割り当てます。

SemanticResultKey(String, String[])

音声認識文法を作成するために使用される 1 つ以上の String インスタンスにセマンティクス キーを割り当てます。

メソッド

Equals(Object)

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

(継承元 Object)
GetHashCode()

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

(継承元 Object)
GetType()

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

(継承元 Object)
MemberwiseClone()

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

(継承元 Object)
ToGrammarBuilder()

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

ToString()

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

(継承元 Object)

適用対象

こちらもご覧ください