Поделиться через


SpeechRecognizer Класс

Определение

Предоставляет доступ к службе распознавания общей речи, доступной на рабочем столе Windows.

public ref class SpeechRecognizer : IDisposable
public class SpeechRecognizer : IDisposable
type SpeechRecognizer = class
    interface IDisposable
Public Class SpeechRecognizer
Implements IDisposable
Наследование
SpeechRecognizer
Реализации

Примеры

Следующий пример является частью консольного приложения, которое загружает грамматику распознавания речи и демонстрирует асинхронные эмулированные входные данные, связанные результаты распознавания и связанные события, вызванные распознавательом речи. Если распознавание речи Windows не запущено, запуск этого приложения также запустит распознавание речи Windows. Если распознавание речи Windows находится в спящем состоянии, EmulateRecognizeAsync всегда возвращает значение NULL.

using System;
using System.Speech.Recognition;
using System.Threading;

namespace SharedRecognizer
{
  class Program
  {

    // Indicate whether the asynchronous emulate recognition
    // operation has completed.
    static bool completed;

    static void Main(string[] args)
    {

      // Initialize an instance of the shared recognizer.
      using (SpeechRecognizer recognizer = new SpeechRecognizer())
      {

        // Create and load a sample grammar.
        Grammar testGrammar =
          new Grammar(new GrammarBuilder("testing testing"));
        testGrammar.Name = "Test Grammar";
        recognizer.LoadGrammar(testGrammar);

        // Attach event handlers for recognition events.
        recognizer.SpeechRecognized +=
          new EventHandler<SpeechRecognizedEventArgs>(
            SpeechRecognizedHandler);
        recognizer.EmulateRecognizeCompleted +=
          new EventHandler<EmulateRecognizeCompletedEventArgs>(
            EmulateRecognizeCompletedHandler);

        completed = false;

        // Start asynchronous emulated recognition.
        // This matches the grammar and generates a SpeechRecognized event.
        recognizer.EmulateRecognizeAsync("testing testing");

        // Wait for the asynchronous operation to complete.
        while (!completed)
        {
          Thread.Sleep(333);
        }

        completed = false;

        // Start asynchronous emulated recognition.
        // This does not match the grammar or generate a SpeechRecognized event.
        recognizer.EmulateRecognizeAsync("testing one two three");

        // Wait for the asynchronous operation to complete.
        while (!completed)
        {
          Thread.Sleep(333);
        }
      }

      Console.WriteLine();
      Console.WriteLine("Press any key to exit...");
      Console.ReadKey();
    }

    // Handle the SpeechRecognized event.
    static void SpeechRecognizedHandler(
      object sender, SpeechRecognizedEventArgs e)
    {
      if (e.Result != null)
      {
        Console.WriteLine("Recognition result = {0}",
          e.Result.Text ?? "<no text>");
      }
      else
      {
        Console.WriteLine("No recognition result");
      }
    }

    // Handle the SpeechRecognizeCompleted event.
    static void EmulateRecognizeCompletedHandler(
      object sender, EmulateRecognizeCompletedEventArgs e)
    {
      if (e.Result == null)
      {
        Console.WriteLine("No result generated.");
      }

      // Indicate the asynchronous operation is complete.
      completed = true;
    }
  }
}

Комментарии

Приложения используют общий распознаватель для доступа к распознаванию речи Windows. SpeechRecognizer Используйте объект для добавления в интерфейс пользователя речи Windows.

Этот класс обеспечивает контроль над различными аспектами процесса распознавания речи:

Настройка распознавания речи Windows управляется с помощью диалогового окна "Свойства речи " на панели управления. Этот интерфейс используется для выбора обработчика распознавания речи и языка по умолчанию, звукового устройства ввода и режима спящего режима распознавания речи. Если конфигурация распознавания речи Windows изменяется во время работы приложения (например, если распознавание речи отключено или язык ввода изменен), изменение влияет на все SpeechRecognizer объекты.

Чтобы создать распознаватель речи в процессе, не зависящий от распознавания речи Windows, используйте SpeechRecognitionEngine класс.

Замечание

Всегда вызывайте Dispose перед выпуском последней ссылки на распознаватель речи. В противном случае используемые ресурсы не будут освобождены, пока сборщик мусора не вызовет метод распознавателя.Finalize

Конструкторы

Имя Описание
SpeechRecognizer()

Инициализирует новый экземпляр класса SpeechRecognizer.

Свойства

Имя Описание
AudioFormat

Получает формат звука, полученного распознавательом речи.

AudioLevel

Возвращает уровень звука, полученного распознавательом речи.

AudioPosition

Возвращает текущее расположение в звуковом потоке, создаваемом устройством, которое предоставляет входные данные распознавателя речи.

AudioState

Возвращает состояние звука, полученного распознавательом речи.

Enabled

Возвращает или задает значение, указывающее, готов ли этот SpeechRecognizer объект к обработке речи.

Grammars

Возвращает коллекцию объектов, загруженных Grammar в этом SpeechRecognizer экземпляре.

MaxAlternates

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

PauseRecognizerOnRecognition

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

RecognizerAudioPosition

Возвращает текущее расположение распознавателя в входных звуках, которые он обрабатывает.

RecognizerInfo

Получает сведения об распознавателье общей речи.

State

Возвращает состояние объекта SpeechRecognizer.

Методы

Имя Описание
Dispose()

SpeechRecognizer Удаляет объект.

Dispose(Boolean)

SpeechRecognizer Удаляет объект и освобождает ресурсы, используемые во время сеанса.

EmulateRecognize(RecognizedWordUnit[], CompareOptions)

Эмулирует входные данные определенных слов в распознаватель общей речи, используя текст вместо звука для синхронного распознавания речи, и указывает, как распознаватель обрабатывает сравнение Юникода между словами и загруженными грамматиками распознавания речи.

EmulateRecognize(String, CompareOptions)

Эмулирует входные данные фразы в распознаватель общей речи, используя текст вместо звука для синхронного распознавания речи, и указывает, как распознаватель обрабатывает сравнение Юникода между фразой и загруженными грамматиками распознавания речи.

EmulateRecognize(String)

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

EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)

Эмулирует входные данные определенных слов в распознаватель общей речи, используя текст вместо звука для асинхронного распознавания речи, и указывает, как распознаватель обрабатывает сравнение Юникода между словами и загруженными грамматиками распознавания речи.

EmulateRecognizeAsync(String, CompareOptions)

Эмулирует входные данные фразы в распознаватель общей речи, используя текст вместо звука для асинхронного распознавания речи, и указывает, как распознаватель обрабатывает сравнение Юникода между фразой и загруженными грамматиками распознавания речи.

EmulateRecognizeAsync(String)

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

Equals(Object)

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

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

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

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

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

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

Загружает грамматику распознавания речи.

LoadGrammarAsync(Grammar)

Асинхронно загружает грамматику распознавания речи.

MemberwiseClone()

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

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

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

RequestRecognizerUpdate(Object, TimeSpan)

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

RequestRecognizerUpdate(Object)

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

ToString()

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

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

Выгружает все грамматики распознавания речи из общего распознавателя.

UnloadGrammar(Grammar)

Выгружает указанную грамматику распознавания речи из общего распознавателя.

События

Имя Описание
AudioLevelUpdated

Происходит, когда общий распознаватель сообщает уровень входного звука.

AudioSignalProblemOccurred

Происходит, когда распознаватель сталкивается с проблемой в звуковом сигнале.

AudioStateChanged

Происходит при изменении состояния звука, полученного распознавательом.

EmulateRecognizeCompleted

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

LoadGrammarCompleted

Происходит, когда распознаватель завершает асинхронную загрузку грамматики распознавания речи.

RecognizerUpdateReached

Происходит, когда распознаватель приостанавливает синхронизацию распознавания и других операций.

SpeechDetected

Происходит, когда распознаватель обнаруживает входные данные, которые он может идентифицировать как речь.

SpeechHypothesized

Происходит, когда распознаватель распознает слово или слова, которые могут быть компонентом нескольких полных фраз в грамматике.

SpeechRecognitionRejected

Происходит, когда распознаватель получает входные данные, которые не соответствуют ни одной из грамматик распознавания речи, загруженных им.

SpeechRecognized

Происходит, когда распознаватель получает входные данные, соответствующие одной из грамматик распознавания речи.

StateChanged

Происходит при изменении состояния запуска подсистемы распознавания речи рабочего стола Windows.

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

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