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实例。
Semantic |
分配一个语义密匙给一个或多个 GrammarBuilder 对象,用于创建语音识别语法。 |
Semantic |
分配一个语义密匙给一个或多个 String 实例,用于创建语音识别语法。 |
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
Get |
作为默认哈希函数。 (继承自 Object) |
Get |
获取当前实例的 Type。 (继承自 Object) |
Memberwise |
创建当前 Object 的浅表副本。 (继承自 Object) |
To |
从 GrammarBuilder 实例返回 SemanticResultKey 结构的实例。 |
To |
返回表示当前对象的字符串。 (继承自 Object) |
产品 | 版本 |
---|---|
.NET | 8 (package-provided), 9 (package-provided) |
.NET Framework | 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7 (package-provided), 4.7, 4.7.1 (package-provided), 4.7.1, 4.7.2 (package-provided), 4.7.2, 4.8 (package-provided), 4.8, 4.8.1 |
.NET Standard | 2.0 (package-provided) |