Udostępnij za pośrednictwem


SemanticResultKey Konstruktory

Definicja

Tworzy wystąpienie SemanticResultKey klasy i kojarzy klucz ze składnikami gramatyki.

Przeciążenia

SemanticResultKey(String, GrammarBuilder[])

Przypisuje klucz semantyczny do co najmniej jednego GrammarBuilder obiektu używanego do tworzenia gramatyki rozpoznawania mowy.

SemanticResultKey(String, String[])

Przypisuje klucz semantyczny do co najmniej jednego String wystąpienia używanego do tworzenia gramatyki rozpoznawania mowy.

Uwagi

Konstruktory służące do SemanticResultKey określania tagu tekstowego (klucza semantycznego) i zestawu składników gramatycznych, które mają zostać dodane do gramatyki rozpoznawania mowy.

Składniki gramatyczne można określić jako tablicę GrammarBuilder obiektów lub jako tablicę String wystąpień.

Jeśli składniki gramatyczne są używane w rozpoznawaniu, możesz uzyskać dostęp do zwróconego SemanticValue przy użyciu tagu tekstowego podanego do konstruktora SemanticResultKey jako klucza semantycznego. Właściwość ValueSemanticValue wystąpienia będzie określana przez składniki gramatyczne używane w definicji .SemanticResultKey

SemanticResultKey(String, GrammarBuilder[])

Źródło:
SemanticResultKey.cs
Źródło:
SemanticResultKey.cs

Przypisuje klucz semantyczny do co najmniej jednego GrammarBuilder obiektu używanego do tworzenia gramatyki rozpoznawania mowy.

public:
 SemanticResultKey(System::String ^ semanticResultKey, ... cli::array <System::Speech::Recognition::GrammarBuilder ^> ^ builders);
public SemanticResultKey (string semanticResultKey, params System.Speech.Recognition.GrammarBuilder[] builders);
new System.Speech.Recognition.SemanticResultKey : string * System.Speech.Recognition.GrammarBuilder[] -> System.Speech.Recognition.SemanticResultKey
Public Sub New (semanticResultKey As String, ParamArray builders As GrammarBuilder())

Parametry

semanticResultKey
String

Tag używany jako klucz semantyczny w celu uzyskania dostępu do SemanticValue wystąpienia skojarzonego builders z GrammarBuilder obiektami określonymi przez argument.

builders
GrammarBuilder[]

Tablica składników gramatycznych, które zostaną skojarzone z obiektem dostępnym z tagiem SemanticValue zdefiniowanym w elem.semanticResultKey

Przykłady

Poniższy przykład tworzy element Grammar w celu rozpoznawania danych wejściowych hasła formularza "Moje hasło jest ...", gdzie rzeczywiste dane wejściowe są dopasowywane do symbolu wieloznacznych.

Symbol wieloznaczny jest oznaczany przez SpeechRecognizer wartość klucza o wartości "Hasło". Program SpeechRecognized obsługi sprawdza obecność tego tagu, uzyskuje dane wejściowe audio hasła i weryfikuje hasło.

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

}

Uwagi

Ze względu na builders niejawne konwersje argument obsługuje SemanticResultValuerównież obiekty , SemanticResultKey, Choicesi String . Aby uzyskać więcej informacji na temat niejawnych konwersji, zobacz Implicit.

Podczas wykonywania operacji GrammarBuilder rozpoznawania obiekty podane w argumencie builders są traktowane jako sekwencyjne. Jeśli na przykład do konstruowania aparatu Grammarrozpoznawania jest używana następująca SemanticResultValue wartość , dane wejściowe aparatu rozpoznawania muszą zawierać słowa "szybki brązowy lis" w sekwencji rozpoznawania.

SemanticResultKey stringTest=new SemanticResultKey(
    "stringTest", new GrammarBuilder[] {
    new GrammarBuilder("the"),
    new GrammarBuilder("quick"),
    new GrammarBuilder("brown"),
    new GrammarBuilder("fox")});

Argument semanticResultKey zawiera tag używany do uzyskiwania dostępu SemanticValue do danych, które mogą zostać zwrócone.

Wartość Value elementu SemanticValue jest określana przez GrammarBuilder wystąpienia podane przez builders parametr .

GrammarBuilder Jeśli obiekty nie zawierają żadnych definiowania wystąpień SemanticResultValueklasy , wartość parametru SemanticValue to null.

