Artifacts

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.

post/artifacts/{artifactId}/revoice

Request

  • Base URL: https://docs.sleeperhit.studio/api/v1
  • URL: https://docs.sleeperhit.studio/api/v1/artifacts/{artifactId}/revoice
  • Auth: HTTP bearer

Headers

Idempotency-Keystring required

Customer-generated stable identifier for safe retries of idempotent POST requests.

Request body

characterstring required

The character to re-voice: canon name, alias or script cue.

voiceIdstring

The new voice. Omitted: the cast canon voice for this person.

voiceNamestring
providerstring
genderstring
confirmedboolean

Omit (or false) to get the price without spending anything. true reserves and queues the re-voice, only after the writer has seen the price.

Response

The price (no confirmed) or the queued re-voice.

quotedOnlyboolean required

true when this call only PRICED the re-voice.

artifactIdstring required
characterstring required
linesinteger required

The character's lines, spoken again.

charsinteger required
keptLinesinteger required

Lines kept as they are in the current recording.

resynthesizedLinesinteger required

Every line spoken again.

creditsinteger required
costLabelstring nullable

Quote only.

balanceAfterinteger

Quote only. Studio Credits the writer would have left once this is spent: the balance available now (as Billing shows it) minus the price. Negative means they are that many short.

sufficientboolean

Quote only. True when the available balance covers the price. False means the writer must top up first (the note names the Billing link) — do not confirm; the reserve would refuse.

notestring required

The price and what it would leave (quote), or what happens next (confirmed). Show it to the writer.

status'queued'

Confirmed calls only. Poll GET /artifacts/{artifactId} until manifest.audio.finalize.status is complete.

Changes

No recorded changes to this operation across all 1 revision of this API.