
Send JSON to POST https://api.teenage.works/v1/audio/speech.
json
{
"model": "teen-v1",
"input": "Build a clear spoken response.",
"language": "en",
"response_format": "mp3",
"stream": false
}| Field | Default | Accepted value |
|---|---|---|
input | Required | Plain text from 1 to 4096 characters |
model | teen-v1 | teen-v1 |
language | hi | A supported language code or regional form |
voice | default | default, reference, or a public voice_... ID |
Inline performance tags such as [happy], [pause], and [whisper] are rejected with unsupported_tags.
| Field | Accepted value |
|---|---|
reference_audio | Base64 audio, up to 6 MB after decoding |
reference_audio_format | wav, mp3, flac, or ogg |
reference_transcript | Exact transcript of the reference, 1–2048 characters |
reference_text | Legacy alias for reference_transcript |
voice_description | Natural-language voice or style description, 1–256 characters |
Reference audio and its format must appear together. reference_transcript requires reference audio. voice_description works alone or with reference audio.
voice_description or reference_transcript, never both. voice_description also works without reference audio or a voice ID. An invalid combination returns HTTP 422 with code voice_description_reference_transcript_conflict.json
{
"input": "Welcome to the show.",
"language": "en",
"voice_description": "Young, warm, confident narrator",
"response_format": "mp3",
"stream": false
}json
{
"input": "Use the supplied speaker identity.",
"language": "en",
"reference_audio": "<BASE64_REFERENCE_AUDIO>",
"reference_audio_format": "wav",
"response_format": "mp3",
"stream": false
}json
{
"input": "Keep the speaker but change the delivery.",
"language": "en",
"reference_audio": "<BASE64_REFERENCE_AUDIO>",
"reference_audio_format": "wav",
"voice_description": "Slightly faster with a cheerful tone",
"response_format": "mp3",
"stream": false
}json
{
"input": "Continue with every vocal detail preserved.",
"language": "en",
"reference_audio": "<BASE64_REFERENCE_AUDIO>",
"reference_audio_format": "wav",
"reference_transcript": "Exact words spoken in the reference recording.",
"response_format": "mp3",
"stream": false
}| Field | Default | Accepted value |
|---|---|---|
response_format | pcm | pcm, mp3, or wav |
output_sample_rate | Model sample rate | Integer from 8000 through 48000 |
stream | true | true or false |
stream_format | audio | audio or sse when streaming |
WAV is buffered. If stream is omitted, requesting WAV selects buffered delivery; explicitly combining WAV with stream: true returns 422.
| Field | Default | Accepted value |
|---|---|---|
quality | fast | fast or expressive |
cfg_value | 2.0 | Number from 1.0 through 3.0 |
temperature | 1.0 | Number greater than 0 through 2.0 |
max_generate_length | 2000 | Integer from 32 through 4096 |
seed | null | Integer from 0 through 4294967295 |
lora | null | Registered server-side LoRA name, up to 128 characters |
When quality is expressive, omitted temperature and cfg_value fields use the expressive profile. Explicit values take precedence. Unknown fields return 422.
On this page