curl --request POST \
--url https://api.poyo.ai/api/generate/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "gemini-3.8-flash-lite-tts",
"input": {
"text": "Hello! Welcome to PoYo."
}
}
'{
"code": 200,
"data": {
"task_id": "task-unified-1757165031-uyujaw3d",
"status": "not_started",
"created_time": "2026-10-13T10:30:00+08:00"
}
}Google
Gemini 3.8 Flash Lite TTS
Generate native WAV speech from a transcript or a two-speaker dialogue.
POST
/
api
/
generate
/
submit
curl --request POST \
--url https://api.poyo.ai/api/generate/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "gemini-3.8-flash-lite-tts",
"input": {
"text": "Hello! Welcome to PoYo."
}
}
'{
"code": 200,
"data": {
"task_id": "task-unified-1757165031-uyujaw3d",
"status": "not_started",
"created_time": "2026-10-13T10:30:00+08:00"
}
}Submission returns a
task_id. Use Query Task Status to track completion, or supply callback_url for completion and failure notifications.
Parameters and combinations
Single speaker: supply non-emptytext, optional voice (default Kore), and optional style_instructions.
Dialogue: omit text and top-level voice; supply exactly two speakers with distinct non-empty speaker_id values and a voice for each. Supply non-empty turns; each turn needs a configured speaker_id, non-empty text, and optional style_instructions.
Single-speaker and dialogue inputs are mutually exclusive. Global style_instructions can be used with either mode. The complete input is limited to 8,192 tokens.
enable_safety_checker defaults to true. Disabling safety checking can require account authorization.
Output is native WAV. There are no output_format, temperature, language_code, or seed parameters.
Voices: Achernar, Achird, Algenib, Algieba, Alnilam, Aoede, Autonoe, Callirrhoe, Charon, Despina, Enceladus, Erinome, Fenrir, Gacrux, Iapetus, Kore, Laomedeia, Leda, Orus, Pulcherrima, Puck, Rasalgethi, Sadachbia, Sadaltager, Schedar, Sulafat, Umbriel, Vindemiatrix, Zephyr, Zubenelgenubi.
Examples
{
"model": "gemini-3.8-flash-lite-tts",
"input": {
"text": "Hello! Welcome to PoYo."
}
}
{
"model": "gemini-3.8-flash-lite-tts",
"input": {
"speakers": [
{
"speaker_id": "host",
"voice": "Kore"
},
{
"speaker_id": "guest",
"voice": "Puck"
}
],
"turns": [
{
"speaker_id": "host",
"text": "Welcome!"
},
{
"speaker_id": "guest",
"text": "Thank you.",
"style_instructions": "Warm and friendly."
}
]
}
}
Task results
The query response uses the common task structure:task_id, status, progress, files, and error_message. A finished task has status="finished"; each result file has file_url and file_type. Preserve the task ID while polling.
Speech appears as file_type="audio"; optional timing JSON appears as file_type="other".Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Available options:
gemini-3.8-flash-lite-tts Use either text (single speaker) or speakers with turns (dialogue). These modes are mutually exclusive; dialogue cannot include top-level text or voice.
Show child attributes
Show child attributes
Optional completion or failure callback URL.
