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 i kojarzy klucz ze składnikami gramatycznymi.
Przeciążenia
| Nazwa | Opis |
|---|---|
| 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 dla SemanticResultKey określenia tagu tekstowego (klucza semantycznego) i zestawu składników gramatycznych do dodania 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 funkcji rozpoznawania, możesz uzyskać dostęp do zwracanego SemanticValue tagu przy użyciu tagu tekstowego dostarczonego 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
- Ź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, który ma być używany jako klucz semantyczny w celu uzyskania dostępu SemanticValue do wystąpienia skojarzonego z GrammarBuilder obiektami określonymi builders przez argument.
- builders
- GrammarBuilder[]
Tablica składników gramatycznych, które zostaną skojarzone z obiektem dostępnym z tagiem SemanticValue zdefiniowanym w pliku semanticResultKey.
Przykłady
W poniższym przykładzie utworzono element , Grammar aby rozpoznać dane wejściowe hasła w formularzu "Moje hasło jest ...", gdzie rzeczywiste dane wejściowe są zgodne z symbolem wieloznacznymi.
Symbol wieloznaczny jest oznaczony za pomocą SpeechRecognizer wartości klucza "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 niejawne konwersje builders 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 Grammaraparatu rozpoznawania jest używana następująca SemanticResultValue wartość , musi zawierać wyrazy "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 elementu, który może zostać zwrócony.
Wartość Value parametru SemanticValue jest określana przez GrammarBuilder wystąpienia udostępniane przez builders parametr .
GrammarBuilder Jeśli obiekty nie zawierają żadnych definiowania wystąpień SemanticResultValue, 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ść wygenerowanej SemanticValue klasy .
W obiektach określonych przez builders parametr powinien znajdować się tylko jedno, a tylko jedno nieoznakowane SemanticResultValue wystąpienieGrammarBuilder. Jeśli wiele wystąpień nieoznakowanych SemanticResultValue jest skojarzonych z elementem SemanticResultKey, każda z nich podejmie próbę ustawienia wartości SemanticValue wygenerowanej w wyniku rozpoznawania. Jest to niedozwolone, a rozpoznawanie wygeneruje wyjątek podczas próby użycia utworzonego GrammarSemanticResultKey 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
- Ź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, który ma być używany do uzyskiwania dostępu do SemanticValue wystąpienia skojarzonego phrases z String obiektami określonymi przez argument.
- phrases
- String[]
String Co najmniej jeden obiekt, którego połączony tekst zostanie skojarzony z obiektem dostępnym z tagiem zdefiniowanym SemanticValue w pliku semanticResultKey.
Przykłady
Poniższy przykład tworzy obiekt Grammar z GrammarBuilder obiektu, który używa SemanticResultKeyobiektu , który jest definiowany przez tablicę String obiektów.
Aparat rozpoznawania używający utworzonego Grammar identyfikatora rozpozna frazę "kolor czerwony zielony niebieski zero". Semantyka zwróconych 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łączony do GrammarBuilderobiektu , obiekt główny SemanticValue w RecognizedPhrase obiekcie 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 Grammaraparatu rozpoznawania jest używana następująca SemanticResultValue wartość , musi zawierać wyrazy "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".