SemanticResultKey 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将密匙字符串与 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 值。
可以将 SemanticResultValue 和 SemanticResultKey 对象与 GrammarBuilder 和 Choices 对象结合使用来定义语音识别语法的语义结构。 若要访问识别结果中的语义信息,请通过 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) |