The narration roster
preview_urls is keyed by language. A language with no recorded clip yet is null rather than a
dead link, so check for null before rendering a player.id is accepted.
Narration roster versus the live roster
There are two catalogues and they are not interchangeable.
The live catalogue is filtered to entries flagged
live in the narration roster. A persona that
is narration-only cannot be used for a live session, and requesting one there will not resolve.
Reading a course’s voice
Setting a course’s voice
"voice": null to clear a previously chosen voice and fall back to the roster default.
Setting the voice at creation
You can skip the extra round trip by passingvoice on the create request:
- An unknown id returns
400 invalid_voice. - Omitting
voiceleaves the existing default resolution in place, which takes the preset, gender and language into account.
Ordering it correctly
GET /api/v1/voicesand let the user pick, or hard-code a rosterid.- Create the course. It lands in
awaiting_brief. PUT /api/v1/courses/{course_id}/voice, or passvoiceon the create call in step 2.- Launch. From this point the voice is fixed for the course.