c# - 在 C# 中通过语音进行谷歌搜索

标签 c# speech-recognition google-search

我正在制作自己的 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 有一个查询字符串,您可以使用它直接转到用户输入的搜索字符串。以下面的例子:

https://www.google.com/#q=test+and+such

(感谢 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/

相关文章:

javascript - 如何获取google搜索结果的间接链接

php - 如何在我的网页中允许 Google 请求

c# - 无法使用 Selenium Webdriver 打开 chrome 浏览器。管理员禁止加载解压的扩展

c# - 当您没有对该类库的引用时,在该类库中执行代码

C# MVC/API - 从 Amazon S3 为我的 API 调用返回图像

python-3.x - 运行尝试微调 Wav2Wav 医学词汇模块的单元时出现混合精确 Cuda 错误

google-search - Google 搜索 API 网站限制

c# - 如何使用 Roslyn 从单个 .cs 文件创建解决方案?

java - 免费(最好是开源)语音到文本库的选项

speech-recognition - 谷歌语音 API