コード例 #1
0
ファイル: Reconhecer.cs プロジェクト: TrYPPF/SIAAN
        public static Reconhecer getInstance()
        {
            lock (objlock)
            {
                if (Inss == null)
                {
                    Inss = new Reconhecer();

                }
                return Inss;
            }
        }
コード例 #2
0
ファイル: Acoes.cs プロジェクト: TrYPPF/SIAAN
        private void falar_botao_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                reconhecedor = new Reconhecer();

                parar_botao.IsEnabled = true;

                falar_botao.IsEnabled = false;
                SpeechRecognitionEngine engine = reconhecedor.engine;

                engine.RecognizeCompleted += engine_RecognizeCompleted;

                engine.SpeechRecognized += engine_SpeechRecognized;

                try
                {
                    string linha ;
                    StreamReader falas = new StreamReader(Environment.CurrentDirectory + @"\Falas.txt");
                    List<string> ressu = new List<string>();
                    while((linha=falas.ReadLine())!=null){
                       //if(Regex.IsMatch(linha, @"^[a-zA-Z\s]+$")){
            ressu.Add(linha);
                       //}

                    }
                    /*if (!ressu.Any())
                    {
                        MessageBox.Show("Por favor, só é permitido no arquivo de falas letras, números e espaços", "Erro!", MessageBoxButton.OK, MessageBoxImage.Error);
                    }*/
                    falas.Close();
                    if (ressu.Any())
                    {
                        reconhecedor.escolhas = ressu.ToArray();
                        reconhecedor.gramatica = new GrammarBuilder();

                        reconhecedor.Recognize(RecognizeMode.Multiple);

                    }
                    else
                    {
                        MessageBox.Show("Não há nada neste arquivo.", "Erro!", MessageBoxButton.OK, MessageBoxImage.Error);

                    }

                    //Regex.IsMatch(input, @"^[a-zA-Z]+$");
                }
                catch (InvalidOperationException ee)
                {

                    MessageBox.Show("Um erro ocorreu: \n\n" + ee.Message, "Erro!", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                catch (FileNotFoundException ee)
                {
                    MessageBox.Show("Um erro ocorreu: \n\n" + ee.Message, "Erro!", MessageBoxButton.OK, MessageBoxImage.Error);
                }

                //reconhecedor.escolhas = new string[] {"fale sobre o sistema operacional","cite os planetas do sistema solar","feche o visual studio","gin defina a equivalência massa-energia","ajuda aqui", "desligar a máquina","gin feche o programa","fala teste","ajuda aqui","gin informe o clima" ,"positivo","sim","não","negativo","falas presentes"};

            }
            catch (InvalidOperationException ee)
            {
                switch (ee.Message)
                {

                    case "Cannot find the requested data item, such as a data key or value.":
                        MessageBox.Show("Um erro ocorreu, talvez você não tenha um dispositivo de gravação conectado. \n\n"+ee.Message,"Erro!",MessageBoxButton.OK,MessageBoxImage.Error);
                        parar_botao.IsEnabled = false;
                falar_botao.IsEnabled = true;
                        break;
                    default:
                        MessageBox.Show("Um erro ocorreu: \n\n" + ee.Message, "Erro!", MessageBoxButton.OK, MessageBoxImage.Error);
                        break;

                }

            }
            catch (Exception eee)
            {
                MessageBox.Show("Um erro ocorreu: \n\n" + eee.Message, "Erro...", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }