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)

Применяется к

См. также раздел