Open-source part: github.com/Nomannazir/f5-tts-fastapi
The problem
Open-source voice models have become good enough to clone a voice from a few seconds of audio, but a model on its own is not a product. Turning one into a SaaS means user accounts, billing, a queue of generation jobs, GPU servers, file storage and an interface that non-technical people can use.
What I built
The platform is split into three services:
- Web app (React, Vite, Tailwind). Users sign in, upload a voice sample, type text and play or download the result.
- API (Node.js, Express, PostgreSQL). Accounts, voices, generation history, subscriptions and payments. It never runs the model itself; it sends work to the inference service.
- Inference service (Python, FastAPI, F5-TTS) on GPU servers. Takes text plus a reference voice and returns audio, either as a file or as a real-time stream.
The three run together with Docker Compose in development and deploy independently, so the expensive GPU service can be scaled separately from the cheap web tier.
Choosing the model
Before building, I tested several open-source voice models, including F5-TTS, GPT-SoVITS, OpenVoice and Kokoro, for voice similarity, naturalness and speed. F5-TTS gave the best balance for voice cloning, so the inference service is built around it.
The inference API
I published the inference layer as an open-source project, f5-tts-fastapi:
/ttsand/tts-fastfor standard and faster generation/tts-streamand/tts-stream-chunkedfor real-time audio streaming- Configurable speed, inference steps, silence removal and CFG strength
Stack
React · Vite · Tailwind CSS · Node.js · Express · PostgreSQL · Python · FastAPI · PyTorch · F5-TTS · Docker · GPU servers
What this means for your project
If you want to put an AI model behind a product (voice, image or text), the hard part is everything around the model: queues, GPUs, streaming, billing and cost. That's the part I build.