SP03 Text to Speech Synthesizer
Diff: SP03.cpp
- Revision:
- 0:2326b6172834
- Child:
- 1:58ab657cd515
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SP03.cpp Wed May 07 13:52:08 2014 +0000 @@ -0,0 +1,49 @@ +#include "SP03.h" + +SP03::SP03(PinName sda, PinName scl): i2c_bus(sda,scl) +{ + i2c_bus.frequency(CLOCK_RATE); +} + +void SP03::_speak(const char message[],SmartLab_SP03::Speech_Speed speed, SmartLab_SP03::Speech_Volume volume,uint8_t pitch) +{ + char speakout[2]; + speakout[0] = REGISTER_FOR_COMMAND; + speakout[1] = SPEAK_OUT_THE_BUFFER; + int length = 6 + strlen(message); + char _message[length]; + _message[0] = REGISTER_FOR_COMMAND; + _message[1] = 0x00; + _message[2] = volume; + _message[3] = speed; + _message[4] = pitch; + for (int i = 5; i < length; i++) + _message[i] = message[i - 5]; + i2c_bus.write(DEFAULT_ADDRESS, _message, length); + i2c_bus.write(DEFAULT_ADDRESS, speakout, 2); +} + +void SP03::Speak(const char message[]) +{ + _speak(message, SmartLab_SP03::NORMAL, SmartLab_SP03::MAX, DEFAULT_SPEECH_PITCH); +} + +void SP03::Speak(const char message[],SmartLab_SP03::Speech_Speed speed, SmartLab_SP03::Speech_Volume volume) +{ + _speak(message, speed, volume, DEFAULT_SPEECH_PITCH); +} + +void SP03::Speak(const char message[],SmartLab_SP03::Speech_Speed speed, SmartLab_SP03::Speech_Volume volume,uint8_t pitch) +{ + _speak(message, speed, volume, pitch); +} + +bool SP03::IsSpeaking() +{ + char m[1]= {REGISTER_FOR_COMMAND}; + i2c_bus.write(DEFAULT_ADDRESS,m ,1); + i2c_bus.read(DEFAULT_ADDRESS, m, 1); + if (m[0] == 0x00) + return false; + else return true; +} \ No newline at end of file