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 是不因文化特性而異 (Invariant 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 的語音辨識引擎會使用下列語言的國家/地區代碼。

  • en-GB。 英文 (英國)

  • en-us。 英文 (美國)

  • 取消刪除。 德文 (德國)

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

  • fr-FR。 法文 (法國)

  • ja-jp。 日文 (日本)

  • zh-CN。 簡體中文

  • zh-幼圓。 中文 (台灣)

也允許兩個字母的語言代碼(例如 "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

範例

下列範例顯示的部分主控台應用程式會示範基本的語音辨識,並建立適用于 Windows (英文-US) 的語音辨識器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);  
    }  
  }  
}  

備註

辨識器的 token 名稱是辨識 Id 器屬性所傳回之物件的屬性值 RecognizerInfo RecognizerInfo 。 若要取得所有已安裝之辨識器的集合,請使用靜態 InstalledRecognizers 方法。

在語音辨識器可以開始辨識之前,您必須先載入至少一個語音辨識文法,並設定辨識器的輸入。

若要載入文法,請呼叫 LoadGrammarLoadGrammarAsync 方法。

若要設定音訊輸入,請使用下列其中一種方法:

適用於