public static Reconhecer getInstance() { lock (objlock) { if (Inss == null) { Inss = new Reconhecer(); } return Inss; } }
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); } }