Aracılığıyla paylaş


SemanticResultKey Oluşturucular

Tanım

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

Aşırı Yüklemeler

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 bir örnek dizisi String olarak belirtilebilir.

Tanımada dil bilgisi bileşenleri kullanılıyorsa, bir anlam anahtarı olarak oluşturucusunda SemanticResultKey sağlanan metin etiketini kullanarak döndürülen SemanticValue öğ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

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 builders belirtilen nesnelerle GrammarBuilder ilişkili örneğe erişmek SemanticValue için semantik anahtar olarak kullanılacak etiket.

builders
GrammarBuilder[]

içinde tanımlanan semanticResultKeyetiketiyle erişilebilen bir nesneyle ilişkilendirilecek dil SemanticValue 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 "Password" 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 , SemanticResultKey, Choicesve String nesnelerini de desteklerSemanticResultValue. Ö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, bir Grammaroluşturmak için aşağıdakiler SemanticResultValue kullanılıyorsa, tanıma altyapısına giriş tanınması için sırayla "hızlı kahverengi tilki" sözcüklerini içermelidir.

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 Value parametresi SemanticValue tarafından GrammarBuilder sağlanan örnekler tarafından builders belirlenir.

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

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

parametresi tarafından builders belirtilen nesnelerde GrammarBuilder bir ve yalnızca bir etiketsiz SemanticResultValue örnek olmalıdır. etiketlenmemiş SemanticResultValue birden çok örneği ile SemanticResultKeyilişkilendirildiyse, her biri tanıma sonucunda üretilen değerini SemanticValue ayarlamayı dener. Buna izin verilmez ve tanıyıcı, böyle bir örnek kullanılarak oluşturulan bir öğeyi kullanmaya çalıştığında bir GrammarSemanticResultKey özel durum oluşturur.

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

Şunlara uygulanır

SemanticResultKey(String, String[])

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 String ilişkili örneğe erişer.phrasesSemanticValue

phrases
String[]

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

Örnekler

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

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

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

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, String parametresinde phrases kullanılan nesneler sıralı olarak kabul edilir. Örneğin, bir Grammaroluşturmak için aşağıdakiler SemanticResultValue kullanılıyorsa, tanıma altyapısına giriş tanınması için sırayla "hızlı kahverengi tilki" sözcüklerini içermelidir.

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

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

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

Şunlara uygulanır