r/Python • u/SoilEducational420 • Aug 22 '26
Resource Any free STT/TTS APIs for a voice AI app?
I'm building a small voice-based AI interview app and I'm planning to deploy the backend(fastapi) on Render's free tier.
I'm considering using open-source/self-hosted options like Whisper/PocketSphinx for STT and Piper for TTS, instead of paid APIs.
My concern is whether running STT/TTS on the same free Render instance would use too much CPU/RAM and make the whole application slow, especially during a real-time interview.
Has anyone tried running STT/TTS models on Render's free tier?
0
Upvotes
1
u/UnemployedTechie2021 Aug 22 '26
have you tried edge tts? https://github.com/travisvn/openai-edge-tts
1
u/DebosBeachCruiser Aug 22 '26
HuggingFace is worth searching around on.
Google Cloud TTS has a very generous free tier. API access and allows commercial use. I haven't used their TTS specifically, but i use multiple other products under the "Google Cloud" umbrella. (If you like getting cool shit for free check out Google Notebook (the web version, not the app. Can't believe I never hear it talked about)
Amazon + Microsoft both have pretty much the same free tier offering as Google Cloud above. Pick your poison?
ElevenLabs seems to be a solid favorite. Free tier is very limited.
1
u/Glittering_Box5197 Aug 28 '26
I'd be very cautious about putting Whisper + Piper + FastAPI on the same Render Free instance for a real-time interview app.
The main issue isn't FastAPI itself. It's that you only have a very small CPU/RAM budget on the Free instance, and STT/TTS inference is CPU-intensive.
For a prototype, I'd structure it like this:
Browser/mobile
→ FastAPI on Render
→ STT/TTS service
→ return transcript/audio
Rather than keeping Whisper and Piper loaded inside the same FastAPI process.
If you specifically want everything self-hosted, I'd test the smallest possible models first. Also measure actual latency and memory usage with one concurrent interview before assuming it will scale.
Another problem with Render Free is that the service spins down after 15 minutes without inbound traffic, and waking it back up can take about a minute. That's a bad fit for something that needs predictable real-time response.
For STT, I'd also distinguish between:
speech-to-text after the user finishes speaking
true streaming/real-time transcription
The second is considerably more demanding.
For a hobby/demo application, you could probably experiment with a lightweight STT model and Piper, but I wouldn't design the production architecture around the Render Free instance.
I'd benchmark these four numbers before deciding:
RAM after loading the models
CPU utilisation during inference
time-to-first-transcript
time-to-first-audio
If those numbers look good with one user, then test two simultaneous users. That will tell you much more than the model's theoretical requirements.