So I’m currently trying to make a Voice satellite, it uses the talkie library to text to speech, but the issue is that it simply does not speak haha. None of the examples work and I had issues installing the library since I got a ton of Invalid zip library error codes. Is there any way to fix this or to find a working library? This is the library used: GitHub - going-digital/Talkie: Speech library for Arduino.
int SPKpin = 3; //Needs to be PWM pin for spk/radio output
int Batt1;// Globalize Batt1 Variable
int temp1 = 23;
Talkie voice;
//Define what words you would like to use below
//comment out what you dont need or import more from the talkie example sketches
PART HERE REMOVED DUE TO CHARACTER MAX OPEN FILE FOR WHOLE DOC
/* Say any number between -999,999 and 999,999 */
void sayNumber(long n) {
if (n<0) {
voice.say(spMINUS);
sayNumber(-n);
} else if (n==0) {
voice.say(spZERO);
} else {
if (n>=1000) {
int thousands = n / 1000;
sayNumber(thousands);
voice.say(spTHOUSAND);
n %= 1000;
if ((n > 0) && (n<100)) voice.say(spAND);
}
if (n>=100) {
int hundreds = n / 100;
sayNumber(hundreds);
voice.say(spHUNDRED);
n %= 100;
if (n > 0) voice.say(spAND);
}
if (n>19) {
int tens = n / 10;
switch (tens) {
case 2: voice.say(spTWENTY); break;
case 3: voice.say(spTHIR_); voice.say(spT); break;
case 4: voice.say(spFOUR); voice.say(spT); break;
case 5: voice.say(spFIF_); voice.say(spT); break;
case 6: voice.say(spSIX); voice.say(spT); break;
case 7: voice.say(spSEVEN); voice.say(spT); break;
case 8: voice.say(spEIGHT); voice.say(spT); break;
case 9: voice.say(spNINE); voice.say(spT); break;
}
n %= 10;
}
switch(n) {
case 1: voice.say(spONE); break;
case 2: voice.say(spTWO); break;
case 3: voice.say(spTHREE); break;
case 4: voice.say(spFOUR); break;
case 5: voice.say(spFIVE); break;
case 6: voice.say(spSIX); break;
case 7: voice.say(spSEVEN); break;
case 8: voice.say(spEIGHT); break;
case 9: voice.say(spNINE); break;
case 10: voice.say(spTEN); break;
case 11: voice.say(spELEVEN); break;
case 12: voice.say(spTWELVE); break;
case 13: voice.say(spTHIR_); voice.say(sp_TEEN); break;
case 14: voice.say(spFOUR); voice.say(sp_TEEN);break;
case 15: voice.say(spFIF_); voice.say(sp_TEEN); break;
case 16: voice.say(spSIX); voice.say(sp_TEEN); break;
case 17: voice.say(spSEVEN); voice.say(sp_TEEN); break;
case 18: voice.say(spEIGHT); voice.say(sp_TEEN); break;
case 19: voice.say(spNINE); voice.say(sp_TEEN); break;
}
}
}
void setup() {
pinMode(SPKpin, OUTPUT) ; //this is unecessary for Talkie as it is hardcoded to 3 in Lib
Serial.begin(9600) ; //serial unnecessary except debugging as needed
Serial.println("Eric's Arduino Satellite Voice Downlink") ;
Serial.println("by Eric William") ;
Serial.println("www.mkme.org") ;
//Serial.println("") ;
Serial.println("STARTED") ;
voice.say(spSTART);//say start to indicate we actually started :)
voice.say(spSTART); //repeat because I'm slow
voice.say(spSTART); //Repeat and smack user for not listening the first 2 times
delay (2000);
}
void loop() {
//checksensors(); check sensor readings here
//modeindicator(); add mode indicator LED etc here
initiateTX();//Initiate the decided form of TX and proceeds to approprite TX void
}
void initiateTX(){
voice.say(spREADY); //Yep
sayNumber(Batt1);
voice.say(spVOLTS);
Serial.println("STARTED2") ;
voice.say(spPROBE);
//voice.say(spREADY);
voice.say(spTEMPERATURE);
sayNumber(temp1);
voice.say(spDEGREES);
voice.say(spSTABILISER);
voice.say(spON);
voice.say(spRADIOS);
voice.say(spMANUAL);
voice.say(spZONE);
voice.say(spONE);
voice.say(spINDICATED);
voice.say(spALERT);
voice.say(spZONE);
voice.say(spTWO);
voice.say(spNO);
voice.say(spERROR);
voice.say(spPROBE);
voice.say(spTWO);
voice.say(spPRESSURE);
voice.say(spINCREASING);
voice.say(spTWENTY);
voice.say(spPROBE);
voice.say(spTHREE);
voice.say(spCURRENT);
voice.say(spTOO_LOW);
voice.say(spZONE);
voice.say(spFOUR);
voice.say(spINDICATED);
voice.say(spTEMPERATURE);
voice.say(spERROR);
voice.say(spSPEED);
sayNumber(1700);
voice.say(spBREAK);
Serial.println("Done") ;
delay(2000);
}
void Batt(){
Batt1 = analogRead(0) /10; //correct this later with proper voltage divider code
Serial.println(Batt1);
}
void Watchdog(){
//input Watchdog code here
}
void Solar(){
//input Solar Cell monitoring & code here
}
sketch_nov23a.ino (60.6 KB)