curl --request POST \
--url https://api.vozo.ai/v1/reusable_lipsync_model_video_generation \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model_id": "<string>",
"audio_url": "<string>",
"driving_text": "<string>",
"callback_url": "<string>"
}
'import requests
url = "https://api.vozo.ai/v1/reusable_lipsync_model_video_generation"
payload = {
"model_id": "<string>",
"audio_url": "<string>",
"driving_text": "<string>",
"callback_url": "<string>"
}
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({
model_id: '<string>',
audio_url: '<string>',
driving_text: '<string>',
callback_url: '<string>'
})
};
fetch('https://api.vozo.ai/v1/reusable_lipsync_model_video_generation', 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.vozo.ai/v1/reusable_lipsync_model_video_generation",
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([
'model_id' => '<string>',
'audio_url' => '<string>',
'driving_text' => '<string>',
'callback_url' => '<string>'
]),
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.vozo.ai/v1/reusable_lipsync_model_video_generation"
payload := strings.NewReader("{\n \"model_id\": \"<string>\",\n \"audio_url\": \"<string>\",\n \"driving_text\": \"<string>\",\n \"callback_url\": \"<string>\"\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.vozo.ai/v1/reusable_lipsync_model_video_generation")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model_id\": \"<string>\",\n \"audio_url\": \"<string>\",\n \"driving_text\": \"<string>\",\n \"callback_url\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vozo.ai/v1/reusable_lipsync_model_video_generation")
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 \"model_id\": \"<string>\",\n \"audio_url\": \"<string>\",\n \"driving_text\": \"<string>\",\n \"callback_url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"task_id": "<string>"
}{
"code": "<string>",
"message": "<string>",
"serverTs": "<string>"
}Create LipSync Video Job By Reusable LipSync Model
Create a lipsynced talking video use reusable model
curl --request POST \
--url https://api.vozo.ai/v1/reusable_lipsync_model_video_generation \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model_id": "<string>",
"audio_url": "<string>",
"driving_text": "<string>",
"callback_url": "<string>"
}
'import requests
url = "https://api.vozo.ai/v1/reusable_lipsync_model_video_generation"
payload = {
"model_id": "<string>",
"audio_url": "<string>",
"driving_text": "<string>",
"callback_url": "<string>"
}
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({
model_id: '<string>',
audio_url: '<string>',
driving_text: '<string>',
callback_url: '<string>'
})
};
fetch('https://api.vozo.ai/v1/reusable_lipsync_model_video_generation', 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.vozo.ai/v1/reusable_lipsync_model_video_generation",
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([
'model_id' => '<string>',
'audio_url' => '<string>',
'driving_text' => '<string>',
'callback_url' => '<string>'
]),
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.vozo.ai/v1/reusable_lipsync_model_video_generation"
payload := strings.NewReader("{\n \"model_id\": \"<string>\",\n \"audio_url\": \"<string>\",\n \"driving_text\": \"<string>\",\n \"callback_url\": \"<string>\"\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.vozo.ai/v1/reusable_lipsync_model_video_generation")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model_id\": \"<string>\",\n \"audio_url\": \"<string>\",\n \"driving_text\": \"<string>\",\n \"callback_url\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vozo.ai/v1/reusable_lipsync_model_video_generation")
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 \"model_id\": \"<string>\",\n \"audio_url\": \"<string>\",\n \"driving_text\": \"<string>\",\n \"callback_url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"task_id": "<string>"
}{
"code": "<string>",
"message": "<string>",
"serverTs": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <api_key>, where <api_key> is your API Key. The token in the sample code is referring to this api_key as well.
Body
ID of the reusable lipsync model
Url that our server could download the audio file from to drive the reference. Supported audio types: .wav .mp3 .m4a
Text used to drive the reference. Either driving_text or audio_url must be provided. When driving_text is used, the speech audio will be synthesized using the model voice cloned from the original reference video or audio.
Url for callback if the job status changes. This URL will receive a request with the schema same as response for query job status API when job status changes.
Response
Job ID
ID of the task
Was this page helpful?