SpeechRecognizer.RequestRecognizerUpdate Метод

Определение

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

Перегрузки

RequestRecognizerUpdate(Object, TimeSpan)

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

RequestRecognizerUpdate(Object)

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

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

Комментарии

Используйте этот метод для синхронизации изменений в общем распознавателье. Например, если вы загружаете или выгружают грамматику распознавания речи, когда распознаватель обрабатывает входные данные, используйте этот метод и RecognizerUpdateReached событие для синхронизации поведения приложения с состоянием распознавателя.

При вызове этого метода распознаватель приостанавливает или завершает асинхронные операции и создает RecognizerUpdateReached событие. Затем RecognizerUpdateReached обработчик событий может изменять состояние распознавателя между операциями распознавания.

При вызове этого метода:

  • Если распознаватель не обрабатывает входные данные, распознаватель немедленно создает RecognizerUpdateReached событие .

  • Если распознаватель обрабатывает входные данные, состоящие из тишины или фонового шума, распознаватель приостанавливает операцию распознавания и создает RecognizerUpdateReached событие.

  • Если распознаватель обрабатывает входные данные, не состоящие из тишины или фонового шума, распознаватель завершает операцию распознавания, а затем создает RecognizerUpdateReached событие.

Пока распознаватель обрабатывает событие:RecognizerUpdateReached

  • Распознаватель не обрабатывает входные данные, и значение RecognizerAudioPosition свойства остается неизменным.

  • Распознаватель продолжает собирать входные данные, и значение AudioPosition свойства может измениться.

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

RequestRecognizerUpdate(Object, TimeSpan)

Исходный код:
SpeechRecognizer.cs
Исходный код:
SpeechRecognizer.cs
Исходный код:
SpeechRecognizer.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)

Исходный код:
SpeechRecognizer.cs
Исходный код:
SpeechRecognizer.cs
Исходный код:
SpeechRecognizer.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()

Исходный код:
SpeechRecognizer.cs
Исходный код:
SpeechRecognizer.cs
Исходный код:
SpeechRecognizer.cs

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

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

Комментарии

Когда распознаватель создает RecognizerUpdateReached событие, UserToken свойство RecognizerUpdateReachedEventArgs объекта имеет значение null.

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

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

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