場景:
我有2個命令。C#SAPI - 識別沒有預定義條件語句的短語
1)搜索谷歌「這裏的任何詞」
2)打開應用程序「是任何詞」
問題:後
由於單詞「搜索谷歌」可以是任何東西,我想怎麼知道我要爲我的IF語句寫什麼?
有了預定的句子,我可以很容易地做到像
void Engine_SpeechRecognized (object sender, SpeechRecognizedEventsArgs e)
{
if (e.Result.Text == "Search Google Stackoverflow")
{
Search("Stackoverflow");
}
}
但是,因爲現在不是預先定義的,什麼是我該 寫我的IF語句的條件? 它不象我能做到這一點,
if (e.Result.Text == "Search Google" + e.Result.Text)
{
Search(e.Result.Text);
}
所以,我應該如何去做到這一點?這很容易,如果我只有一個命令,只需要執行 1操作,那麼我可以將默認操作設置爲Search(),但現在情況不同。
這裏是我的代碼(僅適用於1命令&行動,我需要2個及以上) *使用System.Speech
public MainWindow()
{
InitializeComponent();
builder.Append("search google for"); builder.AppendDictation();
Grammar grammar = new Grammar(builder);
grammar.Name = ("Google Searching");
engine.LoadGrammarAsync(grammar);
engine.SetInputToDefaultAudioDevice();
engine.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(Engine_SpeechRecognized);
engine.RecognizeAsync(RecognizeMode.Multiple);
}
string result;
void Engine_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
txtSpeech.Text = e.Result.Text;
ExtractKeywords(e.Result.Text);
OpenApp("https://www.google.com/#q=" + result);
}