SpeechRecognitionEngine.RequestRecognizerUpdate Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Запрашивает, чтобы распознаватель приостанавливал обновление состояния.
Перегрузки
| Имя | Описание |
|---|---|
| RequestRecognizerUpdate(Object, TimeSpan) |
Запрашивает, что распознаватель приостанавливает обновление состояния и предоставляет смещение и маркер пользователя для связанного события. |
| RequestRecognizerUpdate(Object) |
Запрашивает, что распознаватель приостанавливает обновление состояния и предоставляет маркер пользователя для связанного события. |
| RequestRecognizerUpdate() |
Запрашивает, чтобы распознаватель приостанавливал обновление состояния. |
Комментарии
Используйте этот метод для синхронизации изменений распознавателя. Например, если вы загружаете или выгрузите грамматику распознавания речи во время обработки входных данных распознавателя, используйте этот метод и RecognizerUpdateReached событие для синхронизации поведения приложения с состоянием распознавателя.
При вызове этого метода распознаватель приостанавливает или завершает асинхронные операции и создает RecognizerUpdateReached событие. Затем RecognizerUpdateReached обработчик событий может изменить состояние распознавателя между операциями распознавания. При обработке RecognizerUpdateReached событий распознаватель приостанавливается до тех пор, пока обработчик событий не возвращается.
Замечание
Если входные данные распознавателя изменяются до того, как распознаватель вызывает RecognizerUpdateReached событие, запрос удаляется.
При вызове этого метода:
Если распознаватель не обрабатывает входные данные, распознаватель немедленно создает RecognizerUpdateReached событие.
Если распознаватель обрабатывает входные данные, состоящие из молчания или фонового шума, распознаватель приостанавливает RecognizerUpdateReached операцию распознавания и создает событие.
Если распознаватель обрабатывает входные данные, не состоящие из молчания или фонового шума, распознаватель завершает операцию распознавания, а затем создает RecognizerUpdateReached событие.
Хотя распознаватель обрабатывает RecognizerUpdateReached событие:
Распознаватель не обрабатывает входные данные, а значение RecognizerAudioPosition свойства остается неизменным.
Распознаватель продолжает собирать входные данные, и значение AudioPosition свойства может измениться.
RequestRecognizerUpdate(Object, TimeSpan)
- Исходный код:
- SpeechRecognitionEngine.cs
- Исходный код:
- SpeechRecognitionEngine.cs
- Исходный код:
- SpeechRecognitionEngine.cs
- Исходный код:
- SpeechRecognitionEngine.cs
Запрашивает, что распознаватель приостанавливает обновление состояния и предоставляет смещение и маркер пользователя для связанного события.
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)
Параметры
- userToken
- Object
Определяемые пользователем сведения, содержащие сведения для операции.
- audioPositionAheadToRaiseUpdate
- TimeSpan
Смещение от текущего AudioPosition , чтобы отложить запрос.
Комментарии
Распознаватель не инициирует запрос на обновление распознавателя, пока распознаватель RecognizerAudioPosition не равен текущему AudioPosition плюсу audioPositionAheadToRaiseUpdate.
Когда распознаватель создает RecognizerUpdateReached событие, UserToken свойство RecognizerUpdateReachedEventArgs содержит значение userToken параметра.
См. также раздел
Применяется к
RequestRecognizerUpdate(Object)
- Исходный код:
- SpeechRecognitionEngine.cs
- Исходный код:
- SpeechRecognitionEngine.cs
- Исходный код:
- SpeechRecognitionEngine.cs
- Исходный код:
- SpeechRecognitionEngine.cs
Запрашивает, что распознаватель приостанавливает обновление состояния и предоставляет маркер пользователя для связанного события.
public:
void RequestRecognizerUpdate(System::Object ^ userToken);
public void RequestRecognizerUpdate(object userToken);
member this.RequestRecognizerUpdate : obj -> unit
Public Sub RequestRecognizerUpdate (userToken As Object)
Параметры
- userToken
- Object
Определяемые пользователем сведения, содержащие сведения для операции.
Комментарии
Когда распознаватель создает RecognizerUpdateReached событие, UserToken свойство RecognizerUpdateReachedEventArgs содержит значение userToken параметра.
Чтобы указать смещение положения звука, используйте RequestRecognizerUpdate этот метод.
См. также раздел
Применяется к
RequestRecognizerUpdate()
- Исходный код:
- SpeechRecognitionEngine.cs
- Исходный код:
- SpeechRecognitionEngine.cs
- Исходный код:
- SpeechRecognitionEngine.cs
- Исходный код:
- SpeechRecognitionEngine.cs
Запрашивает, чтобы распознаватель приостанавливал обновление состояния.
public:
void RequestRecognizerUpdate();
public void RequestRecognizerUpdate();
member this.RequestRecognizerUpdate : unit -> unit
Public Sub RequestRecognizerUpdate ()
Примеры
В следующем примере показан консольное приложение, которое загружает и выгружает Grammar объекты. Приложение использует RequestRecognizerUpdate метод для запроса обработчика распознавания речи для приостановки, чтобы он смог получить обновление. Затем приложение загружает или выгружает Grammar объект.
При каждом обновлении обработчик события RecognizerUpdateReached записывает имя и состояние загруженных Grammar в данный момент объектов в консоль. Как грамматики загружаются и выгружаются, приложение сначала распознает имена сельскохозяйственных животных, а затем имена сельскохозяйственных животных и имена фруктов, а затем только имена фруктов.
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");
}
}
}
Комментарии
Когда распознаватель создает RecognizerUpdateReached событие, UserToken свойство RecognizerUpdateReachedEventArgs is null.
Чтобы предоставить маркер пользователя, используйте RequestRecognizerUpdate или RequestRecognizerUpdate метод. Чтобы указать смещение положения звука, используйте RequestRecognizerUpdate этот метод.