Hello everyone, In this instructable, I am going to tell you how to use voice or speech to your projects or you can say about Speech Synthesizer. After reading this instructable you will get to know how to give your Arduino voice or add voice to your projects without paying the even single penny on it.

I always wanted to add voice to my projects but I don`t wanna use sd card modules each and every time the reason is quite obvious COST who has that much money to spend on every single project so. This method solves this issue and voice beautify your project.

And I also want to clear that this method is a good option but if you want amazing sound quality and custom voice that this method is not for you then you should go for other options.

I have also added a complete video of it so You can watch it if you don`t like reading or you want to save your time and also Do subscribe to my youtube Channel link is HERE.

Step 1: Things You`re Gonna Need

  1. Arduino
  2. Speaker(with amplifier, or you can use small amps like pam8403or lm386)
  3. led
  4. Jumper wires
  5. Breadboard
  6. Creativity
  7. Patience (Most Important one)

I have made a blink with voice demo project for presentation purpose only. That is why you need a led but else it is not required you can make whatever you want.You can also watch this blink with voice demo in video.

Step 2: Installing the Library :- TALKIE

For voice, I am using talkie library so first of all, you`ll need to install the library you can download the library from the given link CLICK HERE. After downloading the library file you`ll need to paste talkie folder to the library folder of your Arduino IDE`s installed directory.

Step 3: Connections

After installing the library file you`ll need to make simple connections shown in image led is connected to the pin no. 2 of Arduino and pin no. 3 is audio output you`ll need a speaker with preamplifier or you can also test using your earphones. For your projects, you can use pam8403 as amp that`s all.

Step 4: Modification in the Code

This is the most important step in this step I am going to tell you how to use the words you want to use when you first any example from your Arduino ide lets say you have opened example named as "Vocab_US_Male"  then you`ll find error if you directly hit the verify button so first you need some modification .

When you open this example you`ll see soo many lines like these shown below:-

//uint8_t spZERO[]          PROGMEM = {0x69,0xFB,0x59,0xDD,0x51,0xD5,0xD7,0xB5,0x6F,0x0A,0x78,0xC0,0x52,0x01,0x0F,0x50,0xAC,0xF6,0xA8,0x16,0x15,0xF2,0x7B,0xEA,0x19,0x47,0xD0,0x64,0xEB,0xAD,0x76,0xB5,0xEB,0xD1,0x96,0x24,0x6E,0x62,0x6D,0x5B,0x1F,0x0A,0xA7,0xB9,0xC5,0xAB,0xFD,0x1A,0x62,0xF0,0xF0,0xE2,0x6C,0x73,0x1C,0x73,0x52,0x1D,0x19,0x94,0x6F,0xCE,0x7D,0xED,0x6B,0xD9,0x82,0xDC,0x48,0xC7,0x2E,0x71,0x8B,0xBB,0xDF,0xFF,0x1F};
//uint8_t spFOUR[] PROGMEM = {0x08,0x68,0x21,0x0D,0x03,0x04,0x28,0xCE,0x92,0x03,0x23,0x4A,0xCA,0xA6,0x1C,0xDA,0xAD,0xB4,0x70,0xED,0x19,0x64,0xB7,0xD3,0x91,0x45,0x51,0x35,0x89,0xEA,0x66,0xDE,0xEA,0xE0,0xAB,0xD3,0x29,0x4F,0x1F,0xFA,0x52,0xF6,0x90,0x52,0x3B,0x25,0x7F,0xDD,0xCB,0x9D,0x72,0x72,0x8C,0x79,0xCB,0x6F,0xFA,0xD2,0x10,0x9E,0xB4,0x2C,0xE1,0x4F,0x25,0x70,0x3A,0xDC,0xBA,0x2F,0x6F,0xC1,0x75,0xCB,0xF2,0xFF}; //uint8_t spEIGHT[] PROGMEM = {0x65,0x69,0x89,0xC5,0x73,0x66,0xDF,0xE9,0x8C,0x33,0x0E,0x41,0xC6,0xEA,0x5B,0xEF,0x7A,0xF5,0x33,0x25,0x50,0xE5,0xEA,0x39,0xD7,0xC5,0x6E,0x08,0x14,0xC1,0xDD,0x45,0x64,0x03,0x00,0x80,0x00,0xAE,0x70,0x33,0xC0,0x73,0x33,0x1A,0x10,0x40,0x8F,0x2B,0x14,0xF8,0x7F};

As you can see the commented line with uint8_t spZERO[] with some hex code let`s say you need to use this word ZERO then you`ll need to modify this into this

const int8_t spZERO[]          PROGMEM = {0x69,0xFB,0x59,0xDD,0x51,0xD5,0xD7,0xB5,0x6F,0x0A,0x78,0xC0,0x52,0x01,0x0F,0x50,0xAC,0xF6,0xA8,0x16,0x15,0xF2,0x7B,0xEA,0x19,0x47,0xD0,0x64,0xEB,0xAD,0x76,0xB5,0xEB,0xD1,0x96,0x24,0x6E,0x62,0x6D,0x5B,0x1F,0x0A,0xA7,0xB9,0xC5,0xAB,0xFD,0x1A,0x62,0xF0,0xF0,0xE2,0x6C,0x73,0x1C,0x73,0x52,0x1D,0x19,0x94,0x6F,0xCE,0x7D,0xED,0x6B,0xD9,0x82,0xDC,0x48,0xC7,0x2E,0x71,0x8B,0xBB,0xDF,0xFF,0x1F}

After this modification, you can use ZERO word whenever needed in the whole program let`s see how to call this word in the program


