diff --git a/public/text-to-speech.html b/public/text-to-speech.html
index d247bea..4147fa9 100644
--- a/public/text-to-speech.html
+++ b/public/text-to-speech.html
@@ -118,22 +118,21 @@
Test our community-hosted endpoint before self-hosting:
- # Female voice (aria) - auto-detects Qwen3-TTS engine
+ # Female voice (aria)
curl https://speech.ai.unturf.com/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{
- "input": "Welcome to uncloseai-speech. Five TTS engines, 42 voices, zero API keys.",
+ "input": "We rescue abandoned text-to-speech models and give them a new home. No API keys, no tracking, just open source voices for everyone.",
"voice": "aria"
}' > output.mp3
-# Male voice (atlas) - explicitly specify Qwen3-TTS model
+# Male voice (atlas)
curl https://speech.ai.unturf.com/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{
- "model": "tts-1-qwen",
- "input": "Qwen3-TTS voice cloning with 42 built-in voices.",
+ "input": "Like raccoons digging through digital dumpsters, we find the best open source TTS models that big companies left behind, and we make them accessible to everyone.",
"voice": "atlas"
- }' > output-qwen.mp3
+ }' > output-atlas.mp3
Auto-Detection Magic
@@ -146,25 +145,27 @@ client = OpenAI(
base_url="https://speech.ai.unturf.com/v1"
)
-# Auto-detects the right engine for each voice
+# Voice cloning (default engine) - 42+ voices
client.audio.speech.create(
- voice="aria", # → Qwen3-TTS (female, voice cloning)
- input="Voice cloning with 42 built-in voices"
-).stream_to_file("qwen.mp3")
+ voice="aria",
+ input="Raccoon mission. We dig through abandoned repos and rescue the best open source speech models before they disappear."
+).stream_to_file("aria.mp3")
client.audio.speech.create(
- voice="atlas", # → Qwen3-TTS (male, voice cloning)
- input="Male voice synthesis"
-).stream_to_file("qwen-male.mp3")
+ voice="atlas",
+ input="Five engines, one API. Self-host it, clone any voice, speak ten languages. No vendor lock-in, no API keys, no limits."
+).stream_to_file("atlas.mp3")
+# Multilingual CPU engine
client.audio.speech.create(
- voice="en_50", # → Silero (native voice name)
- input="CPU-friendly multilingual"
+ voice="en_50",
+ input="One hundred and forty-eight voices across five languages, all running on CPU. No GPU required."
).stream_to_file("silero.mp3")
+# Lightweight engine
client.audio.speech.create(
- voice="af_heart", # → Kokoro (lightweight)
- input="Decoder-only architecture"
+ voice="af_heart",
+ input="A tiny model that fits anywhere. Edge devices, embedded systems, even a Raspberry Pi."
).stream_to_file("kokoro.mp3")
Discover Voices
@@ -319,7 +320,7 @@ client = OpenAI(
client.audio.speech.create(
model="tts-1-hd",
voice="my_voice",
- input="This is my cloned voice speaking!"
+ input="This is my own voice, cloned from a ten-second recording. No cloud service needed. My voice, my hardware, my rules."
).stream_to_file("cloned_output.mp3")
That's the power of open source TTS. No API keys, no usage limits, your voice, your infrastructure.