Skip to main content

Pitch Shifted AI Voice < 1.0 that sounds like Hulk

What is Pitch Shifting?

Pitch shifting changes the pitch of a sound without changing the playback speed. It’s useful for:
  • Creating “cartoon-like” higher voices (pitch factor > 1.0)
  • Deepening voices for characters like “Hulk” (pitch factor < 1.0)

Why Pitch Shifting?

When we spoke to doctors and parents about using Elato in hospitals, they were more excited about child-like voices to reduce children’s anxiety. One customer put it simply:
OpenAI Voices are not well suited for small toys. The ultimate goal is to build a toy for my 10-year-old daughter that can answer simple questions and tell fairy tales on request.
His Furby-like setup was an incredible idea. Here’s Roman’s current setup with an ESP32 XIAO: Furby-like setup

How to create cartoon-like realtime AI voices with pitch shifting on ESP32 Arduino

Phil Schatzmann’s arduino-audio-tools lays the groundwork:

Audio pipeline before pitch shift

Audio pipeline with pitch shift

Apply pitch factor dynamically

In our websocketEvent callback, we can configure pitch shift when the pitch factor is not 1.0:
This pitch shift implementation uses a granular synthesis approach. Implementation helpers:

In conclusion

Pitch shifting is a simple but powerful way to make realtime AI voices feel more playful and character-like on ESP32. With Elato you can set this in your NextJS app directly. Elato pitch shift Full repo: https://github.com/akdeb/ElatoAI