textContent, NavTalk uses the voice already bound to the selected avatar.
How TTS Selection Works
When you callPOST /api/open/v1/video-compose/submit with:
textContentavatarId
- Loads the avatar by
avatarId - Reads the avatar’s configured
voiceKey - Reads the avatar’s configured provider
- Generates the speech audio with that provider
- 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
voiceparameter when usingtextContent - The avatar determines which voice is used
- Different avatars may use different providers and different voice keys
- The same
textContentmay sound different when submitted with differentavatarIdvalues
Recommended Workflow
For predictable results:- Create or select an avatar that already has the correct voice configuration
- Reuse that
avatarIdfor your video tasks - Submit only
textContentand the optional face-control parameters
When voice Appears in Responses
The /status and /list responses may include:
voicevoiceName
When TTS Is Not Used
You do not need avatar-bound voice configuration when you submit:audioFileaudioUrl
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.