SemanticResultKey Oluşturucular

Tanım

öğesinin SemanticResultKey bir örneğini oluşturur ve anahtarı dil bilgisi bileşenleriyle ilişkilendirir.

Aşırı Yüklemeler

Name Description
SemanticResultKey(String, GrammarBuilder[])

Konuşma tanıma dil bilgisi oluşturmak için kullanılan bir veya daha fazla GrammarBuilder nesneye semantik anahtar atar.

SemanticResultKey(String, String[])

Konuşma tanıma dil bilgisi oluşturmak için kullanılan bir veya daha fazla String örneğe semantik anahtar atar.

Açıklamalar

oluşturucuları, konuşma tanıma dil bilgisi eklemek için SemanticResultKey bir metin etiketi (semantik anahtar) ve dil bilgisi bileşenleri kümesi belirtir.

Dil bilgisi bileşenleri bir nesne dizisi GrammarBuilder veya örnek dizisi String olarak belirtilebilir.

Dil bilgisi bileşenleri tanımada kullanılıyorsa, semantik anahtar olarak oluşturucusunda SemanticValue sağlanan metin etiketini kullanarak döndürülen SemanticResultKey öğesine erişebilirsiniz. Value Örneğin özelliğiSemanticValue, tanımında SemanticResultKeykullanılan dil bilgisi bileşenleri tarafından belirlenir.

SemanticResultKey(String, GrammarBuilder[])

Kaynak:
SemanticResultKey.cs
Kaynak:
SemanticResultKey.cs
Kaynak:
SemanticResultKey.cs
Kaynak:
SemanticResultKey.cs

Konuşma tanıma dil bilgisi oluşturmak için kullanılan bir veya daha fazla GrammarBuilder nesneye semantik anahtar atar.

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())

Parametreler

semanticResultKey
String

Bağımsız değişken tarafından SemanticValue belirtilen nesnelerle GrammarBuilder ilişkili örneğe erişmek builders için semantik anahtar olarak kullanılacak etiket.

builders
GrammarBuilder[]

içinde tanımlanan SemanticValueetiketle erişilebilen bir nesneyle ilişkilendirilecek dil semanticResultKey bilgisi bileşenleri dizisi.

Örnekler

Aşağıdaki örnek, gerçek girişin joker karakterle eşleştirildiği "Parolam ..." formunun parola girişini tanımak için bir oluşturur Grammar .

Joker karakter, anahtar değeri "Parola" olan bir SpeechRecognizer tarafından etiketlenmiş. İşleyici SpeechRecognized bu etiketin varlığını denetler, parolanın ses girişini alır ve parolayı doğrular.

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);

}

Açıklamalar

Örtük dönüştürmeler nedeniyle bağımsız builders değişkeni , SemanticResultValue, SemanticResultKeyve Choices nesnelerini de desteklerString. Örtük dönüştürmeler hakkında daha fazla bilgi için bkz Implicit. .

Bir tanıma işlemi gerçekleştirirken, GrammarBuilder bağımsız değişkende builders sağlanan nesneler sıralı olarak kabul edilir. Örneğin, aşağıdakiler bir SemanticResultValueoluşturmak için kullanılırsaGrammar, tanıma altyapısına girişte tanınması için sırayla "hızlı kahverengi tilki" sözcükleri bulunmalıdır.

SemanticResultKey stringTest=new SemanticResultKey(
    "stringTest", new GrammarBuilder[] {
    new GrammarBuilder("the"),
    new GrammarBuilder("quick"),
    new GrammarBuilder("brown"),
    new GrammarBuilder("fox")});

semanticResultKey bağımsız değişkeni, döndürülebilecek öğesine erişmek SemanticValue için kullanılan etiketi içerir.

öğesinin ValueSemanticValue parametresi tarafından GrammarBuilder sağlanan örnekler tarafından builders belirlenir.

Nesneler öğesinin GrammarBuilder tanımlayıcı örnekleri SemanticResultValueiçermiyorsa değerinin SemanticValue değeri olur null.

