コード例 #1
0
ファイル: Form1.cs プロジェクト: Jarlysson/JarvisCS
        // Método do evento do reconhecimento
        private void reconhecido(object s, SpeechRecognizedEventArgs e) // passamos a classe EventArgs SpeechRecognized
        {
            string speech     = e.Result.Text;                          // criamos uma variável que contêm a palavra ou frase reconhecida
            double confidence = e.Result.Confidence;                    // criamos uma variável para a confiança

            if (confidence > 0.4)                                       // pegar o resultado da confiança, se for maior que 35% faz algo
            {
                label1.Text = "Reconhecido:\n" + speech;                // mostrar o que foi reconhecido


                switch (e.Result.Grammar.Name)            // vamos usar o nome da gramática para executar as ações
                {
                case "Chats":                             // caso for uma conversa
                    Conversation.SaySomethingFor(speech); // vamos usar a classe que faz algo sobre
                    break;

                case "Dumme":
                    if (DummeIn.InStartingConversation.Any(x => x == speech))
                    {
                        int randIndex = rnd.Next(0, DummeOut.OutStartingConversation.Count);
                        Speaker.Speak(DummeOut.OutStartingConversation[randIndex]);
                    }
                    else if (DummeIn.InQuestionForDumme.Any(x => x == speech))
                    {
                        int randIndex = rnd.Next(0, DummeOut.OutQuestionForDumme.Count);
                        Speaker.Speak(DummeOut.OutQuestionForDumme[randIndex]);
                    }
                    else if (DummeIn.InDoWork.Any(x => x == speech))
                    {
                        int randIndex = rnd.Next(0, DummeOut.OutDoWork.Count);
                        Speaker.Speak(DummeOut.OutDoWork[randIndex]);
                    }
                    else if (DummeIn.InDummeStatus.Any(x => x == speech))
                    {
                        int randIndex = rnd.Next(0, DummeOut.OutDummeStatus.Count);
                        Speaker.Speak(DummeOut.OutDummeStatus[randIndex]);
                    }
                    else if (DummeIn.InJarvis.Any(x => x == speech))
                    {
                        int randIndex = rnd.Next(0, DummeOut.OutJarvis.Count);
                        Speaker.Speak(DummeOut.OutJarvis[randIndex]);
                    }
                    break;

                case "Commands":
                    switch (speech)
                    {
                    case "quais são as notícias":
                        newsFromG1 = G1FeedNews.GetNews();
                        Speaker.Speak("Já carreguei as notícias");
                        break;

                    case "próxima notícia":
                        Speaker.Speak("Título da notícia.. " + newsFromG1[newsIndex].Title
                                      + " .. " + newsFromG1[newsIndex].Text);
                        newsIndex++;
                        break;
                    }
                    if (speech == "até mais jarvis")
                    {
                        ExitNow();     // chama oo método
                    }
                    else if (speech == "minimizar a janela principal")
                    {
                        MinimizeWindow();     // minimizar
                    }
                    else if (speech == "mostrar janela principal")
                    {
                        BackWindowToNormal();     // mostrar janela principal
                    }
                    else
                    {
                        Commands.Execute(speech);
                    }
                    break;

                case "Jokes":
                    break;

                case "Calculations":
                    Calculations.DoCalculation(speech);
                    break;

                case "Process":
                    ProcessControl.OpenOrClose(speech);
                    break;

                case "Sites":     // caso sites
                    string[] replaces = { "abrir", "iniciar", "carregar", "ir para o" };
                    string   site     = "";
                    for (int i = 0; i < replaces.Length; i++)
                    {
                        if (speech.StartsWith(replaces[i]))     // verifica se string começa com um destes, se sim remove ele.
                        {
                            site = speech.Replace(replaces[i], "");
                        }
                    }
                    site = site.Trim();
                    foreach (KeyValuePair <string, string> entry in dictCmdSites)
                    {
                        if (entry.Key == site)
                        {
                            Speaker.SpeakOpenningProcess(site);
                            Process.Start(entry.Value);
                        }
                    }
                    break;

                case "Control":
                    motionDetection = new MotionDetection();
                    motionDetection.Show();
                    break;

                case "Search":
                    string[] parts = speech.Split(' ');
                    string   text  = "";
                    for (int k = 0; k < parts.Length; k++)
                    {
                        if (System.Text.RegularExpressions.Regex.IsMatch(parts[k], "[A-Z]"))
                        {
                            text += parts[k] + " ";
                        }
                    }
                    if (speech.ToLower().EndsWith("youtube"))
                    {
                        if (speech.Contains(" "))
                        {
                            speech = speech.Replace(" ", "+");
                        }
                        Speaker.SpeakRand("certo pesquisando " + text + " no youtube", "tudo bem", "okei, buscando por " + text);
                        loadPage();
                        webLoader.Start("https://www.youtube.com/results?search_query=" + text);
                    }
                    else if (speech.ToLower().EndsWith("google"))
                    {
                        if (speech.Contains(" "))
                        {
                            speech = speech.Replace(" ", "+");
                        }
                        Speaker.SpeakRand("certo pesquisando " + text + " no google", "tudo bem", "okei, buscando por " + text,
                                          "okei, buscando por " + text + " no google");
                        loadPage();
                        webLoader.Start("http://images.google.com/images?q=" + text + "&start=900&filter=1");
                    }
                    break;

                case "QA":
                    foreach (var t in commandsForQA)
                    {
                        if (speech.StartsWith(t))
                        {
                            speech = speech.Replace(t, "");
                        }
                    }
                    Speaker.Speak(AIML.GetOutputChat(speech));
                    break;

                default:                                       // caso padrão
                    Speaker.Speak(AIML.GetOutputChat(speech)); // pegar resposta
                    break;
                }
            }
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: Jarlysson/JarvisCS
        // evento das teclas
        private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            Keys k = (Keys)e.KeyChar;

            if (k == Keys.Escape)
            {
                ExitNow(); // cham o método
            }
            else if (e.KeyChar == 'h' || e.KeyChar == 'H')
            {
                JARVISHelp.Introduction(); // introdução
            }
            else if (e.KeyChar == 's' || e.KeyChar == 'S')
            {
                Speaker.StopSpeak(); // parar de falar
            }
            else if (k == Keys.Up)
            {
                Speaker.VolumeUp();
            }
            else if (k == Keys.Down)
            {
                Speaker.VolumeDown();
            }
            else if (e.KeyChar == 'p' || e.KeyChar == 'P')
            {
                Speaker.ResumeOrPause(); // pausa ou resume
            }
            else if (e.KeyChar == 'i' || e.KeyChar == 'I')
            {
                SystemInfo.GetUserName();
                SystemInfo.GetMachineName();
                SystemInfo.GetOSVersion();
                SystemInfo.OSArch();
            }
            else if (e.KeyChar == 't' || e.KeyChar == 'T')
            {
                if (processList == null)
                {
                    processList = new ProcessList();
                    processList.Show();
                    processList.ShowProcesses();
                }
                else
                {
                    processList.ShowProcesses();
                }
            }
            else if (e.KeyChar == 'a' || e.KeyChar == 'A')
            {
                if (appsDialog == null)
                {
                    appsDialog = new AppsDialog();
                    appsDialog.Show();
                }
                else
                {
                    appsDialog.Show();
                }
            }
            else if (k == Keys.D5)
            {
                ChangeSkin();
            }
            else if (k == Keys.D6)
            {
                ChangeBackColor();
            }
            else if (k == Keys.D4)
            {
                if (selectVoice == null) // e for null
                {
                    selectVoice = new SelectVoice();
                    selectVoice.ShowDialog(); // diálogo
                    selectVoice.Close();      // já foi mostrado, então vamos fechar
                    selectVoice = null;       // deixando nulo
                }
            }
            else if (k == Keys.D1)
            {
                MinimizeWindow();
            }
            else if (k == Keys.D2)
            {
                BackWindowToNormal();
            }
            else if (e.KeyChar == 'm' || e.KeyChar == 'M')
            {
                motionDetection         = new MotionDetection();
                motionDetection.Visible = false;
                motionDetection.Show();
            }
            else if (e.KeyChar == 'f' || e.KeyChar == 'F')
            {
                personId = new PersonIdentifier();
                personId.Show();
                personId.StartRecognition();
            }
        }
