Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: 4DGL-uLCD-SE EthernetInterface NTPClient mbed-rtos mbed SDFileSystem wavfile
Revision 6:23c3adb0470d, committed 2014-12-09
- Comitter:
- dudanian
- Date:
- Tue Dec 09 16:28:38 2014 +0000
- Parent:
- 5:ba94b62d86c9
- Commit message:
- changed server to txt file
Changed in this revision
| SpeechServerSource/SpeechServer.c | Show diff for this revision Revisions of this file |
| SpeechServerSource/SpeechServer.txt | Show annotated file Show diff for this revision Revisions of this file |
--- a/SpeechServerSource/SpeechServer.c Tue Dec 09 15:53:31 2014 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,204 +0,0 @@
-// THIS IS ACTUALLY A .cs FILE! Mbed only supports .c and .cpp files in repositories
-/*
-using System;
-using System.IO;
-using System.Net;
-using System.Net.Sockets;
-using System.Text;
-using System.Speech.Recognition;
-using System.Speech.Recognition.SrgsGrammar;
-using System.Collections.Generic;
-using System.Timers;
-using System.Speech.Synthesis;
-using System.Speech.AudioFormat;
-
-namespace SpeechServer
-{
- class Program
- {
- static Timer timeout;
- static bool responseSent;
- static TcpClient client;
- static SpeechSynthesizer synth;
-
- static void Main(string[] args)
- {
- timeout = new Timer(2000);
- timeout.AutoReset = false;
- timeout.Elapsed += OnSpeechRecognitionFailed;
- responseSent = false;
-
- Grammar g = new Grammar(new SrgsDocument("grammar.xml"));
-
- // Recognizing Speech
- SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine();
- recognizer.LoadGrammarAsync(g);
- recognizer.SpeechRecognized +=
- new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
- recognizer.SpeechRecognitionRejected +=
- new EventHandler<SpeechRecognitionRejectedEventArgs>(recognizer_SpeechRecognitionRejected);
- // Synthesizing Speech
- synth = new SpeechSynthesizer();
- synth.SpeakCompleted += new EventHandler<SpeakCompletedEventArgs>(synth_SpeakCompleted);
-
- TcpListener server = null;
- try {
- Int32 port = 13000;
- //Console.WriteLine("What IP Address?");
- //String ip = Console.ReadLine();
- //IPAddress hostaddr = IPAddress.Parse(ip);
- IPHostEntry host = Dns.GetHostEntry("laptop-pc");
- IPAddress hostaddr = null;
- foreach (IPAddress ipaddr in host.AddressList) {
- if (ipaddr.AddressFamily == AddressFamily.InterNetwork)
- {
- hostaddr = ipaddr;
- }
- }
- Console.WriteLine("Listening on Address: {0}", hostaddr.ToString());
-
- server = new TcpListener(hostaddr, port);
- server.Start();
-
- Byte[] bytes = new Byte[1024];
-
- while (true)
- {
- Console.Write("Waiting for a connection...");
- client = server.AcceptTcpClient();
- Console.WriteLine("Connected!");
- recognizer.SetInputToNull();
-
- NetworkStream stream = client.GetStream();
- int i;
-
- using (FileStream fs = File.Open("test.wav", FileMode.Create, FileAccess.Write, FileShare.None))
- {
- int sum = 0;
- while (sum < 110296)
- {
- i = stream.Read(bytes, 0, bytes.Length);
- sum += i;
- fs.Write(bytes, 0, i);
- }
- }
-
- recognizer.SetInputToWaveFile("test.wav");
- recognizer.RecognizeAsync(RecognizeMode.Single);
- timeout.Start();
-
- while (!responseSent)
- {
- System.Threading.Thread.Sleep(100);
- }
- responseSent = false;
- System.Threading.Thread.Sleep(1000);
- client.Close();
- }
- }
- catch (SocketException e)
- {
- Console.WriteLine("SocketException: {0}", e);
- }
- finally
- {
- server.Stop();
- }
- Console.WriteLine("\nHit enter to continue...");
- Console.Read();
- }
-
- static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
- {
- timeout.Stop();
- String toSend = e.Result.Semantics["command"].Value.ToString();
- String minute = "0";
- String hour = "0";
- String period = "0";
- String timezone = "0";
-
- // The following code illustrates some of the information available
- // in the recognition result.
- Console.WriteLine("Recognition result summary:");
- Console.WriteLine(
- " Recognized phrase: {0}\n" +
- " Confidence score {1}\n" +
- " Grammar used: {2}\n",
- e.Result.Text, e.Result.Confidence, e.Result.Grammar.Name);
-
- // Display the semantic values in the recognition result.
- Console.WriteLine(" Semantic results:");
- foreach (KeyValuePair<String, SemanticValue> child in e.Result.Semantics)
- {
- Console.WriteLine(" The {0} value is {1}",
- child.Key, child.Value.Value ?? "null");
- }
- if (e.Result.Semantics.ContainsKey("time"))
- {
- Console.WriteLine(" In Time:");
- foreach (KeyValuePair<String, SemanticValue> child in e.Result.Semantics["time"])
- {
- Console.WriteLine(" The {0} value is {1}",
- child.Key, child.Value.Value ?? "null");
- }
- hour = e.Result.Semantics["time"]["hour"].Value.ToString();
- minute = e.Result.Semantics["time"]["minute"].Value.ToString();
- period = e.Result.Semantics["time"]["period"].Value.ToString();
- }
- else if (e.Result.Semantics.ContainsKey("length"))
- {
- Console.WriteLine(" In Length:");
- foreach (KeyValuePair<String, SemanticValue> child in e.Result.Semantics["length"])
- {
- Console.WriteLine(" The {0} value is {1}",
- child.Key, child.Value.Value ?? "null");
- }
- hour = e.Result.Semantics["length"]["hour"].Value.ToString();
- minute = e.Result.Semantics["length"]["minute"].Value.ToString();
- }
- else if (e.Result.Semantics.ContainsKey("zone"))
- {
- timezone = e.Result.Semantics["zone"].Value.ToString();
- }
- toSend += " " + hour + " " + minute + " " + period + " " + timezone;
- Console.WriteLine("To Send: \"{0}\"", toSend);
- Console.WriteLine();
-
- byte[] msg = System.Text.Encoding.ASCII.GetBytes(toSend);
-
- client.GetStream().Write(msg, 0, msg.Length);
- responseSent = true;
- }
-
- static void recognizer_SpeechRecognitionRejected(object sender, SpeechRecognitionRejectedEventArgs e)
- {
- Console.WriteLine("Speech input was rejected.");
- foreach (RecognizedPhrase phrase in e.Result.Alternates)
- {
- Console.WriteLine(" Rejected phrase: " + phrase.Text);
- Console.WriteLine(" Confidence score: " + phrase.Confidence);
- }
- }
-
- private static void OnSpeechRecognitionFailed(Object source, ElapsedEventArgs e)
- {
- Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime);
-
- byte[] msg = System.Text.Encoding.ASCII.GetBytes("noCommand 0 0 0 0");
-
- client.GetStream().Write(msg, 0, msg.Length);
-
- responseSent = true;
-
- //synth.SetOutputToWaveFile("response.wav", new SpeechAudioFormatInfo(11025, AudioBitsPerSample.Sixteen, AudioChannel.Mono));
- //synth.SpeakAsync("testing this");
- }
-
- static void synth_SpeakCompleted(object sender, SpeakCompletedEventArgs e)
- {
- synth.SetOutputToNull();
- Console.WriteLine("Speaking Complete");
- }
- }
-}
-*/
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SpeechServerSource/SpeechServer.txt Tue Dec 09 16:28:38 2014 +0000
@@ -0,0 +1,203 @@
+// THIS IS ACTUALLY A .cs FILE! Mbed only supports .c and .cpp files in repositories
+
+using System;
+using System.IO;
+using System.Net;
+using System.Net.Sockets;
+using System.Text;
+using System.Speech.Recognition;
+using System.Speech.Recognition.SrgsGrammar;
+using System.Collections.Generic;
+using System.Timers;
+using System.Speech.Synthesis;
+using System.Speech.AudioFormat;
+
+namespace SpeechServer
+{
+ class Program
+ {
+ static Timer timeout;
+ static bool responseSent;
+ static TcpClient client;
+ static SpeechSynthesizer synth;
+
+ static void Main(string[] args)
+ {
+ timeout = new Timer(2000);
+ timeout.AutoReset = false;
+ timeout.Elapsed += OnSpeechRecognitionFailed;
+ responseSent = false;
+
+ Grammar g = new Grammar(new SrgsDocument("grammar.xml"));
+
+ // Recognizing Speech
+ SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine();
+ recognizer.LoadGrammarAsync(g);
+ recognizer.SpeechRecognized +=
+ new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
+ recognizer.SpeechRecognitionRejected +=
+ new EventHandler<SpeechRecognitionRejectedEventArgs>(recognizer_SpeechRecognitionRejected);
+ // Synthesizing Speech
+ synth = new SpeechSynthesizer();
+ synth.SpeakCompleted += new EventHandler<SpeakCompletedEventArgs>(synth_SpeakCompleted);
+
+ TcpListener server = null;
+ try {
+ Int32 port = 13000;
+ //Console.WriteLine("What IP Address?");
+ //String ip = Console.ReadLine();
+ //IPAddress hostaddr = IPAddress.Parse(ip);
+ IPHostEntry host = Dns.GetHostEntry("laptop-pc");
+ IPAddress hostaddr = null;
+ foreach (IPAddress ipaddr in host.AddressList) {
+ if (ipaddr.AddressFamily == AddressFamily.InterNetwork)
+ {
+ hostaddr = ipaddr;
+ }
+ }
+ Console.WriteLine("Listening on Address: {0}", hostaddr.ToString());
+
+ server = new TcpListener(hostaddr, port);
+ server.Start();
+
+ Byte[] bytes = new Byte[1024];
+
+ while (true)
+ {
+ Console.Write("Waiting for a connection...");
+ client = server.AcceptTcpClient();
+ Console.WriteLine("Connected!");
+ recognizer.SetInputToNull();
+
+ NetworkStream stream = client.GetStream();
+ int i;
+
+ using (FileStream fs = File.Open("test.wav", FileMode.Create, FileAccess.Write, FileShare.None))
+ {
+ int sum = 0;
+ while (sum < 110296)
+ {
+ i = stream.Read(bytes, 0, bytes.Length);
+ sum += i;
+ fs.Write(bytes, 0, i);
+ }
+ }
+
+ recognizer.SetInputToWaveFile("test.wav");
+ recognizer.RecognizeAsync(RecognizeMode.Single);
+ timeout.Start();
+
+ while (!responseSent)
+ {
+ System.Threading.Thread.Sleep(100);
+ }
+ responseSent = false;
+ System.Threading.Thread.Sleep(1000);
+ client.Close();
+ }
+ }
+ catch (SocketException e)
+ {
+ Console.WriteLine("SocketException: {0}", e);
+ }
+ finally
+ {
+ server.Stop();
+ }
+ Console.WriteLine("\nHit enter to continue...");
+ Console.Read();
+ }
+
+ static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
+ {
+ timeout.Stop();
+ String toSend = e.Result.Semantics["command"].Value.ToString();
+ String minute = "0";
+ String hour = "0";
+ String period = "0";
+ String timezone = "0";
+
+ // The following code illustrates some of the information available
+ // in the recognition result.
+ Console.WriteLine("Recognition result summary:");
+ Console.WriteLine(
+ " Recognized phrase: {0}\n" +
+ " Confidence score {1}\n" +
+ " Grammar used: {2}\n",
+ e.Result.Text, e.Result.Confidence, e.Result.Grammar.Name);
+
+ // Display the semantic values in the recognition result.
+ Console.WriteLine(" Semantic results:");
+ foreach (KeyValuePair<String, SemanticValue> child in e.Result.Semantics)
+ {
+ Console.WriteLine(" The {0} value is {1}",
+ child.Key, child.Value.Value ?? "null");
+ }
+ if (e.Result.Semantics.ContainsKey("time"))
+ {
+ Console.WriteLine(" In Time:");
+ foreach (KeyValuePair<String, SemanticValue> child in e.Result.Semantics["time"])
+ {
+ Console.WriteLine(" The {0} value is {1}",
+ child.Key, child.Value.Value ?? "null");
+ }
+ hour = e.Result.Semantics["time"]["hour"].Value.ToString();
+ minute = e.Result.Semantics["time"]["minute"].Value.ToString();
+ period = e.Result.Semantics["time"]["period"].Value.ToString();
+ }
+ else if (e.Result.Semantics.ContainsKey("length"))
+ {
+ Console.WriteLine(" In Length:");
+ foreach (KeyValuePair<String, SemanticValue> child in e.Result.Semantics["length"])
+ {
+ Console.WriteLine(" The {0} value is {1}",
+ child.Key, child.Value.Value ?? "null");
+ }
+ hour = e.Result.Semantics["length"]["hour"].Value.ToString();
+ minute = e.Result.Semantics["length"]["minute"].Value.ToString();
+ }
+ else if (e.Result.Semantics.ContainsKey("zone"))
+ {
+ timezone = e.Result.Semantics["zone"].Value.ToString();
+ }
+ toSend += " " + hour + " " + minute + " " + period + " " + timezone;
+ Console.WriteLine("To Send: \"{0}\"", toSend);
+ Console.WriteLine();
+
+ byte[] msg = System.Text.Encoding.ASCII.GetBytes(toSend);
+
+ client.GetStream().Write(msg, 0, msg.Length);
+ responseSent = true;
+ }
+
+ static void recognizer_SpeechRecognitionRejected(object sender, SpeechRecognitionRejectedEventArgs e)
+ {
+ Console.WriteLine("Speech input was rejected.");
+ foreach (RecognizedPhrase phrase in e.Result.Alternates)
+ {
+ Console.WriteLine(" Rejected phrase: " + phrase.Text);
+ Console.WriteLine(" Confidence score: " + phrase.Confidence);
+ }
+ }
+
+ private static void OnSpeechRecognitionFailed(Object source, ElapsedEventArgs e)
+ {
+ Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime);
+
+ byte[] msg = System.Text.Encoding.ASCII.GetBytes("noCommand 0 0 0 0");
+
+ client.GetStream().Write(msg, 0, msg.Length);
+
+ responseSent = true;
+
+ //synth.SetOutputToWaveFile("response.wav", new SpeechAudioFormatInfo(11025, AudioBitsPerSample.Sixteen, AudioChannel.Mono));
+ //synth.SpeakAsync("testing this");
+ }
+
+ static void synth_SpeakCompleted(object sender, SpeakCompletedEventArgs e)
+ {
+ synth.SetOutputToNull();
+ Console.WriteLine("Speaking Complete");
+ }
+ }
+}