SemanticResultKey Konstruktor
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Membuat instans SemanticResultKey dan mengaitkan kunci dengan komponen tata bahasa.
Overload
SemanticResultKey(String, GrammarBuilder[]) |
Menetapkan kunci semantik ke satu atau beberapa GrammarBuilder objek yang digunakan untuk membuat tata bahasa pengenalan ucapan. |
SemanticResultKey(String, String[]) |
Menetapkan kunci semantik ke satu atau beberapa String instans yang digunakan untuk membuat tata bahasa pengenalan ucapan. |
Keterangan
Konstruktor untuk SemanticResultKey menentukan tag teks (kunci semantik) dan sekumpulan komponen tata bahasa untuk ditambahkan ke tata bahasa pengenalan ucapan.
Komponen tata bahasa dapat ditentukan baik sebagai array GrammarBuilder objek, atau sebagai array String instans.
Jika komponen tata bahasa digunakan dalam pengenalan, Anda dapat mengakses yang dikembalikan SemanticValue menggunakan tag teks yang disediakan ke konstruktor SemanticResultKey sebagai kunci semantik. Properti ValueSemanticValue instans akan ditentukan oleh komponen tata bahasa yang digunakan dalam definisi SemanticResultKey.
SemanticResultKey(String, GrammarBuilder[])
- Sumber:
- SemanticResultKey.cs
- Sumber:
- SemanticResultKey.cs
- Sumber:
- SemanticResultKey.cs
Menetapkan kunci semantik ke satu atau beberapa GrammarBuilder objek yang digunakan untuk membuat tata bahasa pengenalan ucapan.
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())
Parameter
- semanticResultKey
- String
Tag yang akan digunakan sebagai kunci semantik untuk mengakses instans yang SemanticValueGrammarBuilder terkait dengan objek yang ditentukan oleh builders
argumen .
- builders
- GrammarBuilder[]
Array komponen tata bahasa yang akan dikaitkan dengan objek yang SemanticValue dapat diakses dengan tag yang ditentukan dalam semanticResultKey
.
Contoh
Contoh berikut membuat Grammar untuk mengenali input kata sandi dari formulir "Kata sandi saya adalah ...", di mana input aktual dicocokkan dengan kartubebas.
Kartubebas ditandai oleh yang SpeechRecognizer nilai kuncinya adalah "Kata Sandi". Handler SpeechRecognized memeriksa keberadaan tag ini, mendapatkan input audio kata sandi, dan memverifikasi kata sandi.
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);
}
Keterangan
Karena konversi implisit, builders
argumen juga mendukung SemanticResultValueobjek , SemanticResultKey, Choices, dan String . Untuk informasi selengkapnya tentang konversi implisit, lihat Implicit.
Saat melakukan operasi pengenalan, GrammarBuilder objek yang disediakan dalam builders
argumen diperlakukan sebagai berurutan. Misalnya, jika berikut SemanticResultValue ini digunakan untuk membangun Grammar, input ke mesin pengenalan harus berisi kata-kata "rubah coklat cepat" secara berurutan untuk dikenali.
SemanticResultKey stringTest=new SemanticResultKey(
"stringTest", new GrammarBuilder[] {
new GrammarBuilder("the"),
new GrammarBuilder("quick"),
new GrammarBuilder("brown"),
new GrammarBuilder("fox")});
Argumen semanticResultKey
berisi tag yang digunakan untuk mengakses SemanticValue yang mungkin dikembalikan.
Value dari SemanticValue ditentukan oleh GrammarBuilder instans yang disediakan oleh builders
parameter .
GrammarBuilder Jika objek tidak berisi instans SemanticResultValueyang mendefinisikan , nilainya SemanticValue adalah null
.
GrammarBuilder Jika objek yang disediakan dalam builders
parameter memberikan instans yang tidak diberi tag (tidak terkait dengan SemanticResultKey objek) SemanticResultValue yang digunakan oleh logika pengenalanSemanticResultValue, instans tersebut akan menentukan Value properti yang SemanticValue diproduksi.
Harus ada satu, dan hanya satu, instans yang SemanticResultValue tidak diberi tag dalam GrammarBuilder objek yang ditentukan oleh builders
parameter . Jika beberapa instans yang tidak diberi tag dikaitkan SemanticResultValue dengan SemanticResultKey, masing-masing akan mencoba untuk mengatur nilai SemanticValue yang dihasilkan dalam hasil pengenalan. Ini tidak diizinkan, dan recognizer akan menghasilkan pengecualian ketika mencoba menggunakan yang Grammar dibuat menggunakan instans tersebut SemanticResultKey .
Instans SemanticResultValue yang terkandung dalam GrammarBuilder objek yang ditentukan oleh builders
parameter dan sudah terkait dengan yang lain SemanticResultKey tidak berpengaruh pada instans saat ini SemanticResultKey .
Berlaku untuk
SemanticResultKey(String, String[])
- Sumber:
- SemanticResultKey.cs
- Sumber:
- SemanticResultKey.cs
- Sumber:
- SemanticResultKey.cs
Menetapkan kunci semantik ke satu atau beberapa String instans yang digunakan untuk membuat tata bahasa pengenalan ucapan.
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())
Parameter
- semanticResultKey
- String
Tag yang akan digunakan mengakses instans yang SemanticValue terkait dengan String objek yang ditentukan oleh phrases
argumen .
- phrases
- String[]
Satu atau beberapa String objek, yang teks yang digabungkan akan dikaitkan dengan objek yang SemanticValue dapat diakses dengan tag yang ditentukan dalam semanticResultKey
.
Contoh
Contoh berikut membuat Grammar dari GrammarBuilder objek yang menggunakan SemanticResultKey, yang ditentukan oleh array String objek.
Mesin pengenalan yang menggunakan Grammar yang dibuat akan mengenali frasa "warna nol biru hijau merah". Semantik yang RecognizedPhrase dikembalikan oleh pengenalan akan berisi SemanticValue dengan Value "biru hijau merah". Anda dapat mengakses SemanticValue menggunakan tag "kode".
SemanticResultValue("zero", 5)
Karena ditambahkan ke GrammarBuilder, objek akar SemanticValue dalam RecognizedPhrase akan memiliki nilai 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);
}
Keterangan
Saat melakukan operasi pengenalan, String objek yang digunakan dalam phrases
parameter diperlakukan sebagai berurutan. Misalnya, jika berikut SemanticResultValue ini digunakan untuk membangun Grammar, input ke mesin pengenalan harus berisi kata-kata "rubah coklat cepat" secara berurutan untuk dikenali.
SemanticResultKey stringTest=new SemanticResultKey("stringTest",
new string[] {
"the",
"quick",
"brown",
"fox"});
Argumen semanticResultKey
menentukan kunci yang digunakan untuk mengakses SemanticValue yang mungkin dikembalikan.
Jika Anda membuat Grammar menggunakan GrammarBuilder objek yang berisi kunci semantik dengan array objek string, Value dari yang SemanticValue dihasilkan oleh operasi pengenalan akan menjadi string yang digunakan dalam pengenalan. Dalam contoh sebelumnya, ini berarti itu Value akan menjadi "rubah coklat cepat".