SpeechRecognizer.RequestRecognizerUpdate Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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:
Pengenal tidak memproses input, dan nilai RecognizerAudioPosition properti tetap sama.
Pengenal terus mengumpulkan input, dan nilai AudioPosition properti dapat berubah.
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 .