コード例 #3
0
ファイル: Form1.cs プロジェクト: luismsrodrigues/jarvisw
        // Método do evento do reconhecimento
        private void reconhecido(object s, SpeechRecognizedEventArgs e) // passamos a classe EventArgs SpeechRecognized
        {
            string speech     = e.Result.Text;                          // criamos uma variável que contêm a palavra ou frase reconhecida
            double confidence = e.Result.Confidence;                    // criamos uma variável para a confiança

            if (confidence > 0.4)                                       // pegar o resultado da confiança, se for maior que 35% faz algo
            {
                label1.Text = "Reconhecido:\n" + speech;                // mostrar o que foi reconhecido


                switch (e.Result.Grammar.Name)            // vamos usar o nome da gramática para executar as ações
                {
                case "Chats":                             // caso for uma conversa
                    Conversation.SaySomethingFor(speech); // vamos usar a classe que faz algo sobre
                    break;

                case "Dumme":
                    if (DummeIn.InStartingConversation.Any(x => x == speech))
                    {
                        int randIndex = rnd.Next(0, DummeOut.OutStartingConversation.Count);
                        Speaker.Speak(DummeOut.OutStartingConversation[randIndex]);
                    }
                    else if (DummeIn.InQuestionForDumme.Any(x => x == speech))
                    {
                        int randIndex = rnd.Next(0, DummeOut.OutQuestionForDumme.Count);
                        Speaker.Speak(DummeOut.OutQuestionForDumme[randIndex]);
                    }
                    else if (DummeIn.InDoWork.Any(x => x == speech))
                    {
                        int randIndex = rnd.Next(0, DummeOut.OutDoWork.Count);
                        Speaker.Speak(DummeOut.OutDoWork[randIndex]);
                    }
                    else if (DummeIn.InDummeStatus.Any(x => x == speech))
                    {
                        int randIndex = rnd.Next(0, DummeOut.OutDummeStatus.Count);
                        Speaker.Speak(DummeOut.OutDummeStatus[randIndex]);
                    }
                    else if (DummeIn.InJarvis.Any(x => x == speech))
                    {
                        int randIndex = rnd.Next(0, DummeOut.OutJarvis.Count);
                        Speaker.Speak(DummeOut.OutJarvis[randIndex]);
                    }
                    break;

                case "Commands":
                    switch (speech)
                    {
                    case "quais são as notícias":
                        newsFromG1 = G1FeedNews.GetNews();
                        Speaker.Speak("Já carreguei as notícias");
                        break;

                    case "próxima notícia":
                        Speaker.Speak("Título da notícia.. " + newsFromG1[newsIndex].Title
                                      + " .. " + newsFromG1[newsIndex].Text);
                        newsIndex++;
                        break;
                    }
                    if (speech == "até mais jarvis")
                    {
                        ExitNow();     // chama oo método
                    }
                    else if (speech == "minimizar a janela principal")
                    {
                        MinimizeWindow();     // minimizar
                    }
                    else if (speech == "mostrar janela principal")
                    {
                        BackWindowToNormal();     // mostrar janela principal
                    }
                    else
                    {
                        Commands.Execute(speech);
                    }
                    break;

                case "Jokes":
                    break;

                case "Calculations":
                    Calculations.DoCalculation(speech);
                    break;

                case "Process":
                    ProcessControl.OpenOrClose(speech);
                    break;

                case "Control":
                    motionDetection = new MotionDetection();
                    motionDetection.Show();
                    break;

                default:                                       // caso padrão
                    Speaker.Speak(AIML.GetOutputChat(speech)); // pegar resposta
                    break;
                }
            }
        }