gpt4 book ai didi

C# SAPI - 识别没有预定义条件语句的短语

转载 作者:太空宇宙 更新时间:2023-11-03 21:40:21 29 4
gpt4 key购买 nike

场景:

我有 2 个命令。

1) 在谷歌上搜索“这里有任何词”

2) 打开应用程序“这里有任何单词”

问题:

既然“Search Google for”后面的词可以是任何东西,我怎么知道我要为我的 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 个命令并且只需要执行,这很容易1 个操作,然后我可以将默认操作设置为 Search(),但现在情况不同了。

这是我的代码(只有 1 个命令和操作,我需要 2 个及以上)* 使用系统语音

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);
}

最佳答案

对于这类事情,您可以从 RecognizedPhrase.Words 中提取目标短语。属性(property)。由于 result.text 的前 3 个词将是“Search Google for”,result.words[3]..results.words[result.words.count-1] 将有要搜索的短语。

将它们连接在一起就可以了。

要支持多个操作,请使用 Grammar.Name属性来告诉您要运行哪个命令。

void Engine_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
txtSpeech.Text = e.Result.Text;
ExtractKeywords(e.Result.Text);

if (e.Result.Grammar.Name.Equals("Google Search"))
{
OpenApp("www.google.com", result);
}
else if (e.Result.Grammar.Name.Equals("StackOverflow Search"))
{
OpenApp("www.stackoverflow.com", result);
}
// etc...
}

关于C# SAPI - 识别没有预定义条件语句的短语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19618764/

29 4 0
文章推荐: c# - 为什么在这个特定的 WinForms 应用程序中会发生死锁?
文章推荐: html - 将
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com