private void MiUncertain_Click(object sender, EventArgs e) { ToolStripItem tsi = sender as ToolStripMenuItem; if (tsi != null) { WordInfo wi = tsi.Tag as WordInfo; if (wi != null) { int oldLen = wi.Text.Length; int newLen = tsi.Text.Length; string oldWord = wi.Text; string newWord = tsi.Text.PadRight(oldLen - newLen); WordInfo wiToChange = wordLines.SelectMany(s => s.Value).Where(w => w.Id == wi.Id).SingleOrDefault(); wiToChange.Text = newWord; RefreshText(); } } }
private void SetUpWithFile(string filePath) { RecognizerInfo info = null; foreach (RecognizerInfo ri in SpeechRecognitionEngine.InstalledRecognizers()) { if (ri.Culture.TwoLetterISOLanguageName.Equals("en")) { info = ri; break; } } if (info == null) { return; } /*Set up audio*/ audioStream = new WaveFileReader(filePath); TimeSpan audioStreamTotalTime = audioStream.TotalTime; // Create the selected recognizer. recognitionEngine = new SpeechRecognitionEngine(info); recognitionEngine.LoadGrammar(new DictationGrammar()); recognitionEngine.SetInputToWaveFile(filePath); StringBuilder sb = new StringBuilder(); recognitionEngine.SpeechRecognized += (s, args) => { TimeSpan currentTime = new TimeSpan(recognitionEngine.RecognizerAudioPosition.Ticks); string time = String.Format("[{0:D2}:{1:D2}.{2:D2}]", currentTime.Minutes, currentTime.Seconds, currentTime.Milliseconds); /*Update progress label*/ String positionString = String.Format("{0} / {1}", currentTime, audioStreamTotalTime); toolStripStatusLabelPosition.Text = positionString; double progress = (double)currentTime.Ticks / (double)audioStreamTotalTime.Ticks * 100.0; toolStripProgressBar1.Value = (int)progress; List <WordInfo> wordInfos = new List <WordInfo>(); foreach (RecognizedWordUnit word in args.Result.Words) { WordInfo wi; string confidenceStr = String.Format("{0:0}", word.Confidence * 100); if (word.Confidence >= confidence) { wi = WordInfo.Create(word.Text, confidenceStr, word.LexicalForm); } else { string text = String.Format("[SKIPPED]", confidenceStr); wi = WordInfo.Create(text, confidenceStr, word.LexicalForm); } wordInfos.Add(wi); } txtOutput.AddLine(currentTime, wordInfos); txtOutput.RefreshText(); }; recognitionEngine.RecognizeCompleted += RecognitionEngine_RecognizeCompleted; btnStart.Enabled = true; toolStripStatusLabelStatus.Text = "File loaded: " + filePath; lblConfValue.Text = String.Format("{0:P2}", confidence); }