It can speak!!

A project log for DSKorder

A handheld interface from the future or past.

XasinXasin 08/01/2019 at 14:520 Comments


The DSKorder is finally back to its former self. The replacement screen and battery charge circuit are implemented, and it's pretty much as it was before. Beautiful little thing <3

So, what better way, I thought, to celebrate this little achievement than by trying something I had been wanting to play with for a while already:

A small "DIY-TTS" on the ESP32!

I knew that a proper TTS would be a bit tough to implement, sure. But simply pre-generating a list of just the words and phrases that I need, packaging those into a "small" header-file, and adding some fancy code to play that back ... That couldn't be so hard, right?

Turns out I was quite correct, and after a good afternoon and evening of happily crunching away on some Ruby code to generate headers for audio data, I was finally left with this:

((Sorry for the vertical video >.>))

The audio is a bit quiet, but that's because the speaker of the DSKorder is TINY, and not very good for low frequencies. Sadly, limiting the audio sample-rate to a whopping 5510Hz at eight bits does leave you with only low frequencies to mess with. In my tests I turned the samplerate up to about 8k without exceeding about 300kB of memory needed, so it's definitely possible to get a better quality. Heck, add a SD card with the sound files and you could smoothly ride along at the full 44100Hz!

The system can only say words that have been pre-generated, but it DOES handle numbers fully, so it's still quite useable!

Overall, this was a very fun little thing for me to work on, and I bet it'll be useful in some situations. Maybe for a tiny screen-less multimeter with earplugs?