Mbed Clock application using an NTP connection to get internet time and a terminal interface to send commands

Dependencies:   4DGL-uLCD-SE EthernetInterface NTPClient mbed-rtos mbed SDFileSystem wavfile

Files at this revision

API Documentation at this revision

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
diff -r ba94b62d86c9 -r 23c3adb0470d SpeechServerSource/SpeechServer.c
--- 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
diff -r ba94b62d86c9 -r 23c3adb0470d SpeechServerSource/SpeechServer.txt
--- /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");
+        }
+    }
+}