Bagikan melalui


SpeechRecognizer.RequestRecognizerUpdate Metode

Definisi

Meminta agar pengenal bersama menjeda dan memperbarui statusnya.

Overload

RequestRecognizerUpdate(Object, TimeSpan)

Meminta agar pengenal bersama menjeda dan memperbarui statusnya dan menyediakan offset dan token pengguna untuk peristiwa terkait.

RequestRecognizerUpdate(Object)

Meminta agar pengenal bersama menjeda dan memperbarui statusnya dan menyediakan token pengguna untuk peristiwa terkait.

RequestRecognizerUpdate()

Meminta agar pengenal bersama menjeda dan memperbarui statusnya.

Contoh

Contoh berikut menunjukkan aplikasi konsol yang memuat dan membongkar Grammar objek. Aplikasi 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. Ketika tata bahasa dimuat dan dibongkar, aplikasi pertama-tama mengenali nama hewan ternak, kemudian nama-nama hewan ternak dan nama buah-buahan, kemudian hanya nama buah-buahan.

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

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

      // Initialize an in-process speech recognition engine and configure its input.  
      recognizer = new SpeechRecognizer();  

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

      // Check to see if recognizer is loaded, wait if it is not loaded.  
      if (recognizer.State != RecognizerState.Listening)  
      {  
        Thread.Sleep(5000);  

        // Put recognizer in listening state.  
        recognizer.EmulateRecognizeAsync("Start listening");  
      }  

      // Load the Farm grammar.  
      recognizer.LoadGrammar(farmAnimals);  
      Console.WriteLine("Grammar Farm is loaded");  

      // 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(5000);  

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

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

    public static void recognizer_RecognizerUpdateReached(object sender, RecognizerUpdateReachedEventArgs e)  
    {  
      // At the update, get the names and enabled status of the currently loaded grammars.  
      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("  Grammar {0} is loaded and is {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);  
    }  
  }  
}  

Keterangan

Gunakan metode ini untuk menyinkronkan perubahan pada pengenal bersama. 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.

Ketika metode ini dipanggil:

  • Jika recognizer tidak memproses input, recognizer 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:

Untuk mengubah apakah pengenal bersama menjeda operasi pengenalan saat aplikasi menangani SpeechRecognized peristiwa, gunakan PauseRecognizerOnRecognition properti .

RequestRecognizerUpdate(Object, TimeSpan)

Sumber:
SpeechRecognizer.cs
Sumber:
SpeechRecognizer.cs
Sumber:
SpeechRecognizer.cs

Meminta agar pengenal bersama menjeda dan 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 recognizer RecognizerAudioPosition sama dengan saat ini AudioPosition ditambah nilai audioPositionAheadToRaiseUpdate parameter .

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

Lihat juga

Berlaku untuk

RequestRecognizerUpdate(Object)

Sumber:
SpeechRecognizer.cs
Sumber:
SpeechRecognizer.cs
Sumber:
SpeechRecognizer.cs

Meminta agar pengenal bersama menjeda dan 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 dari RecognizerUpdateReachedEventArgs berisi nilai userToken parameter .

Untuk menentukan offset posisi audio, gunakan RequestRecognizerUpdate metode .

Lihat juga

Berlaku untuk

RequestRecognizerUpdate()

Sumber:
SpeechRecognizer.cs
Sumber:
SpeechRecognizer.cs
Sumber:
SpeechRecognizer.cs

Meminta agar pengenal bersama menjeda dan memperbarui statusnya.

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

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