RecognizerUpdateReachedEventArgs Класс

Определение

Возвращает данные из события RecognizerUpdateReached или RecognizerUpdateReached.

public ref class RecognizerUpdateReachedEventArgs : EventArgs
public class RecognizerUpdateReachedEventArgs : EventArgs
type RecognizerUpdateReachedEventArgs = class
    inherit EventArgs
Public Class RecognizerUpdateReachedEventArgs
Inherits EventArgs
Наследование
RecognizerUpdateReachedEventArgs

Примеры

В следующем примере показано консольное приложение, которое загружает и выгружает Grammar объекты. Приложение использует метод , RequestRecognizerUpdate чтобы запросить приостановку подсистемы распознавания речи, чтобы получить обновление. Затем приложение загружает или выгружает Grammar объект .

При каждом обновлении обработчик события SpeechRecognitionEngine.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 События предоставляют механизм приостановки механизма распознавания речи для применения атомарных и синхронных изменений, таких как загрузка и выгрузка грамматик.

Если приложение использует SpeechRecognitionEngine экземпляр для управления распознаванием, оно может использовать один из SpeechRecognitionEngine.RequestRecognizerUpdate методов, чтобы запросить приостановку обработчика для получения обновления. Экземпляр SpeechRecognitionEngine вызывает событие, SpeechRecognitionEngine.RecognizerUpdateReached когда он готов к обновлению.

SpeechRecognitionEngine Во время приостановки экземпляра можно загружать, выгружать, включать и отключать Grammar объекты, а также изменять значения свойств BabbleTimeout, InitialSilenceTimeoutи EndSilenceTimeout .

Если приложение использует SpeechRecognizer экземпляр для управления распознаванием, оно может использовать один из SpeechRecognizer.RequestRecognizerUpdate методов, чтобы запросить приостановку обработчика для получения обновления. Экземпляр SpeechRecognizer вызывает событие, SpeechRecognizer.RecognizerUpdateReached когда он готов к обновлению.

SpeechRecognizer Пока экземпляр приостановлен, можно загружать, выгружать, включать и отключать Grammar объекты.

При обработке SpeechRecognitionEngine.RecognizerUpdateReached событий и SpeechRecognizer.RecognizerUpdateReached подсистема распознавания приостанавливается до тех пор, пока не будет возвращен обработчик событий.

Интерфейс RecognizerUpdateReachedEventArgs является производным от интерфейса EventArgs.

Свойства

AudioPosition

Получает положение звука, связанное с событием.

UserToken

Возвращает объект , передаваемый UserToken в систему, когда приложение вызывает RequestRecognizerUpdate или RequestRecognizerUpdate.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

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

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