SpeechRecognitionEngine.Recognize 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
启动同步语音识别操作。
重载
Recognize() |
执行同步语音识别操作。 |
Recognize(TimeSpan) |
使用指定初始静音超时执行同步语音识别操作。 |
注解
这些方法执行单个同步识别操作。 识别器对其加载和启用的语音识别语法执行此操作。
在调用此方法期间,识别器可能会引发以下事件:
SpeechDetected. 当识别器检测到它可以标识为语音的输入时引发。
SpeechHypothesized. 当输入使用活动语法之一创建不明确的匹配时引发。
SpeechRecognitionRejected 或 SpeechRecognized。 当识别器完成识别操作时引发。
使用方法之Recognize一时,RecognizeCompleted识别器不会引发 事件。
如果操作不成功或null
未启用识别器,则Recognize方法返回 RecognitionResult 对象。
同步识别操作可能由于以下原因而失败:
在 或 InitialSilenceTimeout 属性或
initialSilenceTimeout
方法的 参数Recognize的超时间隔到期BabbleTimeout之前,不会检测到语音。识别引擎检测语音,但在其任何已加载和启用 Grammar 的对象中都找不到匹配项。
若要修改识别器处理与识别相关的语音或静音计时的方式,请使用 BabbleTimeout、 InitialSilenceTimeout、 EndSilenceTimeout和 EndSilenceTimeoutAmbiguous 属性。
在执行识别之前, SpeechRecognitionEngine 必须至少加载一个 Grammar 对象。 若要加载语音识别语法,请使用 LoadGrammar 或 LoadGrammarAsync 方法。
若要执行异步识别,请使用 方法之 RecognizeAsync 一。
Recognize()
- Source:
- SpeechRecognitionEngine.cs
- Source:
- SpeechRecognitionEngine.cs
执行同步语音识别操作。
public:
System::Speech::Recognition::RecognitionResult ^ Recognize();
public System.Speech.Recognition.RecognitionResult Recognize ();
member this.Recognize : unit -> System.Speech.Recognition.RecognitionResult
Public Function Recognize () As RecognitionResult
返回
输入的标识结果或 null
,如果操作不成功或识别器未启用。
示例
以下示例演示演示基本语音识别的控制台应用程序的一部分。 该示例创建 , DictationGrammar将其加载到进程内语音识别器中,并执行一个识别操作。
using System;
using System.Speech.Recognition;
namespace SynchronousRecognition
{
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());
// Configure input to the speech recognizer.
recognizer.SetInputToDefaultAudioDevice();
// Modify the initial silence time-out value.
recognizer.InitialSilenceTimeout = TimeSpan.FromSeconds(5);
// Start synchronous speech recognition.
RecognitionResult result = recognizer.Recognize();
if (result != null)
{
Console.WriteLine("Recognized text = {0}", result.Text);
}
else
{
Console.WriteLine("No recognition result available.");
}
}
Console.WriteLine();
Console.WriteLine("Press any key to continue...");
Console.ReadKey();
}
}
}
注解
此方法执行单个识别操作。 识别器对其加载和启用的语音识别语法执行此操作。
在调用此方法期间,识别器可能会引发以下事件:
SpeechDetected. 当识别器检测到它可以标识为语音的输入时引发。
SpeechHypothesized. 当输入使用活动语法之一创建不明确的匹配时引发。
SpeechRecognitionRejected 或 SpeechRecognized。 当识别器完成识别操作时引发。
使用此方法时, RecognizeCompleted 识别器不会引发 事件。
方法 Recognize() 返回 对象 RecognitionResult ;如果操作不成功, null
则返回 。
同步识别操作可能由于以下原因而失败:
在 或 InitialSilenceTimeout 属性的超时间隔到期BabbleTimeout之前,不会检测到语音。
识别引擎检测语音,但在其任何已加载和启用 Grammar 的对象中都找不到匹配项。
若要执行异步识别,请使用 方法之 RecognizeAsync 一。
另请参阅
- BabbleTimeout
- InitialSilenceTimeout
- EndSilenceTimeout
- EndSilenceTimeoutAmbiguous
- SpeechDetected
- SpeechHypothesized
- SpeechRecognitionRejected
- SpeechRecognized
- RecognizeAsync()
- EmulateRecognize(String)
适用于
Recognize(TimeSpan)
- Source:
- SpeechRecognitionEngine.cs
- Source:
- SpeechRecognitionEngine.cs
使用指定初始静音超时执行同步语音识别操作。
public:
System::Speech::Recognition::RecognitionResult ^ Recognize(TimeSpan initialSilenceTimeout);
public System.Speech.Recognition.RecognitionResult Recognize (TimeSpan initialSilenceTimeout);
member this.Recognize : TimeSpan -> System.Speech.Recognition.RecognitionResult
Public Function Recognize (initialSilenceTimeout As TimeSpan) As RecognitionResult
参数
- initialSilenceTimeout
- TimeSpan
时间间隔语音识别器接受仅包含在完成标识之前的无声输入。
返回
输入的标识结果或 null
,如果操作不成功或识别器未启用。
示例
以下示例演示演示基本语音识别的控制台应用程序的一部分。 该示例创建 , DictationGrammar将其加载到进程内语音识别器中,并执行一个识别操作。
using System;
using System.Speech.Recognition;
namespace SynchronousRecognition
{
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());
// Configure input to the speech recognizer.
recognizer.SetInputToDefaultAudioDevice();
// Start synchronous speech recognition.
RecognitionResult result = recognizer.Recognize(TimeSpan.FromSeconds(5));
if (result != null)
{
Console.WriteLine("Recognized text = {0}", result.Text);
}
else
{
Console.WriteLine("No recognition result available.");
}
}
Console.WriteLine();
Console.WriteLine("Press any key to continue...");
Console.ReadKey();
}
}
}
注解
如果语音识别引擎在参数指定的 initialSilenceTimeout
时间间隔内检测到语音, Recognize(TimeSpan) 则 执行单个识别操作,然后终止。 参数 initialSilenceTimeout
取代识别器的属性 InitialSilenceTimeout 。
在调用此方法期间,识别器可能会引发以下事件:
SpeechDetected. 当识别器检测到它可以标识为语音的输入时引发。
SpeechHypothesized. 当输入使用活动语法之一创建不明确的匹配时引发。
SpeechRecognitionRejected 或 SpeechRecognized。 当识别器完成识别操作时引发。
使用此方法时, RecognizeCompleted 识别器不会引发 事件。
方法 Recognize() 返回 对象 RecognitionResult ;如果操作不成功, null
则返回 。
同步识别操作可能由于以下原因而失败:
在 或
initialSilenceTimeout
参数的超时间隔到期BabbleTimeout之前,不会检测到语音。识别引擎检测语音,但在其任何已加载和启用 Grammar 的对象中都找不到匹配项。
若要执行异步识别,请使用 方法之 RecognizeAsync 一。
另请参阅
- BabbleTimeout
- InitialSilenceTimeout
- EndSilenceTimeout
- EndSilenceTimeoutAmbiguous
- SpeechDetected
- SpeechHypothesized
- SpeechRecognitionRejected
- SpeechRecognized
- RecognizeAsync()
- EmulateRecognize(String)