Skip to main content
The open Video Synthesis API does not use a single global voice catalog for video generation tasks. Instead, when you submit textContent, NavTalk uses the voice already bound to the selected avatar.

How TTS Selection Works

When you call POST /api/open/v1/video-compose/submit with:
  • textContent
  • avatarId
the service performs these steps:
  1. Loads the avatar by avatarId
  2. Reads the avatar’s configured voiceKey
  3. Reads the avatar’s configured provider
  4. Generates the speech audio with that provider
  5. Uploads the generated audio and uses it for video synthesis

Supported Providers

The current open video workflow supports avatar-bound TTS from:
  • OpenAI
  • ElevenLabs
  • Cartesia

What This Means for API Users

  • You do not need to pass a separate voice parameter when using textContent
  • The avatar determines which voice is used
  • Different avatars may use different providers and different voice keys
  • The same textContent may sound different when submitted with different avatarId values
For predictable results:
  1. Create or select an avatar that already has the correct voice configuration
  2. Reuse that avatarId for your video tasks
  3. Submit only textContent and the optional face-control parameters

When voice Appears in Responses

The /status and /list responses may include:
  • voice
  • voiceName
These fields reflect the avatar-bound voice that was used for the task.

When TTS Is Not Used

You do not need avatar-bound voice configuration when you submit:
  • audioFile
  • audioUrl
In those cases, NavTalk uses the supplied audio directly and skips TTS generation.
If you use textContent, avatarId is required. A plain characterFile or characterUrl is not enough for TTS, because the service needs an avatar-linked provider and voice key.