GrammarBuilder Jeśli obiekty podane w parametrze builders udostępniają nieoznakowane (niezwiązane z obiektemSemanticResultKey) SemanticResultValue wystąpienie, które jest używane przez logikę rozpoznawania, to wystąpienie SemanticResultValue klasy zdefiniuje Value właściwość generowanego obiektu SemanticValue .

W obiektach określonych przez builders parametr powinien znajdować się tylko jedno, a tylko jedno nieoznakowane SemanticResultValue wystąpienieGrammarBuilder. Jeśli z elementem SemanticResultKeyjest skojarzonych wiele wystąpień nieoznakowanychSemanticResultValue, każde z nich podejmie próbę ustawienia wartości SemanticValue wygenerowanej w wyniku rozpoznawania. Nie jest to dozwolone, a aparat rozpoznawania wygeneruje wyjątek podczas próby użycia utworzonego Grammar przy użyciu takiego SemanticResultKey wystąpienia.

SemanticResultValue Wystąpienia zawarte w GrammarBuilder obiektach określonych przez builders parametr i już skojarzone z innym SemanticResultKey nie mają wpływu na bieżące SemanticResultKey wystąpienie.

Dotyczy

SemanticResultKey(String, String[])

Źródło:
SemanticResultKey.cs
Źródło:
SemanticResultKey.cs

Przypisuje klucz semantyczny do co najmniej jednego String wystąpienia używanego do tworzenia gramatyki rozpoznawania mowy.

public:
 SemanticResultKey(System::String ^ semanticResultKey, ... cli::array <System::String ^> ^ phrases);
public SemanticResultKey (string semanticResultKey, params string[] phrases);
new System.Speech.Recognition.SemanticResultKey : string * string[] -> System.Speech.Recognition.SemanticResultKey
Public Sub New (semanticResultKey As String, ParamArray phrases As String())

Parametry

semanticResultKey
String

Tag używany do uzyskiwania dostępu do wystąpienia skojarzonego SemanticValue z String obiektami określonymi przez phrases argument.

phrases
String[]

String Co najmniej jeden obiekt, którego połączony tekst zostanie skojarzony z obiektem dostępnym z tagiem SemanticValue zdefiniowanym w pliku semanticResultKey.

Przykłady

Poniższy przykład tworzy obiekt Grammar na podstawie GrammarBuilder obiektu, który używa SemanticResultKeyobiektu , który jest definiowany przez tablicę String obiektów.

Aparat rozpoznawania korzystający z utworzonego Grammar aparatu rozpozna frazę "kolor czerwony zielony niebieski zero". Semantyka zwróconego RecognizedPhrase przez rozpoznawanie będzie zawierać znak SemanticValue z Value "czerwonym zielonym niebieskim". Dostęp do elementu można uzyskać SemanticValue przy użyciu tagu "code".

Ze względu na SemanticResultValue("zero", 5) dołączenie do GrammarBuilderobiektu , obiekt główny SemanticValue w obiekcie RecognizedPhrase będzie miał wartość 5.

private void keyTest()
{
  // Say "color red green blue zero"
  GrammarBuilder gb = new GrammarBuilder("color") +
                        new SemanticResultKey("code",
                          (new string[] {"red", "green", "blue"})) +
                        new SemanticResultValue("zero", 5);
  Grammar g = new Grammar(gb);
  g.Name = "keyTest";
  _recognizer.LoadGrammar(g);
}

Uwagi

Podczas wykonywania operacji String rozpoznawania obiekty używane w parametrze phrases są traktowane jako sekwencyjne. Jeśli na przykład do konstruowania aparatu Grammarrozpoznawania jest używana następująca SemanticResultValue wartość , dane wejściowe aparatu rozpoznawania muszą zawierać słowa "szybki brązowy lis" w sekwencji rozpoznawania.

SemanticResultKey stringTest=new SemanticResultKey("stringTest",
                                new string[] {
                                               "the",
                                               "quick",
                                               "brown",
                                               "fox"});

semanticResultKey Argument określa klucz używany do uzyskiwania dostępu SemanticValue do elementu, który może zostać zwrócony.

Jeśli skonstruujesz Grammar obiekt używający GrammarBuilder obiektu zawierającego klucz semantyczny z tablicą obiektów ciągów, ValueSemanticValue wartość wygenerowana przez operację rozpoznawania będzie ciągiem używanym w rozpoznawaniu. W poprzednim przykładzie oznacza to, że Value będzie to "szybki brązowy lis".

Dotyczy