curl --request POST \
--url https://api.eesi.ai/v1/speech/transcriptions/{session_id}/dubs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"consent_attested": true,
"source_language": "ar",
"target_language": "en"
}
'import requests
url = "https://api.eesi.ai/v1/speech/transcriptions/{session_id}/dubs"
payload = {
"consent_attested": True,
"source_language": "ar",
"target_language": "en"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({consent_attested: true, source_language: 'ar', target_language: 'en'})
};
fetch('https://api.eesi.ai/v1/speech/transcriptions/{session_id}/dubs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.eesi.ai/v1/speech/transcriptions/{session_id}/dubs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'consent_attested' => true,
'source_language' => 'ar',
'target_language' => 'en'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.eesi.ai/v1/speech/transcriptions/{session_id}/dubs"
payload := strings.NewReader("{\n \"consent_attested\": true,\n \"source_language\": \"ar\",\n \"target_language\": \"en\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.eesi.ai/v1/speech/transcriptions/{session_id}/dubs")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"consent_attested\": true,\n \"source_language\": \"ar\",\n \"target_language\": \"en\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eesi.ai/v1/speech/transcriptions/{session_id}/dubs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"consent_attested\": true,\n \"source_language\": \"ar\",\n \"target_language\": \"en\"\n}"
response = http.request(request)
puts response.read_body{}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Dub into another language
Dub the recording into another language in its speakers’ own voices: the dialogue is separated from the music and effects, the script adapted line by line to the time each speaker’s mouth moves, each voice cloned from a clean stretch of that speaker, and the new lines laid on the original bed. A video gets its picture back with the dub. Dubbing the same language again replaces that dub.
curl --request POST \
--url https://api.eesi.ai/v1/speech/transcriptions/{session_id}/dubs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"consent_attested": true,
"source_language": "ar",
"target_language": "en"
}
'import requests
url = "https://api.eesi.ai/v1/speech/transcriptions/{session_id}/dubs"
payload = {
"consent_attested": True,
"source_language": "ar",
"target_language": "en"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({consent_attested: true, source_language: 'ar', target_language: 'en'})
};
fetch('https://api.eesi.ai/v1/speech/transcriptions/{session_id}/dubs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.eesi.ai/v1/speech/transcriptions/{session_id}/dubs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'consent_attested' => true,
'source_language' => 'ar',
'target_language' => 'en'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.eesi.ai/v1/speech/transcriptions/{session_id}/dubs"
payload := strings.NewReader("{\n \"consent_attested\": true,\n \"source_language\": \"ar\",\n \"target_language\": \"en\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.eesi.ai/v1/speech/transcriptions/{session_id}/dubs")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"consent_attested\": true,\n \"source_language\": \"ar\",\n \"target_language\": \"en\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eesi.ai/v1/speech/transcriptions/{session_id}/dubs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"consent_attested\": true,\n \"source_language\": \"ar\",\n \"target_language\": \"en\"\n}"
response = http.request(request)
puts response.read_body{}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Your EESI API key, sk-eesi-....
Path Parameters
Body
A new dub of the recording, in the speakers' own voices.
The language to dub into, as an ISO 639-1 code such as en.
2 - 16The language spoken in the recording. Omitted, the transcript's detected language.
16You have the rights to this recording and to the voices in it. A dub speaks each line in a clone of its speaker's voice.
Names and terms in the recording, spelled as they should be (up to four words each). The transcriber listens for them and the script keeps them.
24Response
Successful Response
The response is of type Response Create Dub V1 Speech Transcriptions Session Id Dubs Post · object.