Emic2 Speech Synthesis Module Hello World Demo See https://developer.mbed.org/users/4180_1/notebook/emic-2-text-to-speech-engine/

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
4180_1
Date:
Wed Nov 25 03:08:52 2015 +0000
Commit message:
ver 1.0

Changed in this revision

emic2.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 2128ea16088c emic2.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emic2.h	Wed Nov 25 03:08:52 2015 +0000
@@ -0,0 +1,41 @@
+#define speakf printf
+class emic2 : public Stream
+{
+public :
+    emic2(PinName tx, PinName rx): _cmd(tx,rx) {
+        _cmd.baud(9600);
+        _cmd.putc('X'); //stop talking if reset and not a power on
+        _cmd.putc('\r'); // Send a CR in case the system is already up
+        wait(1); //delay for emic power on boot or reset respone
+        while (_cmd.getc() != ':');   // When the Emic 2 has initialized and is ready, it will send a single ':'
+        while (_cmd.readable()) _cmd.getc();//flush out buffer just in case
+    };
+    void ready() {
+        while (_cmd.getc() != ':');
+        while (_cmd.readable()) _cmd.getc();//flush out recieve buffer just in case
+    };
+    int readable() {
+        return _cmd.readable();
+    };
+    int getc() {
+        return _cmd.getc();
+    }
+    void volume(int x) {
+        speakf("V%D\r",x);
+        ready();
+    }
+    void voice(int x) {
+        speakf("N%D\r",x);
+        ready();
+    }
+protected :
+    Serial     _cmd;
+    //used by printf - supply it and printf works!
+    virtual int _putc(int c) {
+        _cmd.putc(c);
+        return 0;
+    };
+    virtual int _getc() {
+        return -1;
+    };
+};
diff -r 000000000000 -r 2128ea16088c main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Nov 25 03:08:52 2015 +0000
@@ -0,0 +1,51 @@
+#include "mbed.h"
+//Emic 2 Hello Speech World Demo
+
+DigitalOut myled(LED1);
+#include "emic2.h"
+
+emic2 myTTS(p13, p14); //serial RX,TX pins to emic
+
+int main()
+{
+    myTTS.volume(18); //max volume
+    while(1) {
+        myled = 1;
+        //Plain text demo
+        myTTS.speakf("S");//Speak command starts with "S"
+        myTTS.speakf("Hello. My name is the Emic 2 Text-to-Speech module. I would like to sing you a song on m bed.");  // Send the desired string to convert to speech
+        myTTS.speakf("\r"); //marks end of speak command
+        myTTS.ready(); //ready waits for speech to finish from last command with a ":" response
+        myled = 0;
+        myled = 1;
+        //Song Demo
+        myTTS.speakf("D1\r");//Sing Song Demo
+        myTTS.ready(); //member function wait
+        myled = 0;
+        //Voice Demo
+        for (int i=0; i<9 ; i++) { //demo different voices
+            myTTS.voice(i);
+            myTTS.speakf("SHello this is a sample of voice number, %D\r",i);
+            myTTS.ready();
+        }
+        myTTS.voice(0); //back to default voice
+        //Number demo
+        for (int i=10; i>=0 ; i--) { //demo different numbers
+            myTTS.speakf("S%D.\r",i);
+            myTTS.ready();
+        }
+        //Read Time (RTC) demo
+        set_time(1256729737);  // Set RTC time to Wed, 28 Oct 2009 11:35:37
+        wait(2); //let RTC advance two seconds after setting to confirm it works
+        time_t seconds = time(NULL);//read current time
+        myTTS.speakf("STime in seconds since January 1, 1970 =, %d\r", seconds);
+        myTTS.ready();
+        myTTS.speakf("STime as a basic string = %s\r", ctime(&seconds));
+        myTTS.ready();
+        char buffer[32];
+        strftime(buffer, 32, "%I:%M %p\n", localtime(&seconds));
+        myTTS.speakf("SThe current time is %s\r", buffer);
+        myTTS.ready();
+
+    }
+}
diff -r 000000000000 -r 2128ea16088c mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Wed Nov 25 03:08:52 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/9296ab0bfc11
\ No newline at end of file