private void BtnSave_Click(object sender, EventArgs e) { if (ComCounter != 0) { return; } Command Com = new Command(); Com.Name = BoxName.Text; Com.Coefs = Learn.Average(); ((MainForm)this.Owner).Speech.Commands.Add(Com); ((MainForm)this.Owner).ListCommands.Items.Add(Com.Name); for (int j = 0; j < Learning.COUNT; j++) { ((MainForm)this.Owner).tbxLogs.AppendText("Дистанция между " + j.ToString() + "-тым вектором обучения и средним вектором - " + MainSpeech.getDistance(Com.Coefs, (ArrayList)Learn.RecCommands[j]) + "\r\n"); } ((MainForm)this.Owner).tbxLogs.SelectionStart = ((MainForm)this.Owner).tbxLogs.Text.Length; ((MainForm)this.Owner).tbxLogs.ScrollToCaret(); this.Close(); }
private void BtnStop_Click(object sender, EventArgs e) { const double MIN_DISTANCE = 0d; string name; ArrayList result = SoundProcessing.Stop(); result = Learning.Normalize(result); double distance = Speech.Compare(result, out name); Logger.Add("Recognited as \"" + name + "\""); if (distance >= MIN_DISTANCE) { tbxLogs.Text += "Похоже команда не расспознана, попробуйте ещё раз,\n но если уверены в своей правоте, то вероятней всего это была команда " + name + "\r\n"; } else { tbxLogs.Text += "Команда распозанана. Это " + name; System.Windows.Forms.MessageBox.Show(name); } BtnStop.Visible = false; BtnStart.Visible = true; inProcess = false; for (int j = 0; j < Speech.Commands.Count; j++) { this.tbxLogs.Text += "Дистанция между вектором " + ((Command)Speech.Commands[j]).Name + " и записанным вектором - " + MainSpeech.getDistance(((Command)Speech.Commands[j]).Coefs, result) + "\r\n"; } tbxLogs.SelectionStart = tbxLogs.Text.Length; tbxLogs.ScrollToCaret(); }