Voice cloning & text-to-speech SaaS

November 9, 2026

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:

  1. Web app (React, Vite, Tailwind). Users sign in, upload a voice sample, type text and play or download the result.
  2. 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.
  3. 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:

  • /tts and /tts-fast for standard and faster generation
  • /tts-stream and /tts-stream-chunked for 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.

GitHub