you need to use this command voice.say(spZERO) whenever you want its audio or speech.

You can also Watch the video to understand the whole process easily LINK IS HERE.

Step 5: Demo Project Blink With Voice

For the blink with voice you`ll need to upload this code .

#include "talkie.h"

Talkie voice;

const int8_t spLIGHT[] PROGMEM = {0x69, 0x18, 0x44, 0xD2, 0x83, 0xB2, 0x95, 0x69, 0x63, 0x1A, 0x17, 0x49, 0xD7, 0xA6, 0x85, 0x78, 0x5D, 0xD5, 0xFB, 0x1A, 0x33, 0xDF, 0x76, 0x97, 0x2D, 0x6B, 0x68, 0x6C, 0x4A, 0x53, 0xF7, 0xAC, 0xA9, 0x89, 0x71, 0x2D, 0xDD, 0x33, 0xA6, 0x26, 0x9B, 0xAD, 0x6D, 0x77, 0x5B, 0x7A, 0x70, 0xF4, 0xC8, 0x45, 0xE1, 0x69, 0x8E, 0xA9, 0x6B, 0x6E, 0x89, 0x62, 0x78, 0x45, 0x8D, 0x7C, 0x8C, 0xC0, 0x29, 0x4A, 0x55, 0xA8, 0x06, 0x06, 0x01, 0x0C, 0x30, 0xA4, 0x9B, 0x02, 0x36, 0x57, 0x43, 0xE0, 0x14, 0xA5, 0x2A, 0x54, 0xE3, 0xFF, 0x01}; const int8_t spON[] PROGMEM = {0x69, 0x0C, 0x69, 0xAB, 0x44, 0x92, 0x96, 0x36, 0x86, 0xED, 0x52, 0x8D, 0xD7, 0xDA, 0x10, 0xB7, 0x53, 0x35, 0x5E, 0x6B, 0x43, 0xB9, 0x4A, 0xD5, 0x78, 0xAD, 0x0D, 0xE9, 0x32, 0xD4, 0x9A, 0xB5, 0x21, 0xBA, 0x4B, 0x37, 0x4B, 0xDA, 0xE6, 0x68, 0x2E, 0xDD, 0x2D, 0x6D, 0xDB, 0x62, 0x58, 0x37, 0xF7, 0x34, 0xED, 0x48, 0xAE, 0x3D, 0xDC, 0x53, 0xA5, 0x33, 0xE5, 0x54, 0xF3, 0x6C, 0x9D, 0xCE, 0xE4, 0xCA, 0x42, 0x2A, 0x73, 0xB8, 0x8A, 0xE6, 0x72, 0x4D, 0x55, 0xE9, 0x2A, 0x46, 0x22, 0x24, 0x6C, 0xA7, 0xBB, 0x3B, 0x0E, 0x57, 0x57, 0x12, 0xEE, 0x6A, 0xC4, 0x93, 0xCD, 0x8E, 0x79, 0x6A, 0xD4, 0x60, 0x49, 0xC7, 0xFF, 0x0F}; const int8_t spOFF[] PROGMEM = {0x69, 0x70, 0xBB, 0xCD, 0x25, 0x36, 0xB5, 0xCE, 0xD7, 0x0D, 0x57, 0xED, 0x3C, 0x3A, 0x5F, 0x2F, 0xCD, 0xB4, 0xF3, 0xE8, 0x7D, 0xBE, 0x34, 0xD3, 0xCE, 0x63, 0x08, 0xFE, 0xD3, 0xDC, 0x32, 0x8F, 0x39, 0xFA, 0x0F, 0x73, 0xCF, 0xD4, 0x8E, 0xE8, 0x3E, 0xCC, 0xBC, 0x77, 0x99, 0x63, 0xB8, 0x30, 0xF3, 0x4E, 0xE9, 0x8E, 0x79, 0xDC, 0x25, 0x76, 0xFA, 0x9B, 0x00, 0xC3, 0x56, 0x10, 0x60, 0xFA, 0x0A, 0x01, 0x4C, 0x97, 0xAE, 0x80, 0x66, 0xCB, 0x08, 0x30, 0x54, 0xFA, 0xFF, 0x03}; void setup() { pinMode(2, OUTPUT); }

void loop() { digitalWrite(2, HIGH); voice.say(spLIGHT); voice.say(spON); delay(1000); digitalWrite(2, LOW); voice.say(spLIGHT); voice.say(spOFF); delay(1000); }

Step 6: Thanks for Reading

Hope you like this instructable if you find this helpful please do subscribe to my youtube channel .And if you have any query regarding this instructable do ask in the comment section.

About This Instructable




Bio: Hello I am Tech Creator Akshay I love electronics and get in touch for more projects
More by Akshay Jha:Add Voice to Your Arduino Projects Without Using Any Module(BLINK WITH VOICE) How to Interface Oled and Arduino (Part -1) DIY Helping hand for soldering and elec.(SIMPLE & CHEAP)  
Add instructable to: