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

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 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
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 semanticResultKeyetiketle 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 "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 , 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, aşağıdakiler bir Grammaroluşturmak için kullanılırsaSemanticResultValue, 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 builders sağlanan nesneler, tanıma mantığı tarafından kullanılan etiketsiz (nesneyle ilişkilendirilmemiş) SemanticResultValue bir SemanticResultKey örnek sağlıyorsa, bu örneği SemanticResultValue oluşturulan öğ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. 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 SemanticResultKey ilişkilendirilmiş nesnelerde GrammarBuilder bulunan örneklerinin builders 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 SemanticValuephrases.String

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 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 RecognizedPhrase kök SemanticValue 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 Grammaroluşturmak için kullanılırsaSemanticResultValue, 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, Value bir tanıma işlemi tarafından üretilen öğesinin SemanticValue değeri tanımada GrammarBuilder kullanılan dize olur. Yukarıdaki örnekte, bunun Value "hızlı kahverengi tilki" olacağı anlamına gelir.

Şunlara uygulanır