Re-voice one character in a finished table read (metered — TWO CALLS, price first).
Speaks only character's lines again in a new voice and keeps every other line byte for byte from the recording the read already has, then mixes the read again with its music and sound (TABLE_READ_REVOICE, priced on GET /credits). The voice is voiceId (with voiceName/provider), or the cast canon voice for the person when omitted (after POST /story-projects/{projectId}/cast-voice/choose). The recast inside it pins the canon too and keeps the previous voice and recording restorable (POST .../voice/restore). TWO CALLS: sent without confirmed it PRICES the re-voice and changes nothing (quotedOnly: true, credits, lines and chars it speaks again, keptLines, balanceAfter, sufficient, and a note to show the writer; when sufficient is false the caller must not confirm); sent again with confirmed: true it reserves, recasts and queues the finalize. Poll GET /artifacts/{artifactId} until manifest.audio.finalize.status is complete; the credit settles only then and is released if it fails. Refused before the price with 409 cast_voice_precondition_failed: a read with no finished recording (recast and finalize instead), a character with no lines in it, a voice it already speaks with, a finalize already running, or a recording whose lines overlap (it cannot be cut line by line). Refused with 409 voice_retired when the new voice, or the voice of any line spoken again, is one its provider has retired; lines kept from the recording never count, so a cast on a retired provider can be moved off it one character at a time. Requires Idempotency-Key. Scope: artifact:publish.
Request
- Base URL: https://docs.sleeperhit.studio/api/v1
- URL: https://docs.sleeperhit.studio/api/v1/artifacts/{artifactId}/revoice
- Auth: HTTP bearer
Headers
Customer-generated stable identifier for safe retries of idempotent POST requests.
Request body
Response
The price (no confirmed) or the queued re-voice.
Changes
No recorded changes to this operation across all 1 revision of this API.