通过


SpeechRecognitionEngine 构造函数

定义

初始化 SpeechRecognitionEngine 类的新实例。

重载

名称 说明
SpeechRecognitionEngine()

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

SpeechRecognitionEngine(CultureInfo)

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

SpeechRecognitionEngine(RecognizerInfo)

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

SpeechRecognitionEngine(String)

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

注解

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

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

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

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

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

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

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

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

SpeechRecognitionEngine()

Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs

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

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

注解

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

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

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

适用于

SpeechRecognitionEngine(CultureInfo)

Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs

使用指定区域设置的默认语音识别器初始化类的新实例 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 和 System.Speech API 接受所有有效的语言国家/地区代码。 若要使用参数中指定的 CultureInfo 语言执行语音识别,必须安装支持该语言国家/地区的代码的语音识别引擎。 Microsoft Windows 7 附带的语音识别引擎适用于以下语言国家/地区代码。

  • en-GB。 英语(英国)

  • en-US。 英语(美国)

  • de-DE。 德语(德国)

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

  • fr-FR。 法语(法国)

  • ja-JP。 日语(日本)

  • zh-CN。 中文(中国)

  • zh-TW。 中文(台湾)

还允许使用双字母语言代码,如“en”、“fr”或“es”。

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

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

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

适用于

SpeechRecognitionEngine(RecognizerInfo)

Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs

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

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)

Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs

使用指定要使用的识别器名称的字符串参数初始化类的新实例 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

示例

以下示例演示了演示基本语音识别的控制台应用程序的一部分,并创建适用于 Windows 的语音识别器 8.0 实例(英语 - 美国)。

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

注解

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

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

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

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

适用于