我无法通过语音识别来执行搜索

时间:2015-05-25 17:23:14

标签: c# speech-recognition

我一直试图获取我的代码,以便当我告诉它进行搜索时,它会询问我想要搜索的内容,然后将其添加到Google搜索网址的末尾,以便搜索它

所以它会是https://www.google.co.uk/search?q= 加上我所说的,以便搜索正确的东西

namespace AID
{


    public partial class Form1 : Form
    {

        SpeechSynthesizer s = new SpeechSynthesizer();
        SpeechRecognitionEngine reg = new SpeechRecognitionEngine();



        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string test = "12345".ToString().Replace("123", "");
            s.Speak("booting up");
            s.Speak("AID online");
            s.Speak("Hello sir, how may i assist you?");
            string[] commands = { "hello AID", "what are you", "how are you", "what's the time", "open music", "sing me a song", "thank you AID", "what does AID mean", "Tell me a joke", "i need to take notes", "i want to search the web" 
            ,"i want to check my mail","run lol","the yogscast","calabrate voice","where are you","tell me the truth","aid wakeup","aid exit"};
            reg.SetInputToDefaultAudioDevice();
            reg.LoadGrammar(new Grammar(new GrammarBuilder(new Choices(commands))));
            reg.RecognizeAsync(RecognizeMode.Multiple);
            reg.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(rec);

        }

        public string time()
        {
            DateTime n = DateTime.Now;
            string o = n.GetDateTimeFormats('t')[0];
            return o;
        }

        public void rec(object sender, SpeechRecognizedEventArgs x)
        {

            string recString = x.Result.Text;
            switch(recString)
            {
                case "hello AID":
                    s.Speak("Hello sir");
                    break;
                case "how are you":
                    s.Speak("I'm good, how are you?");
                    break;
                case "what's the time":
                    s.Speak(time());
                    break;
                case "open music":
                    s.Speak("on it sir");
                    System.Diagnostics.Process.Start("wmplayer.exe");
                    break;
                case "sing me a song":
                    s.Speak("im a little tea pot short and stout here is my handle here is my spout if you poor me over hear me shout tip me up and poor me out");
                    break;
                case "thank you AID":
                    s.Speak("you are very welcome sir ");
                    break;
                case "what are you":
                    s.Speak("I am AID");
                    break;
                case "what does AID mean":
                    s.Speak("Aid means assistance and intelligent device");
                    break;
                case "Tell me a joke":
                    s.Speak("I like my relationships like I like my source, open");
                    break;
                case "i need to take notes":
                    s.Speak("opening notepad now sir");
                    System.Diagnostics.Process.Start("notepad.exe");
                    break;
                case "i want to search the web":
                    s.Speak("opening the web now sir");
                    System.Diagnostics.Process.Start("chrome.exe");
                    break;
                case "i want to check my mail":
                    s.Speak("opening your inbox now sir");
                    System.Diagnostics.Process.Start("https://mail.google.com/mail/u/0/#inbox");
                    break;
                case "run lol":
                    s.Speak("opening league of legends now sir");                  
                    System.Diagnostics.Process.Start(@"C:\Riot Games\League of Legends\lol.launcher.exe");
                    break;
                case "the yogscast":
                    s.Speak("opening the yogscast youtube channel now sir");
                    System.Diagnostics.Process.Start("https://www.youtube.com/user/BlueXephos");
                    break;
                case "calabrate voice":
                    s.Speak("voice calabration complete");
                    break;
                case "where are you":
                    s.Speak("Im here");
                    break;
                case "tell me the truth":
                    s.Speak("the truth is all but lies ");
                    break;
                case "aid wakeup":
                    s.Speak("Awake and awaiting further instruction sir");
                    break;



            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您可以使用:

QTimer

这将打开Internet Explorer

或者

remote: This repository moved. Please use the new location [new location]

打开默认资源管理器。

编辑: 要在C#中将字符串编码为查询字符串格式,您可以通过以下方式执行此操作:

System.Diagnostics.Process.Start("IExplore.exe", "https://www.google.co.uk/search?q=" + /*Your question text, querystring encoded variable*/);

所以基本上你必须:

System.Diagnostics.Process.Start("https://www.google.co.uk/search?q=" + /*Your question text, querystring encoded variable*/);