Bagikan melalui


SpeechRecognitionEngine.RequestRecognizerUpdate Metode

Definisi

Meminta agar pengenal berhenti sejenak untuk memperbarui statusnya.

Overload

RequestRecognizerUpdate(Object, TimeSpan)

Meminta agar recognizer berhenti sejenak untuk memperbarui statusnya dan menyediakan offset dan token pengguna untuk peristiwa terkait.

RequestRecognizerUpdate(Object)

Meminta agar pengenal berhenti sejenak untuk memperbarui statusnya dan menyediakan token pengguna untuk peristiwa terkait.

RequestRecognizerUpdate()

Meminta agar pengenal berhenti sejenak untuk memperbarui statusnya.

Keterangan

Gunakan metode ini untuk menyinkronkan perubahan pada pengenal. Misalnya, jika Anda memuat atau membongkar tata bahasa pengenalan ucapan saat pengenal memproses input, gunakan metode ini dan RecognizerUpdateReached peristiwa untuk menyinkronkan perilaku aplikasi Anda dengan status pengenal.

Ketika metode ini dipanggil, pengenal menjeda atau menyelesaikan operasi asinkron dan menghasilkan RecognizerUpdateReached peristiwa. Penanganan RecognizerUpdateReached aktivitas kemudian dapat memodifikasi status pengenal di antara operasi pengenalan. Saat menangani RecognizerUpdateReached peristiwa, pengenal menjeda hingga penanganan aktivitas kembali.

Catatan

Jika input ke recognizer diubah sebelum pengenal menaikkan RecognizerUpdateReached peristiwa, permintaan akan dibuang.

Ketika metode ini dipanggil:

  • Jika pengenal tidak memproses input, pengenal segera menghasilkan RecognizerUpdateReached peristiwa.

  • Jika pengenal memproses input yang terdiri dari keheningan atau kebisingan latar belakang, pengenal menjeda operasi pengenalan dan menghasilkan RecognizerUpdateReached peristiwa.

  • Jika pengenal memproses input yang tidak terdiri dari keheningan atau kebisingan latar belakang, pengenal menyelesaikan operasi pengenalan dan kemudian menghasilkan RecognizerUpdateReached peristiwa.

Saat recognizer menangani RecognizerUpdateReached peristiwa:

RequestRecognizerUpdate(Object, TimeSpan)

Sumber:
SpeechRecognitionEngine.cs
Sumber:
SpeechRecognitionEngine.cs
Sumber:
SpeechRecognitionEngine.cs

Meminta agar recognizer berhenti sejenak untuk memperbarui statusnya dan menyediakan offset dan token pengguna untuk peristiwa terkait.

public:
 void RequestRecognizerUpdate(System::Object ^ userToken, TimeSpan audioPositionAheadToRaiseUpdate);
public void RequestRecognizerUpdate (object userToken, TimeSpan audioPositionAheadToRaiseUpdate);
member this.RequestRecognizerUpdate : obj * TimeSpan -> unit
Public Sub RequestRecognizerUpdate (userToken As Object, audioPositionAheadToRaiseUpdate As TimeSpan)

Parameter

userToken
Object

Informasi yang ditentukan pengguna yang berisi informasi untuk operasi.

audioPositionAheadToRaiseUpdate
TimeSpan

Offset dari saat ini AudioPosition untuk menunda permintaan.

Keterangan

Recognizer tidak memulai permintaan pembaruan recognizer sampai pengenal RecognizerAudioPosition sama dengan plus audioPositionAheadToRaiseUpdatesaat iniAudioPosition.

Ketika recognizer menghasilkan RecognizerUpdateReached peristiwa, UserToken properti berisi RecognizerUpdateReachedEventArgs nilai userToken parameter .

Lihat juga

Berlaku untuk

RequestRecognizerUpdate(Object)

Sumber:
SpeechRecognitionEngine.cs
Sumber:
SpeechRecognitionEngine.cs
Sumber:
SpeechRecognitionEngine.cs

Meminta agar pengenal berhenti sejenak untuk memperbarui statusnya dan menyediakan token pengguna untuk peristiwa terkait.

public:
 void RequestRecognizerUpdate(System::Object ^ userToken);
public void RequestRecognizerUpdate (object userToken);
member this.RequestRecognizerUpdate : obj -> unit
Public Sub RequestRecognizerUpdate (userToken As Object)

Parameter

userToken
Object

Informasi yang ditentukan pengguna yang berisi informasi untuk operasi.

Keterangan

Ketika recognizer menghasilkan RecognizerUpdateReached peristiwa, UserToken properti berisi RecognizerUpdateReachedEventArgs nilai userToken parameter .

Untuk menentukan offset posisi audio, gunakan RequestRecognizerUpdate metode .

Lihat juga

Berlaku untuk

RequestRecognizerUpdate()

Sumber:
SpeechRecognitionEngine.cs
Sumber:
SpeechRecognitionEngine.cs
Sumber:
SpeechRecognitionEngine.cs

