Words in, a voice out. Pick one of nine studio voices, clone a voice from a short recording, or invent a speaker from a written description.
Whatever you write is what gets said, word for word. From $0.072 a take.
Qwen3-TTS reads your script aloud. It ships on Sogni as three checkpoints under one family: nine built-in studio voices, a voice cloned from a few seconds of a real recording, and a voice invented from a written description. All three take the same script, the same languages and the same price.
The single most important thing to know is what the prompt is. It is not a description of the audio you want — it is the audio. Whatever you type is spoken character for character, so “a calm woman reading the evening news” gets read out as those seven words. The description of the voice belongs in a separate field; the prompt is only ever the words to be said.
Studio Voices is the one to reach for when nobody in particular has to be imitated: narration, voiceover, a line of dialogue. Nine voices ship with it — Serena, Vivian, Uncle Fu, Ryan, Aiden, Ono Anna, Sohee, Eric and Dylan. The nationality attached to each one describes the accent it carries, not the language it can read. On top of the voice you can add a written direction — “whispering, close to the mic”, “like a sports commentator” — which restyles the delivery without changing who is speaking.
Voice Clone reproduces a specific person from three to thirty seconds of them talking. Supply the reference recording’s exact transcript alongside it whenever you know it: with the transcript the model conditions on the recording itself, and without it it has only a speaker fingerprint and its own prior to fall back on. That difference is not subtle. In our own testing, cloning an accented speaker without the transcript produced a fluent General American voice that had lost the accent entirely — recognisably not her.
Voice Design invents a speaker who does not exist. Here the description is required and is doing all the work: age, gender, accent, timbre, pace, mood, the room it was recorded in. Describe one coherent person — contradictory directions produce a voice that shifts mid-sentence.
Language is set to auto by default, which infers it from the script and is the only setting that reads a code-switched line correctly. Pin a language only when auto mis-reads a name or a loanword, and be careful about pinning it on a cloned voice: forcing English onto a non-native speaker is one of the ways to lose the accent you were cloning for.
Speech is priced per 1,000 characters of script — the unit every TTS provider bills in, because the script rather than a requested duration decides how long the model runs. That is $0.42 for roughly 74 seconds of speech, with every take billed at a floor of 170 characters so a one-line take still covers loading the model. Generation is slower than real time: expect around 1.6 seconds of GPU for each second of audio.
Speak a line in the Sogni app under Speech, or call any of the three model ids from the JavaScript or Python SDK. It runs on the Sogni Supernet, a decentralized network of creator GPUs, so nothing is installed and no card is rented.
These are three separate checkpoints rather than three presets of one, so each takes its own inputs. Everything else — script length, languages, creativity, takes, output format and price — is identical across all three.
| Mode | Details | From | |
|---|---|---|---|
Studio Voicesqwen3_tts_1.7b_custom_voice_bf16 | Voices: Nine, from Serena to Uncle Fu Style direction: Optional · up to 512 characters Output: WAV · MP3 · FLAC at 24 kHz | 14.4 Spark · $0.072 | Create → |
Voice Cloneqwen3_tts_1.7b_voice_clone_bf16 | Reference clip: 3–30 s of one speaker · required Transcript: Optional · up to 1,024 characters Output: WAV · MP3 · FLAC at 24 kHz | 14.4 Spark · $0.072 | Create → |
Voice Designqwen3_tts_1.7b_voice_design_bf16 | Voice description: Required · up to 512 characters Output: WAV · MP3 · FLAC at 24 kHz | 14.4 Spark · $0.072 | Create → |
The prompt is the script, so writing a good one is writing for the ear rather than for the eye:
The script, the language, the creativity and the number of takes are the same everywhere. What differs is how the voice gets decided.
| Mode | You supply | Reach for it when |
|---|---|---|
Studio Voicesqwen3_tts_1.7b_custom_voice_bf16 | A voice from the roster, and optionally a written direction for the delivery. | Narration, voiceover and dialogue where no particular person has to be imitated. The default. |
Voice Cloneqwen3_tts_1.7b_voice_clone_bf16 | 3–30 s of one person speaking, plus that clip’s exact transcript whenever you know it. | You need a specific real voice, and you have a recording of it. |
Voice Designqwen3_tts_1.7b_voice_design_bf16 | A written description of the speaker to invent. Required here. | You want a voice nobody owns, and you can describe who it belongs to. |
A written direction restyles a studio voice without changing who it is; on Voice Design the same field defines the identity. Voice Clone takes no direction at all — the recording decides.
Every one of them speaks all ten supported languages. The nationality below is the accent the timbre carries, not a limit on what it can read.
| Voice | Gender | Accent |
|---|---|---|
| serena | Female | English — the default |
| vivian | Female | Chinese |
| uncle_fu | Male, older | Chinese |
| ryan | Male | English |
| aiden | Male | English |
| ono_anna | Female | Japanese |
| sohee | Female | Korean |
| eric | Male | English |
| dylan | Male | English |
| Field | Accepts | What it does |
|---|---|---|
| positivePrompt | 1–4,096 characters | The script. Read aloud verbatim; a longer one is refused rather than truncated. |
| language | auto plus 10 named languages; default auto | Auto infers it from the script and is the only setting that reads a code-switched line correctly. |
| creativity | 0.1–2.0; default 0.9 | Sampling temperature. Lower is steadier and flatter, higher more expressive and less predictable. |
| speaker | 9 studio voices; default serena | Which studio voice speaks. Studio Voices only. |
| instruct | up to 512 characters | Delivery direction on Studio Voices; the voice to invent on Voice Design, where it is required. |
| referenceAudio | 3–30 seconds of audio | The recording to clone. Required by Voice Clone and unused elsewhere. |
| referenceText | up to 1,024 characters | That recording’s exact transcript. Optional, and the single biggest lever on how close the clone lands. |
| numberOfMedia | 1–16; default 1 | Separate takes of the same script, differing only in delivery. |
| outputFormat | mp3, wav or flac; default mp3 | Container for the 24 kHz audio that comes back. |
The transcript is optional and you should almost always send it. Without it the clone has a speaker fingerprint and its own prior; with it, it conditions on the recording.
const project = await client.projects.create({
type: 'audio',
modelId: 'qwen3_tts_1.7b_voice_clone_bf16',
positivePrompt: 'The compute is borrowed. The voice is yours.',
numberOfMedia: 1,
referenceAudio: readFileSync('reference.wav'),
// The exact words spoken in reference.wav. This is what keeps the accent.
referenceText: 'okay say goodnight daddy i love you so i say goodnight to you',
outputFormat: 'wav',
}); Use pay-as-you-go Spark packs for each take (1 Spark = $0.005), or choose a flat-rate Sogni plan for credit-free fair-use generation in the app.
| Variant / configuration | Spark | USD |
|---|---|---|
| Minimum bill · up to 170 characters (a short line still covers the fixed cost of loading the model and warming the codec) | 14.4 Spark | $0.072 |
| 1,000 characters · about 74 seconds of speech (the priced unit) | 84.6 Spark | $0.42 |
| 4,096 characters · the longest script (the maximum; a longer script is refused rather than cut off mid-sentence) | 346 Spark | $1.73 |
Priced per 1,000 characters of script, with a 170-character floor on every take. The script rather than a requested duration is what decides how long the model runs, so characters are the unit — the same one every other TTS provider bills in.
1 Spark = $0.005. Pay as you go with Spark packs, or speak under fair use on a flat monthly Sogni plan.
One Sogni API key reaches every model on the Supernet — call Qwen3-TTS with the exact model id for the variant you want.
import { SogniClient } from '@sogni-ai/sogni-client';
const client = await SogniClient.createInstance({
appId: crypto.randomUUID(),
apiKey: process.env.SOGNI_API_KEY,
network: 'fast',
});
const project = await client.projects.create({
type: 'audio',
modelId: 'qwen3_tts_1.7b_custom_voice_bf16',
// The prompt IS the script — every character of it is read aloud.
positivePrompt: 'Every render on the Sogni Supernet runs on a graphics card somebody else owns. Including this sentence.',
numberOfMedia: 1,
speaker: 'serena',
instruct: 'warm and unhurried, close to the mic',
outputFormat: 'mp3',
});
const [url] = await project.waitForCompletion();
console.log(url); // audio link — download within 24h curl https://api.sogni.ai/v1/creative-agent/workflows \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $SOGNI_API_KEY" \
-d '{
"input": {
"title": "First render",
"steps": [{
"id": "step1",
"toolName": "generate_speech",
"arguments": { "prompt": "Every render on the Sogni Supernet runs on a graphics card somebody else owns. Including this sentence.", "model": "voice", "voice": "serena" }
}]
},
"confirm_cost": true
}' Example uses qwen3_tts_1.7b_custom_voice_bf16; use any exact model id from the table above. The same three ids work from the Python SDK, and the REST workflow API reaches them through generate_speech, where model selects the mode — voice, clone or design. Full reference at docs.sogni.ai.
Use a flat monthly plan for credit-free fair-use generation, or buy Spark packs when pay-as-you-go fits better. Both run on the same creator-owned GPU network.
One flat price in the app. Generate under fair use without a per-image meter.
Image, video, music, and language models in one workspace and one API key.
Prefer pay-as-you-go? Call Qwen3-TTS by id and pay with Spark packs.
Runs on a decentralized GPU network where workers share subscription revenue.
Studio Voices when no particular person has to be imitated — narration, voiceover, dialogue — which is most of the time. Voice Clone when you have a recording of the specific person you want and need them. Voice Design when you want someone who does not exist and can describe them. They cost the same, so the choice is only about what you can supply.
The exact words you want spoken, and nothing else. The prompt is read aloud character for character — it is not a description of the audio. If you want a particular delivery or a particular kind of speaker, that goes in the style direction (Studio Voices) or the voice description (Voice Design), never in the script.
Speech is priced per 1,000 characters of script: $0.42 (84.6 Spark), which is roughly 74 seconds of audio. Every take is billed at a floor of 170 characters — $0.072, about 14.4 Spark — so a very short line still covers the fixed cost of loading the model and warming the codec. The longest allowed script, 4,096 characters, costs $1.73.
Because a take has a fixed cost that has nothing to do with its length: the model has to be uploaded to the GPU and the audio codec warmed up before a single word is spoken. That measured out at about 3.3 seconds of the 17.7 a 140-character take took on an RTX 4090, and 170 characters is the floor that covers it. Past that floor, price is straight-line in the length of the script.
Good enough that the transcript is what decides it. Supply the reference recording’s exact words and the model conditions on the recording, which holds a speaker’s accent and delivery closely. Omit them and it works from a speaker fingerprint alone, which stays recognisable in timbre but tends to flatten a strong accent into a neutral one. Three to thirty seconds of clean speech is what it wants; past thirty seconds the tail is trimmed.
One person, speaking cleanly, with nothing else in the mix. A second voice answering mid-clip, a music bed underneath or heavy room echo all end up as part of what gets cloned — trim them out first. Output loudness is inherited from the reference too, so a quiet source gives you a quiet take.
Yes — the checkpoints carry ten languages plus auto-detect, and cloning is cross-lingual, so an English reference clip can read Japanese in the same voice. The nationality listed against each studio voice describes the accent it carries, not a limit on what it can read. Our own qualification testing covered English; the other nine languages are supported by the model rather than measured by us.
By listening to it. Do not score a voice clone with speech recognition: word error rate asks whether an English-tuned recogniser understood the words, so a clone that faithfully reproduces a strong non-native accent scores worse precisely because it is faithful. We learned this the hard way — the take our tooling scored worst was the one that actually sounded like the speaker, and the take it scored perfectly had lost her accent completely.
No. Delivery varies between takes, which is why you can ask for up to 16 of them in one request and pick. Creativity controls how far it wanders: lower is steadier and flatter, higher is more expressive and less predictable, and it defaults to 0.9.
Up to 4,096 characters, roughly five minutes of speech. A longer script is refused rather than cut off mid-sentence, so split it at a natural break and run the parts as separate takes.
On an RTX 4090, about 3.3 seconds of fixed cost plus roughly 0.1 seconds per character — so a 140-character line took about 17.7 seconds warm and a 445-character one about 49 seconds from cold. Generation is always slower than real time, around 1.6 seconds of GPU per second of speech. Those are single measured runs rather than a benchmark, and your job runs on whichever eligible Supernet worker picks it up.
No. Qwen3-TTS runs on the Sogni Supernet — a decentralized network of creator GPUs — so the checkpoints stay on the worker. Peak VRAM is only about 5GB, but there is nothing to install, no nodes to wire up and no card to buy.
Create in the app, or build with the API. Your call.