SpeechRecognizer.EmulateRecognize 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
在同步語音辨識中使用文字而不使用音訊,模擬對共用語音辨識器的輸入。
多載
EmulateRecognize(String) |
在共用的語音辨識器上模擬片語輸入,針對同步的語音辨識使用文字而不使用音訊。 |
EmulateRecognize(RecognizedWordUnit[], CompareOptions) |
在共用的語音辨識器上模擬特定單字輸入,針對同步的語音辨識使用文字而不使用音訊,並指定辨識器如何處理單字間的 Unicode 比較以及已載入的語音辨識文法。 |
EmulateRecognize(String, CompareOptions) |
在共用的語音辨識器上模擬片語輸入,針對同步的語音辨識使用文字而不使用音訊,並指定辨識器如何處理片語間的 Unicode 比較以及已載入的語音辨識文法。 |
備註
這些方法會略過系統音訊輸入。 當您測試或偵錯應用程式或文法時,這會很有説明。
注意
如果 Windows 語音辨識處於 睡眠 狀態,則這些方法會傳回 null
。
共用辨識器會 SpeechDetected 引發 、 SpeechHypothesized 、 SpeechRecognitionRejected 和 SpeechRecognized 事件,就像辨識作業未模擬一樣。 辨識器會忽略新的行和額外的空白字元,並將標點符號視為常值輸入。
注意
RecognitionResult為了回應模擬輸入而由共用辨識器產生的 物件,其 Audio 屬性值為 null
。
若要模擬非同步辨識,請使用 EmulateRecognizeAsync 方法。
EmulateRecognize(String)
在共用的語音辨識器上模擬片語輸入,針對同步的語音辨識使用文字而不使用音訊。
public:
System::Speech::Recognition::RecognitionResult ^ EmulateRecognize(System::String ^ inputText);
public System.Speech.Recognition.RecognitionResult EmulateRecognize (string inputText);
member this.EmulateRecognize : string -> System.Speech.Recognition.RecognitionResult
Public Function EmulateRecognize (inputText As String) As RecognitionResult
參數
- inputText
- String
辨識作業的輸出。
傳回
辨識作業的辨識結果,如果作業不成功或 Windows 語音辨識處於 [睡眠] 狀態則為 null
。
範例
下列範例會將範例文法載入至共用辨識器,並模擬辨識器的輸入。 如果 Windows 語音辨識未執行,則啟動此應用程式也會啟動 Windows 語音辨識。 如果 Windows 語音辨識處於 睡眠 狀態,則 EmulateRecognize 一律會傳回 Null。
using System;
using System.Speech.Recognition;
namespace SharedRecognizer
{
class Program
{
static void Main(string[] args)
{
// Initialize an instance of the shared recognizer.
using (SpeechRecognizer recognizer = new SpeechRecognizer())
{
// Create and load a sample grammar.
Grammar testGrammar =
new Grammar(new GrammarBuilder("testing testing"));
testGrammar.Name = "Test Grammar";
recognizer.LoadGrammar(testGrammar);
RecognitionResult result;
// This EmulateRecognize call matches the grammar and returns a
// recognition result.
result = recognizer.EmulateRecognize("testing testing");
OutputResult(result);
// This EmulateRecognize call does not match the grammar and
// returns null.
result = recognizer.EmulateRecognize("testing one two three");
OutputResult(result);
}
Console.WriteLine();
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
// Output information about a recognition result to the console.
private static void OutputResult(RecognitionResult result)
{
if (result != null)
{
Console.WriteLine("Recognition result = {0}",
result.Text ?? "<no text>");
}
else
{
Console.WriteLine("No recognition result");
}
}
}
}
備註
當將文法規則套用至輸入片語時,隨附于 Vista 和 Windows 7 的辨識器會忽略大小寫和字元寬度。 如需這種比較類型的詳細資訊,請參閱 CompareOptions 列舉值 OrdinalIgnoreCase 和 IgnoreWidth 。 辨識器也會忽略新行和額外的空白字元,並將標點符號視為常值輸入。
另請參閱
- RecognitionResult
- EmulateRecognizeAsync(String)
- SpeechDetected
- SpeechHypothesized
- SpeechRecognitionRejected
- SpeechRecognized
適用於
EmulateRecognize(RecognizedWordUnit[], CompareOptions)
在共用的語音辨識器上模擬特定單字輸入,針對同步的語音辨識使用文字而不使用音訊,並指定辨識器如何處理單字間的 Unicode 比較以及已載入的語音辨識文法。
public:
System::Speech::Recognition::RecognitionResult ^ EmulateRecognize(cli::array <System::Speech::Recognition::RecognizedWordUnit ^> ^ wordUnits, System::Globalization::CompareOptions compareOptions);
public System.Speech.Recognition.RecognitionResult EmulateRecognize (System.Speech.Recognition.RecognizedWordUnit[] wordUnits, System.Globalization.CompareOptions compareOptions);
member this.EmulateRecognize : System.Speech.Recognition.RecognizedWordUnit[] * System.Globalization.CompareOptions -> System.Speech.Recognition.RecognitionResult
Public Function EmulateRecognize (wordUnits As RecognizedWordUnit(), compareOptions As CompareOptions) As RecognitionResult
參數
- wordUnits
- RecognizedWordUnit[]
文字單位陣列,包含辨識作業的輸入。
- compareOptions
- CompareOptions
列舉值的位元組合,描述要用於模擬辨識作業的比較類型。
傳回
辨識作業的辨識結果,如果作業不成功或 Windows 語音辨識處於 [睡眠] 狀態則為 null
。
備註
這個方法會 RecognitionResult 使用 參數中 wordUnits
提供的資訊來建立 物件。
辨識器會在將文法規則套用至輸入片語時使用 compareOptions
。 隨附于 Vista 和 Windows 7 的辨識器會忽略 OrdinalIgnoreCase 或 IgnoreCase 值是否存在的情況。 辨識器一律會忽略字元寬度,且永遠不會忽略假名類型。 辨識器也會忽略新行和額外的空白字元,並將標點符號視為常值輸入。 如需字元寬度和假名類型的詳細資訊,請參閱 CompareOptions 列舉。
另請參閱
- RecognitionResult
- EmulateRecognizeAsync(String)
- SpeechDetected
- SpeechHypothesized
- SpeechRecognitionRejected
- SpeechRecognized
適用於
EmulateRecognize(String, CompareOptions)
在共用的語音辨識器上模擬片語輸入,針對同步的語音辨識使用文字而不使用音訊,並指定辨識器如何處理片語間的 Unicode 比較以及已載入的語音辨識文法。
public:
System::Speech::Recognition::RecognitionResult ^ EmulateRecognize(System::String ^ inputText, System::Globalization::CompareOptions compareOptions);
public System.Speech.Recognition.RecognitionResult EmulateRecognize (string inputText, System.Globalization.CompareOptions compareOptions);
member this.EmulateRecognize : string * System.Globalization.CompareOptions -> System.Speech.Recognition.RecognitionResult
Public Function EmulateRecognize (inputText As String, compareOptions As CompareOptions) As RecognitionResult
參數
- inputText
- String
辨識作業的輸入片語。
- compareOptions
- CompareOptions
列舉值的位元組合,描述要用於模擬辨識作業的比較類型。
傳回
辨識作業的辨識結果,如果作業不成功或 Windows 語音辨識處於 [睡眠] 狀態則為 null
。
備註
辨識器會在將文法規則套用至輸入片語時使用 compareOptions
。 隨附于 Vista 和 Windows 7 的辨識器會忽略 OrdinalIgnoreCase 或 IgnoreCase 值是否存在的情況。 辨識器一律會忽略字元寬度,且永遠不會忽略假名類型。 辨識器也會忽略新行和額外的空白字元,並將標點符號視為常值輸入。 如需字元寬度和假名類型的詳細資訊,請參閱 CompareOptions 列舉。
另請參閱
- RecognitionResult
- EmulateRecognizeAsync(String)
- SpeechDetected
- SpeechHypothesized
- SpeechRecognitionRejected
- SpeechRecognized