Share via


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

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

適用於