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.
Этот класс обеспечивает контроль над различными аспектами процесса распознавания речи:
Для управления грамматиками распознавания речи используйте LoadGrammarLoadGrammarAsync, , UnloadGrammarи UnloadAllGrammarsGrammars.
Чтобы получить сведения о текущих операциях распознавания речи, подпишитесь на SpeechRecognizerсобытия и SpeechRecognizedSpeechHypothesizedSpeechRecognitionRejectedсобытия.SpeechDetected
Чтобы просмотреть или изменить количество альтернативных результатов, возвращаемых распознавательом, используйте MaxAlternates свойство. Распознаватель возвращает результаты распознавания объекта RecognitionResult .
Чтобы получить доступ к состоянию общего распознавателя или отслеживать его состояние, используйте AudioLevelAudioStatePauseRecognizerOnRecognitionAudioPositionRecognizerAudioPositionEnabled,, и свойства, State а также события , и AudioLevelUpdatedAudioSignalProblemOccurredAudioStateChangedStateChanged события.
Чтобы синхронизировать изменения распознавателя, используйте 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, 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. |