public void Start() { IsReady = true; using (var reader = new StreamReader(@"C:\Users\karel\Downloads\sample.txt")) { string line; while ((line = reader.ReadLine()) != null) { if (!string.IsNullOrEmpty(line)) { TextAvailable?.Invoke(this, new TextEventArgs(line, Encoding.UTF8)); } } reader.Close(); } }
private void SpeechRecognitionEngine_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) { TextAvailable?.Invoke(this, new TextEventArgs(e.Result.Text, Encoding.UTF8)); }
private void Ws_OnMessage(object sender, MessageEventArgs e) { systemLog.DebugFormat("{0} Incoming message from Watson", prefix); var json = e.Data; var obj = JsonConvert.DeserializeObject <SpeechRecognitionEvent>(json); if (obj.State == "listening") { IsReady = true; timer = DateTime.Now; systemLog.DebugFormat("{0} Watson listening", prefix); } if (!obj.Error.IsNullOrEmpty()) { IsReady = false; systemLog.ErrorFormat("{0} {1}", prefix, obj.Error); } if (obj.Results == null) { return; } var elapsed = DateTime.Now.Subtract(timer).TotalMilliseconds; var final = obj.Results.Find(t => t.Final); if (elapsed > respite || final != null) { foreach (var result in obj.Results) { if (result.Alternatives.Count == 0) { continue; } var interim = result.Alternatives[0].Transcript; systemLog.Debug(interim); if (interim.Length <= position) { positions.Clear(); position = 0; timer = DateTime.Now; continue; } if (final == null) { for (var index = position; index < interim.Length; index++) { if (char.IsWhiteSpace(interim[index])) { if (positions.Count == 4) { positions.RemoveAt(0); } positions.Add(index + 1); } } TextAvailable?.Invoke(this, new TextEventArgs(interim.Substring(position, positions[0] - position), Encoding.UTF8)); position = positions[0]; } else { TextAvailable?.Invoke(this, new TextEventArgs(interim.Substring(position, interim.Length - position), Encoding.UTF8)); //positions.Clear(); //position = 0; //timer = DateTime.Now; } } } }