Compartilhar via


SemanticResultKey Classe

Definição

Associa uma cadeia de caracteres chave com valores SemanticResultValue para definir objetos SemanticValue.

public ref class SemanticResultKey
public class SemanticResultKey
type SemanticResultKey = class
Public Class SemanticResultKey
Herança
SemanticResultKey

Exemplos

O exemplo a seguir cria um Grammar para reconhecer a entrada de senha do formulário "Minha senha é ...", em que a entrada real é correspondida com um curinga.

O curinga é marcado com uma chave semântica e o SpeechRecognized manipulador verifica a presença dessa marca para verificar se ocorreu uma entrada de senha.

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);

}

Comentários

A unidade básica da expressão semântica em System.Speech é o SemanticValue, que é um par chave/valor.

Usando SemanticResultKey objetos, você marca SemanticResultValue instâncias contidas em GrammarBuilder objetos e cadeias de caracteres para que os valores possam ser facilmente acessados de SemanticValue instâncias no reconhecimento.

Você pode usar SemanticResultValue objetos e SemanticResultKey , em conjunto com GrammarBuilder objetos e Choices , para definir a estrutura semântica para uma gramática de reconhecimento de fala. Para acessar as informações semânticas em um resultado de reconhecimento, obtenha uma instância de SemanticValue por meio da Semantics propriedade em RecognizedPhrase.

Construtores

SemanticResultKey(String, GrammarBuilder[])

Atribui uma chave semântica a um ou mais objetos GrammarBuilder usados para criar uma gramática de reconhecimento de fala.

SemanticResultKey(String, String[])

Atribui uma chave semântica a uma ou mais instâncias de String usadas para criar uma gramática de reconhecimento de fala.

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToGrammarBuilder()

Retorna uma instância de GrammarBuilder construída com base na instância de SemanticResultKey atual.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Confira também