SpeechRecognitionEngine 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供访问和管理进程内语音识别引擎。
public ref class SpeechRecognitionEngine : IDisposable
public class SpeechRecognitionEngine : IDisposable
type SpeechRecognitionEngine = class
interface IDisposable
Public Class SpeechRecognitionEngine
Implements IDisposable
- 继承
-
SpeechRecognitionEngine
- 实现
示例
下面的示例演示了演示基本语音识别的控制台应用程序的一部分。 由于本示例使用 Multiple
方法的模式 RecognizeAsync ,它会执行识别,直到关闭控制台窗口或停止调试。
using System;
using System.Speech.Recognition;
namespace SpeechRecognitionApp
{
class Program
{
static void Main(string[] args)
{
// Create an in-process speech recognizer for the en-US locale.
using (
SpeechRecognitionEngine recognizer =
new SpeechRecognitionEngine(
new System.Globalization.CultureInfo("en-US")))
{
// Create and load a dictation grammar.
recognizer.LoadGrammar(new DictationGrammar());
// Add a handler for the speech recognized event.
recognizer.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
// Configure input to the speech recognizer.
recognizer.SetInputToDefaultAudioDevice();
// Start asynchronous, continuous speech recognition.
recognizer.RecognizeAsync(RecognizeMode.Multiple);
// Keep the console window open.
while (true)
{
Console.ReadLine();
}
}
}
// Handle the SpeechRecognized event.
static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
Console.WriteLine("Recognized text: " + e.Result.Text);
}
}
}
注解
可以为任何已安装的语音识别器创建此类的实例。 若要获取有关已安装的识别器的信息,请使用静态 InstalledRecognizers 方法。
此类用于在进程内运行语音识别引擎,并提供对语音识别各个方面的控制,如下所示:
若要创建进程内语音识别器,请使用其中一个 SpeechRecognitionEngine 构造函数。
若要管理语音识别语法,请使用 LoadGrammar 、 LoadGrammarAsync 、 UnloadGrammar 和 UnloadAllGrammars 方法以及 Grammars 属性。
若要配置到识别器的输入,请使用 SetInputToAudioStream 、 SetInputToDefaultAudioDevice 、 SetInputToNull 、 SetInputToWaveFile 或 SetInputToWaveStream 方法。
若要执行语音识别,请使用 Recognize 或 RecognizeAsync 方法。
若要修改识别如何处理无声或意外输入,请使用 BabbleTimeout 、 InitialSilenceTimeout 、 EndSilenceTimeout 和 EndSilenceTimeoutAmbiguous 属性。
若要更改识别器返回的备用项的数目,请使用 MaxAlternates 属性。 识别器将识别结果返回 RecognitionResult 对象。
若要同步对识别器所做的更改,请使用 RequestRecognizerUpdate 方法。 识别器使用多个线程来执行任务。
若要模拟到识别器的输入,请使用 EmulateRecognize 和 EmulateRecognizeAsync 方法。
SpeechRecognitionEngine对象用于唯一使用实例化对象的进程。 与此相反, SpeechRecognizer 与要使用它的任何应用程序共享单个识别器。
备注
Dispose在释放对语音识别器的最后一个引用之前,始终调用。 否则,在垃圾回收器调用识别器对象的方法之前,不会释放它所使用的资源 Finalize
。
构造函数
SpeechRecognitionEngine() |
使用系统的默认语音识别器来初始化 SpeechRecognitionEngine 类的新实例。 |
SpeechRecognitionEngine(CultureInfo) |
使用指定的区域设置的默认语音识别器来初始化 SpeechRecognitionEngine 类的新实例。 |
SpeechRecognitionEngine(RecognizerInfo) |
用 SpeechRecognitionEngine 对象中的信息初始化 RecognizerInfo 来指定要使用的识别器。 |
SpeechRecognitionEngine(String) |
使用字符串参数初始化 SpeechRecognitionEngine 类的新实例,该参数指定要使用的识别器的名称。 |
属性
AudioFormat |
获取 SpeechRecognitionEngine 接收的音频格式。 |
AudioLevel |
获取 SpeechRecognitionEngine 接收的音频级别. |
AudioPosition |
获取音频流中的当前位置,此音频流由向 SpeechRecognitionEngine 提供输入的设备产生。 |
AudioState |
获取 SpeechRecognitionEngine接收的状态音频. |
BabbleTimeout |
获取或设置时间间隔,在此时间间隔内,SpeechRecognitionEngine 将在终结识别之前接受仅包含背景噪音的输入。 |
EndSilenceTimeout |
获取或设置 SpeechRecognitionEngine 将在终结识别操作之前,于明确输入末尾接受的无声段间隔。 |
EndSilenceTimeoutAmbiguous |
获取或设置 SpeechRecognitionEngine 将在终结识别操作之前,于二义性输入末尾接受的无声段间隔。 |
Grammars |
获取在此 Grammar 实例中加载的 SpeechRecognitionEngine 对象的集合。 |
InitialSilenceTimeout |
获取或设置时间间隔,在此时间间隔内,SpeechRecognitionEngine 将在终结识别之前接受仅包含无声段的输入。 |
MaxAlternates |
获取或设置 SpeechRecognitionEngine 为每个识别操作返回的备用识别结果的最大数量。 |
RecognizerAudioPosition |
获取在处理的音频输入中的 SpeechRecognitionEngine 当前位置。 |
RecognizerInfo |
获取有关 SpeechRecognitionEngine 的当前实例的信息。 |
方法
事件
AudioLevelUpdated |
当 SpeechRecognitionEngine 报告其音频输入的级别的时候引发。 |
AudioSignalProblemOccurred |
当 SpeechRecognitionEngine 检测在音频信号的问题的时候引发。 |
AudioStateChanged |
当状态在 SpeechRecognitionEngine 接收的音频更改的时候引发。 |
EmulateRecognizeCompleted |
当 SpeechRecognitionEngine 完成模拟输入的异步标识操作的时候引发。 |
LoadGrammarCompleted |
当 SpeechRecognitionEngine 完成 Grammar 对象的异步加载时候引发。 |
RecognizeCompleted |
当 SpeechRecognitionEngine 完成异步标识操作的时候引发。 |
RecognizerUpdateReached |
当运行的 SpeechRecognitionEngine 暂停接受修改时引发。 |
SpeechDetected |
当 SpeechRecognitionEngine 检测它可以标识为语音的输入的时候引发。 |
SpeechHypothesized |
当 SpeechRecognitionEngine 识别了可能是一个语法的多个完整的短语的组件的一个或多个单词的时候引发。 |
SpeechRecognitionRejected |
当 SpeechRecognitionEngine 采用不与其加载启用的 Grammar 对象匹配的输入的时候引发。 |
SpeechRecognized |
当 SpeechRecognitionEngine 采用与其加载启用的 Grammar 对象匹配的输入的时候引发。 |