Meminta agar pengenal berhenti sejenak untuk memperbarui statusnya.

public:
 void RequestRecognizerUpdate();
public void RequestRecognizerUpdate ();
member this.RequestRecognizerUpdate : unit -> unit
Public Sub RequestRecognizerUpdate ()

Contoh

Contoh berikut menunjukkan aplikasi konsol yang memuat dan membongkar Grammar objek. Aplikasi ini menggunakan RequestRecognizerUpdate metode untuk meminta mesin pengenalan ucapan dijeda sehingga dapat menerima pembaruan. Aplikasi kemudian memuat atau membongkar Grammar objek.

Pada setiap pembaruan, handler untuk RecognizerUpdateReached peristiwa menulis nama dan status objek yang saat ini dimuat Grammar ke konsol. Saat tata bahasa dimuat dan dibongkar, aplikasi pertama-tama mengenali nama-nama hewan ternak, kemudian nama-nama hewan ternak dan nama-nama buahan, maka hanya nama buah-buahan.

using System;  
using System.Speech.Recognition;  
using System.Collections.Generic;  
using System.Threading;  

namespace SampleRecognition  
{  
  class Program  
  {  
    private static SpeechRecognitionEngine recognizer;  
    public static void Main(string[] args)  
    {  

      // Initialize an in-process speech recognition engine and configure its input.  
      using (recognizer = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US")))  
      {  
        recognizer.SetInputToDefaultAudioDevice();  

        // Create the first grammar - Farm.  
        Choices animals = new Choices(new string[] { "cow", "pig", "goat" });  
        GrammarBuilder farm = new GrammarBuilder(animals);  
        Grammar farmAnimals = new Grammar(farm);  
        farmAnimals.Name = "Farm";  

        // Create the second grammar - Fruit.  
        Choices fruit = new Choices(new string[] { "apples", "peaches", "oranges" });  
        GrammarBuilder favorite = new GrammarBuilder(fruit);  
        Grammar favoriteFruit = new Grammar(favorite);  
        favoriteFruit.Name = "Fruit";  

        // Attach event handlers.  
        recognizer.SpeechRecognized +=  
          new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);  
        recognizer.RecognizerUpdateReached +=  
          new EventHandler<RecognizerUpdateReachedEventArgs>(recognizer_RecognizerUpdateReached);  
        recognizer.SpeechRecognitionRejected +=  
          new EventHandler<SpeechRecognitionRejectedEventArgs>(recognizer_SpeechRecognitionRejected);  

        // Load the Farm grammar.  
        recognizer.LoadGrammar(farmAnimals);  

        // Start asynchronous, continuous recognition.  
        recognizer.RecognizeAsync(RecognizeMode.Multiple);  
        Console.WriteLine("Starting asynchronous, continuous recognition");  
        Console.WriteLine("  Farm grammar is loaded and enabled.");  

        // Pause to recognize farm animals.  
        Thread.Sleep(7000);  
        Console.WriteLine();  

        // Request an update and load the Fruit grammar.  
        recognizer.RequestRecognizerUpdate();  
        recognizer.LoadGrammarAsync(favoriteFruit);  
        Thread.Sleep(7000);  

        // Request an update and unload the Farm grammar.  
        recognizer.RequestRecognizerUpdate();  
        recognizer.UnloadGrammar(farmAnimals);  
        Thread.Sleep(7000);  
      }  

      // Keep the console window open.  
      Console.WriteLine();  
      Console.WriteLine("Press any key to exit...");  
      Console.ReadKey();  
    }  

    // At the update, get the names and enabled status of the currently loaded grammars.  
    public static void recognizer_RecognizerUpdateReached(  
      object sender, RecognizerUpdateReachedEventArgs e)  
    {  
      Console.WriteLine();  
      Console.WriteLine("Update reached:");  
      Thread.Sleep(1000);  

      string qualifier;  
      List<Grammar> grammars = new List<Grammar>(recognizer.Grammars);  
      foreach (Grammar g in grammars)  
      {  
        qualifier = (g.Enabled) ? "enabled" : "disabled";  
        Console.WriteLine("  {0} grammar is loaded and {1}.",  
        g.Name, qualifier);  
      }  
    }  

    // Write the text of the recognized phrase to the console.  
    static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)  
    {  
      Console.WriteLine("    Speech recognized: " + e.Result.Text);  
    }  

    // Write a message to the console when recognition fails.  
    static void recognizer_SpeechRecognitionRejected(object sender, SpeechRecognitionRejectedEventArgs e)  
    {  
      Console.WriteLine("    Recognition attempt failed");  
    }  
  }  
}  

Keterangan

Ketika recognizer menghasilkan RecognizerUpdateReached peristiwa, UserToken properti dari RecognizerUpdateReachedEventArgs adalah null.

Untuk memberikan token pengguna, gunakan RequestRecognizerUpdate metode atau RequestRecognizerUpdate . Untuk menentukan offset posisi audio, gunakan RequestRecognizerUpdate metode .

Lihat juga

Berlaku untuk