Automotion docs

Voice element

Synthesizes a voiceover from text (Amazon Polly). Pair it with `duration: "voice"` on the scene so the scene lasts exactly as long as the speech, and with a `subtitles` element for word-timed captions. See the [voice catalog](/docs/reference/voices) for available `voiceId` values.

Synthesizes a voiceover from text (Amazon Polly). Pair it with duration: "voice" on the scene so the scene lasts exactly as long as the speech, and with a subtitles element for word-timed captions. See the voice catalog for available voiceId values.

Properties

PropertyTypeDefaultDescription
id *string (non-empty)Stable identifier, unique across the whole movie. Used by editor selection sync and error paths.
startnumber (≥ 0)0When the element appears, in seconds relative to its scene (or to the movie for movie-level elements).
durationnumber (> 0)How long the element is active, in seconds. Defaults to the remainder of its scene.
type *"voice"A text-to-speech voiceover.
text *string (non-empty)Text to speak. May contain {{variable}} placeholders.
voiceId *string (non-empty)Neural voice id, e.g. Polly "Joanna". Validated against the live voice list at prepare time.
language *string (matches ^[A-Za-z]\{2,3}(-[A-Za-z0-9]\{2,8})*$)BCP-47 language tag of the spoken text, e.g. "en-US".
speednumber (0.5–2)1Speech rate multiplier from 0.5 (half speed) to 2 (double speed).
volumenumber (0–1)1Playback volume from 0 (silent) to 1 (full).

Example

Voice: a Polly voiceover driving the scene duration:

movie.json
{
  "schema": "v1",
  "preset": "9:16",
  "scenes": [
    {
      "id": "narration",
      "duration": "voice",
      "background": "#1e1b4b",
      "elements": [
        {
          "id": "narration-voice",
          "type": "voice",
          "text": "Welcome to Automotion. This entire video was rendered from a JSON document.",
          "voiceId": "Joanna",
          "language": "en-US",
          "speed": 1,
          "volume": 1
        },
        {
          "id": "narration-title",
          "type": "text",
          "text": "JSON in, video out",
          "fontSize": 72
        }
      ]
    }
  ]
}

▶ Try it in the playground

On this page