SemanticResultKey 类

定义

将密匙字符串与 SemanticResultValue 值关联,以定义 SemanticValue 对象。

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

示例

以下示例创建 一个 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 对象,可以标记 SemanticResultValue 对象和字符串中包含的 GrammarBuilder 实例,以便在识别时可以从实例轻松访问 SemanticValue 值。

可以将 SemanticResultValueSemanticResultKey 对象与 GrammarBuilderChoices 对象结合使用来定义语音识别语法的语义结构。 若要访问识别结果中的语义信息,请通过 Semantics 上的 RecognizedPhrase属性获取 的SemanticValue实例。

构造函数

SemanticResultKey(String, GrammarBuilder[])

分配一个语义密匙给一个或多个 GrammarBuilder 对象,用于创建语音识别语法。

SemanticResultKey(String, String[])

分配一个语义密匙给一个或多个 String 实例,用于创建语音识别语法。

方法

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToGrammarBuilder()

GrammarBuilder 实例返回 SemanticResultKey 结构的实例。

ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于

另请参阅