private void Testare_Click(object sender, EventArgs e) { string user = SelectedUser_Label.Text; if (user == "Nimeni") { return; } rs = new ReteaNeuronala(12, 1, nrNeuroni, 1); string path = $"{Path.GetDirectoryName(Application.ExecutablePath)}\\Weights\\{user}.txt"; bool a = File.Exists(path); if (File.Exists(path)) { rs.ImportXML(user); } else { rs.ExportXML(user); } Inputs = new List <List <double> >(); Target = new List <List <double> >(); path = $"{Path.GetDirectoryName(Application.ExecutablePath)}\\TestSet\\{SelectedUser_Label.Text}.txt"; FileStream f = new FileStream(path, FileMode.Open, FileAccess.Read); List <List <double> > ob = (List <List <double> >)xss.Deserialize(f); for (int i = 0; i < ob.Count; i++) { List <double> aux = new List <double>(ob[i]); aux.RemoveAt(aux.Count - 1); Inputs.Add(new List <double>(aux)); aux = new List <double>(ob[i]); aux.RemoveRange(0, 12); Target.Add(new List <double>(aux)); } List <double> Rez = new List <double>(); List <double> Targ = new List <double>(); for (int j = 0; j < Inputs.Count(); j++) { rs.ForWordPropagation(Inputs[j], Target[j]); List <double> tg_aux = new List <double>(Target[j]); List <double> rz_aux = new List <double>(rs.Return_Result()); Rez.Add(rz_aux[0]); Targ.Add(tg_aux[0]); } Testare_label.Text = Eroarre(Rez, Targ).ToString() + "%"; f.Close(); f.Dispose(); }
private void Learning_Click(object sender, EventArgs e) { if (Worker.IsBusy) { return; } string user = SelectedUser_Label.Text; if (user == "Nimeni") { return; } rs = new ReteaNeuronala(12, 1, nrNeuroni, 1); string path = $"{Path.GetDirectoryName(Application.ExecutablePath)}\\Weights\\{user}.txt"; bool a = File.Exists(path); if (File.Exists(path)) { rs.ImportXML(user); } else { rs.ExportXML(user); } Inputs = new List <List <double> >(); Target = new List <List <double> >(); path = $"{Path.GetDirectoryName(Application.ExecutablePath)}\\TrainSet\\{user}.txt"; FileStream f = new FileStream(path, FileMode.Open, FileAccess.Read); List <List <double> > ob = (List <List <double> >)xss.Deserialize(f); for (int i = 0; i < ob.Count; i++) { List <double> aux = new List <double>(ob[i]); aux.RemoveAt(aux.Count - 1); Inputs.Add(new List <double>(aux)); aux = new List <double>(ob[i]); aux.RemoveRange(0, 12); Target.Add(new List <double>(aux)); } if (!Worker.IsBusy) { chart3.Series.RemoveAt(0); chart3.Series.Add("Eroare"); chart3.Series["Eroare"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.FastLine; Worker.RunWorkerAsync(); } }
private void Identificare_Click(object sender, EventArgs e) { listBox2.Items.Clear(); string p = $"{Path.GetDirectoryName(Application.ExecutablePath)}\\TestSample\\ Identificare.wav"; VerificareForm form = new VerificareForm(p, DeviceNumber); List <NAudio.Wave.WaveInCapabilities> sourse = new List <NAudio.Wave.WaveInCapabilities>(); for (int i = 0; i < NAudio.Wave.WaveIn.DeviceCount; i++) { sourse.Add(NAudio.Wave.WaveIn.GetCapabilities(i)); } if (!(sourse.Count >= DeviceNumber - 1)) { DeviceNumber = sourse.Count() - 1; } form.ShowDialog(); if (!File.Exists(p)) { MessageBox.Show("Eroare, inregistrarea nu a fost efectuata cu succes"); return; } List <List <double> > aux = new List <List <double> >(DoMFCC(p)); re = new List <double>(); st = new List <string>(); foreach (string item in Directory.GetFiles("Users")) { FileInfo f = new FileInfo(item); rs = new ReteaNeuronala(12, 1, nrNeuroni, 1); if (!File.Exists($"{Path.GetDirectoryName(Application.ExecutablePath)}\\Weights\\{f.Name}.txt")) { rs.ExportXML(f.Name); } rs.ImportXML(f.Name); List <List <double> > Rezultate = new List <List <double> >(); for (int i = 0; i < aux.Count; i++) { List <double> target = new List <double>(); target.Add(1); List <double> Inputs = new List <double>(aux[i]); Rezultate.Add(rs.ForWordPropagation(Inputs, target)); } List <double> rez = new List <double>(); List <double> targ = new List <double>(); for (int i = 0; i < Rezultate.Count; i++) { List <double> au = new List <double>(Rezultate[i]); double value = au[0]; rez.Add(value); targ.Add(1); } double eroare = Eroarre(rez, targ); if (Verificare_Label.Text == "NaN%") { MessageBox.Show("Inregistrare esuata"); return; } else { re.Add(eroare); st.Add(f.Name); } } Sort(); for (int i = 0; i < st.Count; i++) { listBox2.Items.Add(st[i] + $"-> {re[i]}%"); } }
private void Verificare_Click(object sender, EventArgs e) { if (SelectedUser_Label.Text == "Nimeni") { MessageBox.Show("Selecteaza un utilizator"); return; } List <NAudio.Wave.WaveInCapabilities> sourse = new List <NAudio.Wave.WaveInCapabilities>(); for (int i = 0; i < NAudio.Wave.WaveIn.DeviceCount; i++) { sourse.Add(NAudio.Wave.WaveIn.GetCapabilities(i)); } if (!(sourse.Count >= DeviceNumber - 1)) { DeviceNumber = sourse.Count() - 1; } string p = $"{Path.GetDirectoryName(Application.ExecutablePath)}\\TestSample\\ {SelectedUser_Label.Text}.wav"; VerificareForm form = new VerificareForm(p, DeviceNumber); form.ShowDialog(); if (!File.Exists(p)) { MessageBox.Show("Eroare, inregistrarea nu a fost efectuata cu succes"); return; } List <List <double> > aux = new List <List <double> >(DoMFCC(p)); rs = new ReteaNeuronala(12, 1, nrNeuroni, 1); rs.ImportXML(SelectedUser_Label.Text); List <List <double> > Rezultate = new List <List <double> >(); for (int i = 0; i < aux.Count; i++) { List <double> target = new List <double>(); target.Add(1); List <double> Inputs = new List <double>(aux[i]); Rezultate.Add(rs.ForWordPropagation(Inputs, target)); } List <double> rez = new List <double>(); List <double> targ = new List <double>(); for (int i = 0; i < Rezultate.Count; i++) { List <double> au = new List <double>(Rezultate[i]); double value = au[0]; rez.Add(value); targ.Add(1); } double eroare = Eroarre(rez, targ); Verificare_Label.Text = eroare.ToString() + "%"; if (Verificare_Label.Text == "NaN%") { MessageBox.Show("Inregistrare esuata"); Verificare_Label.Text = "%"; } }