SpeechRecognitionEngine 构造函数

定义

初始化 SpeechRecognitionEngine 类的新实例。

重载

SpeechRecognitionEngine()

使用系统的默认语音识别器来初始化 SpeechRecognitionEngine 类的新实例。

SpeechRecognitionEngine(CultureInfo)

使用指定的区域设置的默认语音识别器来初始化 SpeechRecognitionEngine 类的新实例。

SpeechRecognitionEngine(RecognizerInfo)

SpeechRecognitionEngine 对象中的信息初始化 RecognizerInfo 来指定要使用的识别器。

SpeechRecognitionEngine(String)

使用字符串参数初始化 SpeechRecognitionEngine 类的新实例,该参数指定要使用的识别器的名称。

注解

你可以 SpeechRecognitionEngine 从以下任意项构造实例:

  • 系统的默认语音识别引擎

  • 按名称指定的特定语音识别引擎

  • 指定的区域设置的默认语音识别引擎

  • 满足您在对象中指定的条件的特定识别引擎 RecognizerInfo

在语音识别器开始识别之前,必须至少加载一个语音识别语法,并为识别器配置输入。

若要加载语法,请调用 LoadGrammarLoadGrammarAsync 方法。

若要配置音频输入,请使用以下方法之一:

SpeechRecognitionEngine()

使用系统的默认语音识别器来初始化 SpeechRecognitionEngine 类的新实例。

public:
 SpeechRecognitionEngine();
public SpeechRecognitionEngine ();
Public Sub New ()

注解

在语音识别器开始语音识别之前,必须至少加载一个识别语法,并为识别器配置输入。

若要加载语法,请调用 LoadGrammarLoadGrammarAsync 方法。

若要配置音频输入,请使用以下方法之一:

适用于

SpeechRecognitionEngine(CultureInfo)

使用指定的区域设置的默认语音识别器来初始化 SpeechRecognitionEngine 类的新实例。

public:
 SpeechRecognitionEngine(System::Globalization::CultureInfo ^ culture);
public SpeechRecognitionEngine (System.Globalization.CultureInfo culture);
new System.Speech.Recognition.SpeechRecognitionEngine : System.Globalization.CultureInfo -> System.Speech.Recognition.SpeechRecognitionEngine
Public Sub New (culture As CultureInfo)

参数

culture
CultureInfo

语音识别器必须支持的区域设置。

例外

未安装的语音识别器都不支持区域设置,或者 culture 为固定区域性。

Culturenull

示例

下面的示例演示了演示基本语音识别的控制台应用程序的一部分,并为 en-us 区域设置初始化了语音识别器。

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);  
    }  
  }  
}  

注解

Microsoft Windows 和 Speech API 接受所有有效的语言-国家/地区代码。 若要使用参数中指定的语言执行语音识别 CultureInfo ,则必须安装支持该语言-国家/地区代码的语音识别引擎。 Microsoft Windows 7 随附的语音识别引擎使用以下语言-国家/地区代码。

  • 半 GB。 英语(英国)

  • en-us。 英语(美国)

  • 取消。 德语(德国)

  • es。 西班牙语(西班牙)

  • fr-fr。 法语(法国)

  • ja-jp。 日语(日本)

  • zh-chs-CN。 中文(中国)

  • zh-chs-幼圆。 中文(台湾)

还允许使用两个字母的语言代码,例如 "en"、"fr" 或 "es"。

在语音识别器开始识别之前,必须至少加载一个语音识别语法,并为识别器配置输入。

若要加载语法,请调用 LoadGrammarLoadGrammarAsync 方法。

若要配置音频输入,请使用以下方法之一:

适用于

SpeechRecognitionEngine(RecognizerInfo)

SpeechRecognitionEngine 对象中的信息初始化 RecognizerInfo 来指定要使用的识别器。

public:
 SpeechRecognitionEngine(System::Speech::Recognition::RecognizerInfo ^ recognizerInfo);
public SpeechRecognitionEngine (System.Speech.Recognition.RecognizerInfo recognizerInfo);
new System.Speech.Recognition.SpeechRecognitionEngine : System.Speech.Recognition.RecognizerInfo -> System.Speech.Recognition.SpeechRecognitionEngine
Public Sub New (recognizerInfo As RecognizerInfo)

参数

recognizerInfo
RecognizerInfo

特定语音识别器的信息。

示例

下面的示例演示了演示基本语音识别的控制台应用程序的一部分,并初始化了支持英语的语音识别器。

 using System;  
using System.Speech.Recognition;  

namespace SpeechRecognitionApp  
{  
  class Program  
  {  
    static void Main(string[] args)  
    {  

      // Select a speech recognizer that supports English.  
      RecognizerInfo info = null;  
      foreach (RecognizerInfo ri in SpeechRecognitionEngine.InstalledRecognizers())  
      {  
        if (ri.Culture.TwoLetterISOLanguageName.Equals("en"))  
        {  
          info = ri;  
          break;  
        }  
      }  
      if (info == null) return;  

      // Create the selected recognizer.  
      using (SpeechRecognitionEngine recognizer =  
        new SpeechRecognitionEngine(info))  
      {  

        // 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 方法。

在语音识别器开始识别之前,必须至少加载一个语音识别语法,并为识别器配置输入。

若要加载语法,请调用 LoadGrammarLoadGrammarAsync 方法。

若要配置音频输入,请使用以下方法之一:

适用于

SpeechRecognitionEngine(String)

使用字符串参数初始化 SpeechRecognitionEngine 类的新实例,该参数指定要使用的识别器的名称。

public:
 SpeechRecognitionEngine(System::String ^ recognizerId);
public SpeechRecognitionEngine (string recognizerId);
new System.Speech.Recognition.SpeechRecognitionEngine : string -> System.Speech.Recognition.SpeechRecognitionEngine
Public Sub New (recognizerId As String)

参数

recognizerId
String

使用一个识别器的标记名称。

例外

没有带有此标记名称的语音识别器未安装,或者 recognizerId 是空字符串 ("")。

recognizerIdnull

示例

下面的示例演示了演示基本语音识别的控制台应用程序的一部分,并创建了语音识别 8.0 for Windows (英语-US) 的实例。

using System;  
using System.Speech.Recognition;  

namespace SpeechRecognitionApp  
{  
  class Program  
  {  
    static void Main(string[] args)  
    {  

      // Create an instance of the Microsoft Speech Recognizer 8.0 for  
      // Windows (English - US).  
      using (SpeechRecognitionEngine recognizer =  
        new SpeechRecognitionEngine("MS-1033-80-DESK"))  
      {  

        // Create and load a dictation grammar.  
        recognizer.LoadGrammar(new DictationGrammar());  

        // Add a handler for the speech recognized event.  
        recognizer.SpeechRecognized += new EventHandler(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);  
    }  
  }  
}  

注解

识别器的标记名称是 Id RecognizerInfo 由识别器的属性返回的对象的属性值 RecognizerInfo 。 若要获取所有已安装的识别器的集合,请使用静态 InstalledRecognizers 方法。

在语音识别器开始识别之前,必须至少加载一个语音识别语法,并为识别器配置输入。

若要加载语法,请调用 LoadGrammarLoadGrammarAsync 方法。

若要配置音频输入,请使用以下方法之一:

适用于