parametresinde GrammarBuilder sağlanan nesneler, tanıma mantığı tarafından kullanılan etiketsiz (nesneyle ilişkilendirilmemiş) builders bir SemanticResultKey örnek sağlıyorsa, bu örneği SemanticResultValue oluşturulan öğesinin SemanticResultValue özelliğini tanımlarValue.SemanticValue

parametresi tarafından SemanticResultValue belirtilen nesnelerde GrammarBuilder bir ve yalnızca bir etiketsiz builders örnek olmalıdır. ile birden çok etiketsiz SemanticResultValue örnek ilişkilendirildiyse SemanticResultKey, her biri tanıma sonucunda üretilen değerini SemanticValue ayarlamayı dener. Buna izin verilmez ve bu tür bir örnek kullanılarak oluşturulan bir Grammar kullanmayı denediğinde tanıyıcı bir SemanticResultKey özel durum oluşturur.

SemanticResultValue parametresi tarafından belirtilen ve zaten başka biriyle GrammarBuilder ilişkilendirilmiş nesnelerde builders bulunan örneklerinin SemanticResultKey geçerli SemanticResultKey örnek üzerinde hiçbir etkisi yoktur.

Şunlara uygulanır

SemanticResultKey(String, String[])

Kaynak:
SemanticResultKey.cs
Kaynak:
SemanticResultKey.cs
Kaynak:
SemanticResultKey.cs
Kaynak:
SemanticResultKey.cs

Konuşma tanıma dil bilgisi oluşturmak için kullanılan bir veya daha fazla String örneğe semantik anahtar atar.

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())

Parametreler

semanticResultKey
String

Kullanılacak etiket, bağımsız değişken tarafından belirtilen nesnelerle ilişkilendirilmiş örneğe erişin SemanticValueString.phrases

phrases
String[]

Birleştirilmiş metni içinde tanımlanan Stringetiketle erişilebilir bir nesneyle ilişkilendirilecek olan bir SemanticValue veya daha fazla semanticResultKey nesne.

Örnekler

Aşağıdaki örnek, Grammar bir GrammarBuilder nesne dizisi tarafından tanımlanan kullanan bir SemanticResultKeynesneden String bir oluşturur.

Oluşturulan öğesini Grammar kullanan bir tanıma altyapısı "renk kırmızı yeşil mavi sıfır" tümceciğini tanır. Tanıma tarafından döndürülen semantiği RecognizedPhrase ,"kırmızı yeşil mavi" içeren bir SemanticValueValue içerir. "code" etiketini kullanarak öğesine erişebilirsiniz SemanticValue .

SemanticResultValue("zero", 5) öğesine eklendiği için GrammarBuilderiçindeki SemanticValue kök RecognizedPhrase nesnenin değeri 5 olur.

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);
}

Açıklamalar

Bir tanıma işlemi gerçekleştirirken parametresinde Stringphrases kullanılan nesneler sıralı olarak kabul edilir. Örneğin, aşağıdakiler bir SemanticResultValueoluşturmak için kullanılırsaGrammar, tanıma altyapısına girişte tanınması için sırayla "hızlı kahverengi tilki" sözcükleri bulunmalıdır.

SemanticResultKey stringTest=new SemanticResultKey("stringTest",
                                new string[] {
                                               "the",
                                               "quick",
                                               "brown",
                                               "fox"});

semanticResultKey bağımsız değişkeni, döndürülebilecek öğesine erişmek SemanticValue için kullanılan anahtarı belirler.

Dize nesneleri dizisine sahip bir semantik anahtar içeren bir nesne kullanarak oluşturursanızGrammar, GrammarBuilder bir tanıma işlemi tarafından üretilen öğesinin Value değeri tanımada SemanticValue kullanılan dize olur. Yukarıdaki örnekte, bunun Value "hızlı kahverengi tilki" olacağı anlamına gelir.

Şunlara uygulanır