Elevenlabs Dubbing
Playground
Try it on WavespeedAI!ElevenLabs Dubbing automatically translates and dubs video/audio content into different languages while preserving the original speakers’ voices. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
ElevenLabs Dubbing
ElevenLabs Dubbing automatically translates and dubs video or audio content into different languages. Upload your content, select target language — the model transcribes, translates, and generates natural-sounding speech in the target language while preserving the original voice characteristics and timing.
REST inference API, best performance, no cold starts, affordable pricing.
Why Choose This?
-
Automatic translation and dubbing End-to-end pipeline: transcription → translation → voice synthesis in one step.
-
Voice preservation Maintains the original speaker’s voice characteristics in the dubbed output.
-
Multi-language support Supports English, Spanish, French, German, Italian, Portuguese, Chinese, Japanese, Korean, and more.
-
Auto language detection Automatically detects the source language, or manually specify for better accuracy.
-
Video and audio support Works with both video files and audio-only content.
Parameters
| Parameter | Required | Description |
|---|---|---|
| video | No | Source video file to dub (upload or URL) |
| audio | No | Source audio file to dub (upload or URL) |
| target_lang | Yes | Target language for dubbing |
| source_lang | No | Source language (default: Auto for automatic detection) |
Note: Either video or audio is required (upload one of them).
Supported Languages
- English
- Spanish
- French
- German
- Italian
- Portuguese
- Chinese
- Japanese
- Korean
How to Use
- Upload your content — video or audio file (choose one).
- Select target language — the language you want the content dubbed into.
- Select source language (optional) — choose Auto for automatic detection, or specify manually.
- Run — submit and download the dubbed content.
Pricing
| Duration | Cost |
|---|---|
| Per minute | $0.9 |
Best Use Cases
- Content Localization — Translate videos and podcasts for international audiences.
- Marketing — Dub promotional content into multiple languages.
- Education — Make educational content accessible in different languages.
- Social Media — Reach global audiences with multilingual video content.
- Corporate Communications — Translate internal videos and training materials.
Pro Tips
- Use clean, high-quality source audio for best dubbing results.
- Specify source language manually if auto-detection is inaccurate.
- Shorter clips process faster — split long content for parallel processing.
- Content with clear speech and minimal background noise produces better results.
Notes
- Either video or audio is required — upload one of them.
- If both video and audio are provided, the model will process video only.
- For longer content, split into segments and process separately.
Related Models
- ElevenLabs Voice Changer — Transform audio into speech with a different voice.
- ElevenLabs Text-to-Speech — Generate speech from text with natural-sounding voices.
- OpenAI Whisper — Transcribe audio to text with high accuracy.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/elevenlabs/dubbing" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"source_lang": "Auto"
}'
# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"
Parameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| video | string | No | - | URL of the video file to dub. Either video or audio must be provided. If both are provided, video takes priority. | |
| audio | string | No | - | - | URL of the audio file to dub. Either video or audio must be provided. |
| target_lang | string | Yes | - | English, Spanish, French, German, Italian, Portuguese, Chinese, Japanese, Korean, Russian, Arabic, Hindi, Dutch, Polish, Turkish, Vietnamese, Thai, Indonesian | Target language for dubbing |
| source_lang | string | No | Auto | Auto, English, Spanish, French, German, Italian, Portuguese, Chinese, Japanese, Korean, Russian, Arabic, Hindi, Dutch, Polish, Turkish, Vietnamese, Thai, Indonesian | Source language. Select 'Auto' for automatic detection. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data.id | string | Unique identifier for the prediction, Task Id |
| data.model | string | Model ID used for the prediction |
| data.outputs | array | Array of URLs to the generated content (empty when status is not completed) |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.has_nsfw_contents | array | Array of boolean values indicating NSFW detection for each output |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |
Result Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Yes | - | Task ID |
Result Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction, the ID of the prediction to get |
| data.model | string | Model ID used for the prediction |
| data.outputs | string | Array of URLs to the generated content (empty when status is not completed). |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |