我正在制作自己的 jarvis 程序,当我说“搜索”+ 我想要的东西时 打开谷歌并搜索“某物”。这是我的代码...(我没有全部粘贴)
private void Form1_Load(object sender, EventArgs e)
{
_recognizer.SetInputToDefaultAudioDevice();
_recognizer.LoadGrammar(new Grammar(new GrammarBuilder(new Choices(File.ReadAllLines(@"C:\Users\Cpyros\Desktop\lefteris\Commands.txt")))));
_recognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(_recognizer_SpeechRecognized);
_recognizer.RecognizeAsync(RecognizeMode.Multiple);
}
void _recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
int ranNum = rnd.Next(1, 10);
string speech = e.Result.Text;
switch (speech)
{
//GREETINGS
case "hello":
case "hello jarvis":
if (ranNum < 6) { JARVIS.Speak("Hello sir"); }
else if (ranNum > 5) { JARVIS.Speak("Hi"); }
break;
case "goodbye":
case "goodbye jarvis":
case "close":
case "close jarvis":
JARVIS.Speak("Until next time");
Close();
break;
case "jarvis":
if (ranNum < 5) { QEvent = ""; JARVIS.Speak("Yes sir"); }
else if (ranNum > 4) { QEvent = ""; JARVIS.Speak("Yes?"); }
break;
//WEBSITES
case "open facebook":
System.Diagnostics.Process.Start("http://www.facebook.com");
break;
case "open google":
Process.Start("https://www.google.gr/?gws_rd=cr");
JARVIS.Speak("Okay sir");
System.Windows.Forms.SendKeys.SendWait("^%.");
break;
here i want to add a case like "search for" + the thing i want to search...
有什么想法吗?
最佳答案
Google 有一个查询字符串,您可以使用它直接转到用户输入的搜索字符串。以下面的例子:
(感谢 Matt R,我了解到还有 https://www.google.com/search?q=test+and+such
)
然后您可以使用对之前的 Google 案例陈述的修改:
default:
if (speech.Contains("search for")
{
Process.Start("https://www.google.com/#q=" + userInput);
...
您必须先确保 userInput
是 URL 编码的
string userInput = System.Web.HttpUtility.UrlEncode(input);
关于c# - 在 C# 中通过语音进行谷歌搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18511875/