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

Запрашивает, чтобы распознаватель приостановил обновление состояния и предоставил смещение и токен пользователя для связанного события.

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

Запрашивает, чтобы распознаватель приостановил обновление состояния и предоставил токен пользователя для связанного события.

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

Запрашивает, чтобы распознаватель приостановил обновления состояния.

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 объекта имеет значение null.

Чтобы предоставить маркер пользователя, используйте RequestRecognizerUpdate метод или RequestRecognizerUpdate . Чтобы указать смещение положения звука, используйте RequestRecognizerUpdate метод .

См. также раздел

Применяется к