如果我給微軟的SpeechRecognitionEngine
a Grammar
,它將只識別該語法中的各個選項而不是選擇的組合。C#獲取SpeechRecognitionEngine以識別語句
是否有任何內置的方式讓它識別組合的選擇,而不是一次單一的選擇,而沒有添加組合的選擇。
----例如,有它承認"Open Firefox"
,而不是"Open"
然後"FIrefox"
下面
namespace SpeachTest
{
public class MainClass
{
static void Main()
{
MainClass main = new MainClass();
SpeechRecognitionEngine sre = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US"));
Choices choiceList = new Choices();
choiceList.Add(new string[]{"Hello", "Open", "Close", "Firefox"});
Grammar grammar = new Grammar(choiceList);
sre.SpeechRecognized += main.sreEvent;
sre.SetInputToDefaultAudioDevice();
sre.LoadGrammar(grammar);
sre.RecognizeAsync(RecognizeMode.Multiple);
while(true){
Console.ReadLine();
}
}
void sreEvent(Object sender, SpeechRecognizedEventArgs e){
Console.WriteLine(e.Result.Text);
}
}
}
我知道DictationGrammar
會做到這一點,但我想避免使用因代碼準確度低的事實。
試着看一下[GrammarBuilder(https://開頭msdn.microsoft.com/en-us/library/ms554240(v=vs.110).aspx) – tyh 2015-02-05 23:03:14
您忽略了顯而易見的解決方案,只需將「打開Firefox」添加到Choices即可。當我嘗試它時,工作得很好,儘管我的荷蘭語是lilt。 – 2015-02-05 23:31:56
@tyh - 我已經看過語法增強類,但沒有發現任何用處。 – JackBarn 2015-02-06 01:18:30