SemanticResultKey Konstruktory
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.
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".