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 экземпляров при распознавании.
Вы можете использовать SemanticResultValue и SemanticResultKey объекты в сочетании с GrammarBuilderChoices объектами для определения семантической структуры грамматики распознавания речи. Чтобы получить доступ к семантической информации в результате распознавания, получите экземпляр SemanticValue через Semantics свойство RecognizedPhrase.
Конструкторы
| Имя | Описание |
|---|---|
| SemanticResultKey(String, GrammarBuilder[]) |
Назначает семантический ключ одному или нескольким GrammarBuilder объектам, используемым для создания грамматики распознавания речи. |
| SemanticResultKey(String, String[]) |
Назначает семантический ключ одному или нескольким String экземплярам, используемым для создания грамматики распознавания речи. |
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ToGrammarBuilder() |
Возвращает экземпляр, созданный из текущего GrammarBuilder экземпляраSemanticResultKey. |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |