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.
Этот класс обеспечивает контроль над различными аспектами процесса распознавания речи:
Для управления грамматиками распознавания речи используйте LoadGrammar, LoadGrammarAsync, UnloadGrammar, UnloadAllGrammarsи Grammars.
Чтобы получить сведения о текущих операциях распознавания речи, подпишитесь на SpeechRecognizerSpeechDetectedсобытия , SpeechHypothesized, SpeechRecognitionRejectedи SpeechRecognized .
Чтобы просмотреть или изменить число альтернативных результатов, возвращаемых распознавателями, используйте MaxAlternates свойство . Распознаватель возвращает результаты распознавания в объекте RecognitionResult .
Чтобы получить доступ к состоянию общего распознавателя или отслеживать его, используйте AudioLevelсвойства , AudioStateAudioPosition, Enabled, PauseRecognizerOnRecognition, , RecognizerAudioPositionи State и AudioLevelUpdatedсобытия , AudioSignalProblemOccurred, AudioStateChangedи StateChanged .
Чтобы синхронизировать изменения в распознавателье, используйте RequestRecognizerUpdate метод . Общий распознаватель использует несколько потоков для выполнения задач.
Чтобы эмулировать входные данные для общего распознавателя, используйте методы EmulateRecognize и EmulateRecognizeAsync .
Настройка распознавания речи 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) |
Эмулирует ввод фразы в общий распознаватель речи, используя текст вместо аудио для синхронного распознавания речи. |
EmulateRecognize(String, CompareOptions) |
Эмулирует ввод фразы в общий распознаватель речи, используя текст вместо аудио для синхронного распознавания речи, и указывает способ обработки распознавателем сравнения Юникода между фразой и загруженными грамматиками распознавания речи. |
EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions) |
Эмулирует ввод конкретных слов в общий распознаватель речи, используя текст вместо аудио для асинхронного распознавания речи, и указывает способ обработки распознавателем сравнения Юникода между словами и загруженными грамматиками распознавания речи. |
EmulateRecognizeAsync(String) |
Эмулирует ввод фразы в общий распознаватель речи, используя текст вместо аудио для асинхронного распознавания речи. |
EmulateRecognizeAsync(String, CompareOptions) |
Эмулирует ввод фразы в общий распознаватель речи, используя текст вместо аудио для асинхронного распознавания речи, и указывает способ обработки распознавателем сравнения Юникода между фразой и загруженными грамматиками распознавания речи. |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
LoadGrammar(Grammar) |
Загружает грамматику распознавания речи. |
LoadGrammarAsync(Grammar) |
Выполняет асинхронную загрузку грамматики распознавания речи. |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
RequestRecognizerUpdate() |
Запрашивает, чтобы общий распознаватель приостановился и обновил свое состояние. |
RequestRecognizerUpdate(Object) |
Запрашивает, чтобы общий распознаватель приостановился и обновил состояние и предоставил токен пользователя для связанного события. |
RequestRecognizerUpdate(Object, TimeSpan) |
Запрашивает, чтобы общий распознаватель приостановился и обновил свое состояния и предоставил смещение и токен пользователя для связанного события. |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
UnloadAllGrammars() |
Выгружает все грамматики распознавания речи из общего распознавателя. |
UnloadGrammar(Grammar) |
Выгружает указанную грамматику распознавания речи из общего распознавателя. |
События
AudioLevelUpdated |
Происходит, когда общий распознаватель сообщает об уровне аудиовхода. |
AudioSignalProblemOccurred |
Происходит, если средство распознавания обнаруживает проблему аудиосигнала. |
AudioStateChanged |
Происходит при изменении состояния аудио, получаемого распознавателем. |
EmulateRecognizeCompleted |
Происходит, когда общий распознаватель завершает асинхронную операцию распознавания для эмулированного ввода. |
LoadGrammarCompleted |
Происходит при завершении асинхронной загрузки грамматики распознавания речи средством распознавания. |
RecognizerUpdateReached |
Происходит при приостановке работы распознавателя с целью синхронизировать распознавание и другие операции. |
SpeechDetected |
Происходит, когда средство распознавания обнаруживает ввод, который может быть идентифицирован как речь. |
SpeechHypothesized |
Происходит, когда распознаватель распознал слово или слова, которые могут входить в состав нескольких полных фраз в грамматике. |
SpeechRecognitionRejected |
Происходит, когда распознаватель получает входные данные, не соответствующие ни одной из загруженных грамматик распознавания речи. |
SpeechRecognized |
Происходит, когда распознаватель получает входные данные, соответствующие одной из загруженных грамматик распознавания речи. |
StateChanged |
Происходит при изменении рабочего состояния механизма распознавания технологии Windows Desktop Speech. |