Udostępnij za pośrednictwem


SemanticResultValue Klasa

Definicja

Reprezentuje wartość semantyczną i opcjonalnie kojarzy wartość ze składnikiem gramatyki rozpoznawania mowy.

public ref class SemanticResultValue
public class SemanticResultValue
type SemanticResultValue = class
Public Class SemanticResultValue
Dziedziczenie
SemanticResultValue

Przykłady

Poniższy przykład zwraca element Grammar , który rozpoznaje polecenie "Set/Change/Alter Foreground/Background ... [lista kolorów]". SemanticResultValue i SemanticResultKey wystąpienia (w połączeniu z obiektami Choices i GrammarBuilder ) są używane do definiowania semantyki, które mogą być analizowane przy rozpoznawaniu. Semantyka przeanalizowana określi, który kolor został żądany i czy na pierwszym planie lub w tle ma zostać zmodyfikowany.

private Grammar FgBgColorGrammar()
{
  Grammar grammar = null;

  // Allow the command to begin with set, alter, change.
  Choices introChoices = new Choices();
  foreach (string introString in new string[] { "Change", "Set", "Alter" })
  {
    GrammarBuilder introGB = new GrammarBuilder(introString);
    introChoices.Add(new SemanticResultValue(introGB, String.Format("Command: {0}", introString)));
  }

  GrammarBuilder cmdIntro = new GrammarBuilder(introChoices);

  // Define the arguments for the command to select foreground or background
  // and to change their color as semantic values.
  Choices fgOrbgChoice = new Choices();
  GrammarBuilder backgroundGB=new GrammarBuilder("background");
  backgroundGB.Append(new SemanticResultValue(true));
  fgOrbgChoice.Add(backgroundGB);
  fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("foreground", false));
  SemanticResultKey fgOrbgChoiceKey = new SemanticResultKey("BgOrFgBool", fgOrbgChoice);
  Choices colorChoice = new Choices();
  foreach (string colorName in System.Enum.GetNames(typeof(KnownColor)))
  {

    // Use implicit conversion of SemanticResultValue to GrammarBuilder.
    colorChoice.Add(
        (GrammarBuilder) (new SemanticResultValue(colorName, (Color.FromName(colorName)).Name)));
  }

  // Create a GrammarBuilder for CmdArgs to be appended to CmdIntro using
  // semantic keys.
  GrammarBuilder cmdArgs = new GrammarBuilder();
  cmdArgs.Append(new SemanticResultKey("BgOrFgBool", fgOrbgChoice));
  cmdArgs.AppendWildcard();
  cmdArgs.Append(new SemanticResultKey("colorStringList", colorChoice));

  GrammarBuilder cmds =
      GrammarBuilder.Add(
                       cmdIntro,
                       new GrammarBuilder(new SemanticResultKey("Cmd Args", cmdArgs)));
  grammar = new Grammar(cmds);
  grammar.Name = "Tree [Set,change,alter] [foreground,background] * color";
  return grammar;
}

Uwagi

Użycie obiektów i SemanticResultKey w połączeniu SemanticResultValue z elementami GrammarBuilder i Choicesjest najprostszym sposobem projektowania struktury semantycznej dla elementu Grammar. Dostęp do informacji semantycznych dla frazy jest uzyskiwany przez uzyskanie wystąpienia SemanticValueklasy za pośrednictwem Semantics właściwości w obiekcie RecognizedPhrase.

Uwaga

Wartości zarządzane przez SemanticResultValue obiekty są definiowane przez Object wystąpienia przekazywane do ich konstruktorów. Podstawowym typem tego Object typu musi być bool, int, floatlub string. Każdy inny typ uniemożliwi konstruowanie Grammar wystąpienia za pomocą klasy SemanticResultValue.

Typowe użycie SemanticResultValue wystąpienia kojarzy wystąpienie z rozpoznawalnym składnikiem Grammarobiektu , takim jak fraza, reguła Choices lub obiekt. Jeśli skojarzony składnik jest używany w ramach operacji rozpoznawania, SemanticResultValue element jest używany do definiowania wartości w semantyce zwracanej frazy.

Istnieją dwie podstawowe metody kojarzenia SemanticResultValue wystąpienia z elementem gramatyki, w zależności od konstruktora użytego do utworzenia elementu SemanticResultValue.

  • Jeśli tylko wartość (określona przez wystąpienie Objectklasy ) jest używana do konstruowania SemanticResultValue obiektu, SemanticResultValue element jest skojarzony ze składnikiem gramatyki poprzedzającym GrammarBuilder go, oprócz obiektu.

    Na przykład w poniższym fragmencie kodu, jeśli Grammar skonstruowany przy użyciu tego GrammarBuilder wystąpienia rozpoznaje słowo "background", wartość true jest ustawiana w rozpoznanej semantyce fraz.

    GrammarBuilder backgroundGB=new GrammarBuilder("background");
    backgroundGB.Append(new SemanticResultValue(true));
    

    Aby uzyskać więcej informacji, zobacz opis .SemanticResultValue(Object)

  • Jeśli jest używana fraza wartości ciągu lub określone GrammarBuilder wystąpienie, wraz z Object wartością określającą SemanticResultValue wartość, ta wartość jest automatycznie skojarzona z frazą wartości ciągu lub wystąpieniem GrammarBuilder . Jeśli fraza lub GrammarBuilder obiekt jest używany w procesie rozpoznawania, wartość zostanie przypisana do semantyki rozpoznanej frazy.

    Poniższy przykład ilustruje to i jest funkcjonalnie równoważny z poprzednim przykładem, który używał jawnych wywołań do Append i SemanticResultValue(Object). Jeśli logika rozpoznawania używa słowa "background", wartość true zostanie dodana do rozpoznanych semantyki.

    fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("background", true));
    

    Aby uzyskać więcej informacji, zobacz opis i SemanticResultValue(GrammarBuilder, Object)SemanticResultValue(String, Object).

Aby można było go użyć w Grammar funkcji rozpoznawania, wszystkie SemanticResultValue wystąpienia muszą być skojarzone z jednym SemanticValue z obiektów używanych przez ten Grammarelement . W tym celu należy skojarzyć klucz semantyczny z elementem SemanticResultValue.

Klucze semantyczne można jawnie dołączyć do obiektu SemanticResultValueprzy użyciu SemanticResultKey obiektu . SemanticResultValue wystąpienia, które nie są jawnie dołączone do klucza, są dołączane do klucza głównego domyślnego SemanticValue.

SemanticResultValue Po użyciu elementu w celu ustawienia parametru Value, czy jest on oznaczony domyślnym kluczem głównym, czy przez jakikolwiek konkretny SemanticResultKeyelement , ta wartość nie może zostać zmodyfikowana lub wystąpi wyjątek podczas operacji rozpoznawania.

Poniższy przykład spowoduje wyjątek, ponieważ ustawia, a następnie modyfikuje katalog główny Value obiektu Grammar.

GrammarBuilder gb=new GrammarBuilder();
gb.Append(new SemanticResultValue("One"));
gb.Append(new SemanticResultValue("Two"));

Z drugiej strony kod w poniższym przykładzie jest dozwolony. Chociaż definiuje wiele wystąpień SemanticResultValueklasy , są one uwzględnione w Choices obiekcie, a tylko jeden będzie używany do ustawiania wartości klucza bgOrfgText.

Choices fgOrbgChoice = new Choices();
fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("background"));
fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("foreground"));
SemanticResultKey fgOrbgChoiceKey = new SemanticResultKey("BgOrFgText", fgOrbgChoice);

Konstruktory

SemanticResultValue(GrammarBuilder, Object)

Inicjuje SemanticResultValue nowe wystąpienie klasy i kojarzy wartość semantyczną z obiektem GrammarBuilder .

SemanticResultValue(Object)

Inicjuje SemanticResultValue nowe wystąpienie klasy i określa wartość semantyczną.

SemanticResultValue(String, Object)

Inicjuje SemanticResultValue nowe wystąpienie klasy i kojarzy wartość semantyczną z obiektem String .

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToGrammarBuilder()

Zwraca wystąpienie GrammarBuilder konstrukcji z bieżącego SemanticResultValue wystąpienia.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy

Zobacz też