SpeechRecognitionEngine 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供方法來存取和管理處理中的語音辨識引擎。
public ref class SpeechRecognitionEngine : IDisposable
public class SpeechRecognitionEngine : IDisposable
type SpeechRecognitionEngine = class
interface IDisposable
Public Class SpeechRecognitionEngine
Implements IDisposable
- 繼承
-
SpeechRecognitionEngine
- 實作
範例
下列範例顯示的部分主控台應用程式會示範基本的語音辨識。 因為此範例會使用 Multiple
方法的模式 RecognizeAsync ,所以會執行辨識直到您關閉主控台視窗或停止偵錯工具為止。
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);
}
}
}
備註
您可以針對任何已安裝的語音辨識器,建立此類別的實例。 若要取得已安裝哪些辨識器的相關資訊,請使用靜態 InstalledRecognizers 方法。
此類別適用于在進程中執行語音辨識引擎,並可讓您控制各種不同層面的語音辨識,如下所示:
若要建立同進程語音辨識器,請使用其中一個函式 SpeechRecognitionEngine 。
若要管理語音辨識文法,請使用 LoadGrammar 、、 LoadGrammarAsync UnloadGrammar 和 UnloadAllGrammars 方法,以及 Grammars 屬性。
若要設定辨識器的輸入,請使用 SetInputToAudioStream 、、、 SetInputToDefaultAudioDevice SetInputToNull SetInputToWaveFile 或 SetInputToWaveStream 方法。
若要執行語音辨識,請使用 Recognize 或 RecognizeAsync 方法。
若要修改辨識如何處理無回應或非預期的輸入,請使用 BabbleTimeout 、、 InitialSilenceTimeout EndSilenceTimeout 和 EndSilenceTimeoutAmbiguous 屬性。
若要變更辨識器傳回的替代項數目,請使用 MaxAlternates 屬性。 辨識器會在物件中傳回辨識結果 RecognitionResult 。
若要同步處理辨識器的變更,請使用 RequestRecognizerUpdate 方法。 辨識器會使用一個以上的執行緒來執行工作。
若要模擬辨識器的輸入,請使用 EmulateRecognize 和 EmulateRecognizeAsync 方法。
SpeechRecognitionEngine物件是用來唯一使用具現化物件的進程。 相反地,會 SpeechRecognizer 與任何想要使用它的應用程式共用單一辨識器。
注意
在 Dispose 您釋出語音辨識器的最後一個參考之前,請務必先呼叫。 否則,在垃圾收集行程呼叫辨識器物件的方法之前,將不會釋放它所使用的資源 Finalize
。
建構函式
SpeechRecognitionEngine() |
使用系統的預設語音辨識器,初始化 SpeechRecognitionEngine 類別的新執行個體。 |
SpeechRecognitionEngine(CultureInfo) |
使用指定之地區設定的預設語音辨識器,初始化 SpeechRecognitionEngine 類別的新執行個體。 |
SpeechRecognitionEngine(RecognizerInfo) |
使用 SpeechRecognitionEngine 物件中的資訊指定要使用的辨識器,初始化 RecognizerInfo 的新執行個體。 |
SpeechRecognitionEngine(String) |
使用字串參數指定要使用的辨識器名稱,初始化 SpeechRecognitionEngine 類別的新執行個體。 |
屬性
AudioFormat |
取得 SpeechRecognitionEngine 所接收的音訊格式。 |
AudioLevel |
取得 SpeechRecognitionEngine 所接收的音訊層級。 |
AudioPosition |
取得提供 SpeechRecognitionEngine 輸入的裝置正在產生的音訊資料流中目前的位置。 |
AudioState |
取得 SpeechRecognitionEngine 所接收的音訊狀態。 |
BabbleTimeout |
取得或設定完成辨識前 SpeechRecognitionEngine 接受只包含背景雜訊之輸入的時間間隔。 |
EndSilenceTimeout |
取得或設定靜默無聲間隔,SpeechRecognitionEngine 會在意義明確輸入的結尾接受這段間隔的無聲輸入,然後才完成辨識作業。 |
EndSilenceTimeoutAmbiguous |
取得或設定靜默無聲間隔,SpeechRecognitionEngine 會在模稜兩可輸入的結尾接受這段間隔的無聲輸入,然後才完成辨識作業。 |
Grammars |
取得在這個 Grammar 執行個體中載入之 SpeechRecognitionEngine 物件的集合。 |
InitialSilenceTimeout |
取得或設定完成辨識前 SpeechRecognitionEngine 接受只包含靜音之輸入的時間間隔。 |
MaxAlternates |
取得或設定 SpeechRecognitionEngine 為每個辨識作業傳回之替代辨識結果的最大數目。 |
RecognizerAudioPosition |
取得 SpeechRecognitionEngine 正在處理的音訊輸入的目前位置。 |
RecognizerInfo |
取得關於目前 SpeechRecognitionEngine 執行個體的資訊。 |
方法
事件
AudioLevelUpdated |
SpeechRecognitionEngine 報告其音訊輸入層級時引發。 |
AudioSignalProblemOccurred |
在 SpeechRecognitionEngine 偵測到音訊訊號問題時引發。 |
AudioStateChanged |
在 SpeechRecognitionEngine 所接收的音訊變更狀態時引發。 |
EmulateRecognizeCompleted |
SpeechRecognitionEngine 完成模擬輸入的非同步辨識作業時引發。 |
LoadGrammarCompleted |
SpeechRecognitionEngine 完成 Grammar 物件的非同步載入時引發。 |
RecognizeCompleted |
SpeechRecognitionEngine 完成非同步辨識作業時引發。 |
RecognizerUpdateReached |
當執行中的 SpeechRecognitionEngine 暫停以接受修改時引發。 |
SpeechDetected |
當 SpeechRecognitionEngine 偵測到可辨識為語音的輸入時引發。 |
SpeechHypothesized |
在 SpeechRecognitionEngine 已辨識的文字可能是文法中多個完整片語的元件時引發。 |
SpeechRecognitionRejected |
在 SpeechRecognitionEngine 收到的輸入不符合任何其已載入且已啟用 Grammar 物件時引發。 |
SpeechRecognized |
在 SpeechRecognitionEngine 收到的輸入符合任何其已載入且已啟用 Grammar 物件時引發。 |