SemanticResultValue Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
, float
lub 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) |