guide5 min read

A free AI voice you're actually allowed to use

Give this to your agent

Paste into Claude Code, Cursor — any agent. It reads the guide and does the setup for you.

Prompt: this guide
Follow this StackScout guide in my project: "A free AI voice you're actually allowed to use"
https://stackscout.app/guides/free-ai-voice

Read it, then set up what it describes. When you're done, give me a one-line summary.

Every "best free TTS" list ranks by how the voices sound and never checks whether you're allowed to publish the audio. If your channel is monetised — ads, a product link, a paid newsletter — most of those "free" options are off the table.

This is the setup we run for StackScout's own reels, after checking every licence at the source on 31 July 2026. Two options, both €0 forever, both with a real legal basis.

The rule that decides everything here: the code licence is not the weights licence. An Apache-2.0 repo tells you nothing about the model it downloads.


Option A — Azure Speech, free tier (F0)

The one almost nobody mentions, because it sounds like it should cost money. It doesn't.

Free per month 500,000 characters, recurring — not a trial
Voices included Neural, e.g. en-US-AndrewMultilingualNeural
Licence A normal contract, with usage rights and an SLA
Cost beyond that ~$15 per 1M characters

A typical short-form channel uses 10,000–15,000 characters a month. That is roughly 38× headroom inside the free tier.

curl -sS -X POST "https://$REGION.tts.speech.microsoft.com/cognitiveservices/v1" \
  -H "Ocp-Apim-Subscription-Key: $AZURE_SPEECH_KEY" \
  -H "Content-Type: application/ssml+xml" \
  -H "X-Microsoft-OutputFormat: audio-24khz-160kbitrate-mono-mp3" \
  --data "<speak version='1.0' xml:lang='en-US'><voice name='en-US-AndrewMultilingualNeural'>Your line here.</voice></speak>" \
  -o out.mp3

Two limits to plan around, both documented by Microsoft:

  • 20 requests per 60 seconds, and the docs put it plainly: "This limit isn't adjustable." Batch-render with ~3 seconds between calls and back off a full minute on an HTTP 429.
  • HD voices and voice cloning are not in F0. The HD variants do sound noticeably more human, but they start around $22 per 1M characters — for our volume about $0.30/month. Worth knowing; not worth pretending it's free.

Pick F0 explicitly when you create the resource. S0 bills from the first character, and the two are one dropdown apart.


Option B — Chatterbox, on your own machine

For when you want a voice no provider can change, reprice, or withdraw.

Licence MIT — on the code and the weights
Cost €0, no account, no network
Cloning Yes, from a few seconds of reference audio, no transcript needed
Speed ~0.1× realtime on an M4: 4 seconds of audio ≈ 30 seconds of compute
pip install chatterbox-tts "setuptools<81"
from chatterbox.tts import ChatterboxTTS
import torchaudio as ta

m = ChatterboxTTS.from_pretrained(device="mps")     # "cuda" or "cpu" elsewhere
wav = m.generate("Your line here.", exaggeration=0.5, cfg_weight=0.5)
ta.save("out.wav", wav, m.sr)

The setuptools<81 pin is not optional. Chatterbox's watermarker imports pkg_resources, which setuptools dropped in v81. Without the pin, from_pretrained fails with a misleading 'NoneType' object is not callable.

Chatterbox ships exactly one voice. It sits as conds.pt inside the weights — the one you hear in every Chatterbox demo online. Other voices come from a reference clip:

m.generate(text, audio_prompt_path="reference.wav")

Two dials change delivery without any reference: exaggeration (0.3 flat → 0.8 emphatic) and cfg_weight (higher sticks closer to the written words).

Loading the model takes ~14 seconds per process, so render a whole batch in one run rather than calling a script per line.


What we rejected, and why

Everything below sits near the top of the usual free-TTS lists. Each is a real problem for a monetised channel — and none of them fail on sound quality.

Option Why not
ElevenLabs free tier Terms of Use: "if you access or use our Services free of charge … you may only use the Services for non-commercial purposes." The Developer-API page is the same account tiers, not a separate agreement.
Coqui ⓍTTS-v2 Weights are CPML: non-commercial, and the restriction explicitly reaches the output and indirect revenue. Coqui the company is also gone.
F5-TTS Code MIT, weights CC-BY-NC-4.0 — the README says so itself.
Orpheus-TTS Tagged apache-2.0 on HuggingFace, but the weights are a Llama-3.2-3B-Instruct finetune. Llama weights can't be relicensed; "Built with Llama" and the model-naming clause still apply.
Piper ryan / hfc_female Piper itself is MIT, but its two most-recommended English voices are individually non-commercial.
edge-tts The one we used ourselves for two months. An unofficial wrapper around Edge's read-aloud endpoint: LGPLv3 covers the client, not the audio. There is no grant for the output at all, no contract, no SLA. Not a lawsuit risk — an operational one.

One thing that isn't a licence question

You can technically feed any YouTube clip in as a reference and clone that voice. Don't. A real person's voice needs their consent, and another TTS provider's output is covered by their terms — including the ones that forbid using it to build a competing voice.

If you want a voice that is genuinely yours: record 10–15 minutes of your own. Quiet room, one take, normal pace. Archive the raw file. That recording is the only asset here that gets more valuable over time, and nobody can revoke it.


Which one to pick

Publishing this week? Azure F0 — shortest path to a voice you're allowed to use, and no hardware question.

Want the voice to be yours? Chatterbox with your own recording as the reference. Slower to render, but nothing about it can be taken away.

We run both: Azure for volume, Chatterbox for the voice we own.

✦ free guides, every week

New setups like this land with each weekly drop — your agent can pull them live through the MCP.

See the connector

← all guides