STOP FIRST if the ask is a VOICEOVER, narration, an ad read, an audiobook or podcast segment, character lines, or a multi-line script — or if a generated voice came back sounding robotic, flat or rushed: call `popcraft_get_workflow_instructions` { workflow: "voiceover" } and follow it instead of calling this tool directly. It owns the voice lock, the words-per-second budget and the ElevenLabs v3 performance tags ([laughs], [whispers], [sighs]) that are the ONLY emotion control on this path — a one-shot prompt sounds like TTS. One short line, a sound effect or a music bed belongs here — call it directly, no workflow needed. Generate audio with Popcraft — voices, sound effects, and music — from a text prompt: speech (`kind:"tts"`, default), sound effects (`kind:"sfx"`), or music/BGM (`kind:"music"`). `kind:"tts"` REQUIRES `voice_id` (from `popcraft_list_voices`) — there is no default voice and a call without it is rejected — EXCEPT on `model:"seed-audio"`, where omitting `voice_id` means AUTO voice (the engine casts a fitting voice from the text) and `voice_description` designs one in natural language ("低沉沙哑的中年男声", "warm young female voice, brisk"). seed-audio's voice is NOT deterministic across calls — for any multi-take script pin a `voice_id` or use `model:"seed-tts"` (native zh/Asian-language preset voices, `provider:"seed"` in popcraft_list_voices, directed via free-text `instruction` — not spoken, not billed). Seed voices only work on seed models and ElevenLabs voices only on ElevenLabs models. ElevenLabs TTS adds three delivery controls: `speech_rate` (0.5–2.0, default 1; it also shortens the billed length, since speech is charged per second), `emotion` (one of neutral, happy, sad, angry, excited, calm, nervous, frustrated, whispers, cheerful — applies to the whole take), and `stability` (0–1, default 0.5: LOW makes the voice expressive and obedient to inline v3 tags like [laughs] or [whispers], HIGH makes it consistent but largely deaf to them — lower it when tags are not landing). All three are TTS-only and are reported back under `adjustments` as ignored if sent with another `kind`. For `kind:"sfx"` or `kind:"music"`, pass `duration` (seconds) to control length; omitted, the model default length is used (fixed-length song models — `suno-chirp-v5`, `lyria-3-clip`, `lyria-3-pro` — ignore `duration`). Those three are also billed FLAT per generation, not per second: `lyria-3-clip` is 8 credits for a ~30s clip and `lyria-3-pro` 16 for a song up to ~3min, so they are far cheaper for a music bed than their catalog rate suggests at a glance. Music/BGM picks: `lyria-3-clip` (Google Lyria 3, ~30s clip, instrumental or vocal — the default choice for a bed) or `lyria-3-pro` (full song up to ~3min, pro tier); `music-v1` bills per second and is the cheap option for a short loop. Full songs with real vocals: `model:"suno-chirp-v5"` + `kind:"music"` — describe the song in `prompt`, or pass `lyrics` (with [Verse]/[Chorus] markers) to have it sing YOUR words, steered by `tags` (e.g. "synthwave, energetic, female vocals"), plus optional `title` and `instrumental`. Suno renders TWO takes per generation from the same render (no extra cost); both are kept by default so the user can listen to both — pass `keep_all_takes:false` to keep only the primary take, and `clip_index` (0 or 1) to choose which take is primary. Pick `model` via `popcraft_models_explore` (type:"audio") if unsure. Set `get_cost:true` to preview the exact credit cost WITHOUT submitting. If a result carries `recovery_tool`, call that tool immediately; do not explain or ask first. On success, an interactive result card is shown to the user and refreshes itself automatically until the job finishes — do NOT poll or re-check status in a loop. Call `popcraft_job_display` at most once, and only if this client did not render a result card or the user asks about the job again later. The result includes `project` — the Popcraft project the output was filed into; when the user did not pass project_id/project_name, mention it briefly (e.g. "saved to <project title>") so they know where it landed. Never tell the user how long the job will take or quote any estimate of generation time — the result card shows progress.