VibeVoice-Realtime-0.5B API Documentation
VibeVoice-Realtime-0.5B generate request - Request Code
POST https://gateway.pixazo.ai/vibevoice-realtime-0-5b-135/v1/vibevoice-realtime-0-5b-request HTTP/1.1
Content-Type: application/json
Cache-Control: no-cache
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY
{
"script": "Speaker 0: VibeVoice is now available on Fal. Isn't that right, Carter?\nSpeaker 1: That's right Frank, and it supports up to four speakers at once. Try it now!",
"speakers": [
{
"preset": "Frank [EN]"
},
{
"preset": "Carter [EN]"
}
],
"cfg_scale": 1.3
} import requests
import json
url = "https://gateway.pixazo.ai/vibevoice-realtime-0-5b-135/v1/vibevoice-realtime-0-5b-request"
headers = {
"Content-Type": "application/json",
"Cache-Control": "no-cache",
"Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
"script": "Speaker 0: VibeVoice is now available on Fal. Isn't that right, Carter?\nSpeaker 1: That's right Frank, and it supports up to four speakers at once. Try it now!",
"speakers": [
{
"preset": "Frank [EN]"
},
{
"preset": "Carter [EN]"
}
],
"cfg_scale": 1.3
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const url = 'https://gateway.pixazo.ai/vibevoice-realtime-0-5b-135/v1/vibevoice-realtime-0-5b-request';
const data = {
script: "Speaker 0: VibeVoice is now available on Fal. Isn't that right, Carter?\\nSpeaker 1: That's right Frank, and it supports up to four speakers at once. Try it now!",
speakers: [
{
preset: "Frank [EN]"
},
{
preset: "Carter [EN]"
}
],
cfg_scale: 1.3
};
fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Cache-Control': 'no-cache',
'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'
},
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
curl -X POST "https://gateway.pixazo.ai/vibevoice-realtime-0-5b-135/v1/vibevoice-realtime-0-5b-request" \
-H "Content-Type: application/json" \
-H "Cache-Control: no-cache" \
-H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY" \
--data-raw '{
"script": "Speaker 0: VibeVoice is now available on Fal. Isn't that right, Carter?\\nSpeaker 1: That\\'s right Frank, and it supports up to four speakers at once. Try it now!",
"speakers": [
{
"preset": "Frank [EN]"
},
{
"preset": "Carter [EN]"
}
],
"cfg_scale": 1.3
}'
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://gateway.pixazo.ai/vibevoice-realtime-0-5b-135/v1/vibevoice-realtime-0-5b-request";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
con.setRequestProperty("Cache-Control", "no-cache");
con.setRequestProperty("Ocp-Apim-Subscription-Key", "YOUR_SUBSCRIPTION_KEY");
con.setDoOutput(true);
String jsonInputString = "{" + "\n" +
" \"script\": \"Speaker 0: VibeVoice is now available on Fal. Isn't that right, Carter?\\nSpeaker 1: That's right Frank, and it supports up to four speakers at once. Try it now!\" ," + "\n" +
" \"speakers\": [" + "\n" +
" {" + "\n" +
" \"preset\": \"Frank [EN]\"" + "\n" +
" }," + "\n" +
" {" + "\n" +
" \"preset\": \"Carter [EN]\"" + "\n" +
" }" + "\n" +
" ]," + "\n" +
" \"cfg_scale\": 1.3" + "\n" +
"}";
try (OutputStream os = con.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
int responseCode = con.getResponseCode();
System.out.println("Response Code: " + responseCode);
}
}
"Speaker 0: VibeVoice is now available on Fal. Isn't that right, Carter?\nSpeaker 1: That's right Frank, and it supports up to four speakers at once. Try it now!",
'speakers' => [
[
'preset' => 'Frank [EN]'
],
[
'preset' => 'Carter [EN]'
]
],
'cfg_scale' => 1.3
];
$json = json_encode($data);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Cache-Control: no-cache',
'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY'
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo "HTTP Code: " . $httpCode . "\n";
echo "Response: " . $response . "\n";
?> Output
Successful API response:
{
"status": "IN_QUEUE",
"request_id": "a1b2c3d4-5678-90ef-1234-567890abcdef",
"estimated_wait_seconds": 15
} Request Body - VibeVoice-Realtime-0.5B generate request
Parameters for /vibevoice-realtime-0-5b-request:
| Parameter | Required | Type | Description |
|---|---|---|---|
| script | Yes | string | The dialogue script with speaker labels (e.g., "Speaker 0: Hello..."). Each line must begin with "Speaker X:" where X is a zero-based index matching the speakers array. |
| speakers | Yes | array of objects | Array of speaker configurations. Each object must contain a `preset` field identifying the voice. |
| speakers[].preset | Yes | string | The predefined voice preset to use for each speaker. Supported presets include: "Frank [EN]", "Carter [EN]", and other Microsoft TTS voices. Must match available voice identifiers. |
| cfg_scale | No | number | Classifier-free guidance scale, controls how closely the output adheres to the input script and speaker intent. Higher values increase fidelity but may reduce naturalness. |
Example Request - VibeVoice-Realtime-0.5B generate request
JSON
{
"script": "Speaker 0: VibeVoice is now available on Fal. Isn't that right, Carter?\nSpeaker 1: That's right Frank, and it supports up to four speakers at once. Try it now!",
"speakers": [
{
"preset": "Frank [EN]"
},
{
"preset": "Carter [EN]"
}
],
"cfg_scale": 1.3
} Response - VibeVoice-Realtime-0.5B generate request
JSON
{
"status": "IN_QUEUE",
"request_id": "a1b2c3d4-5678-90ef-1234-567890abcdef",
"estimated_wait_seconds": 15
} Request Headers
| Header | Description |
|---|---|
| Content-Type | application/json |
| Cache-Control | no-cache |
| Ocp-Apim-Subscription-Key | API key for authentication |
Response Handling
The VibeVoice-Realtime-0.5B returns specific HTTP status codes and response bodies to indicate the success or failure of a request. Developers should implement error handling in their applications to manage these responses effectively.
Common Status Codes and Responses
| Status Code | Description | Response Body |
|---|---|---|
| 200 | Success - The request was successfully processed. | { "success": true, ... } |
| 400 | Bad Request - The request contains invalid parameters or missing fields. | { "error": "Invalid request parameters" } |
| 401 | Unauthorized - The provided subscription key is missing or invalid. | { "error": "Invalid or missing authentication" } |
| 403 | Forbidden - The subscription does not have access to this API or action. | { "error": "Access denied for this operation" } |
| 404 | Not Found - The requested resource or endpoint could not be found. | { "error": "Endpoint not found" } |
| 429 | Too Many Requests - The request rate limit has been exceeded. | { "error": "Rate limit exceeded, please retry later" } |
| 500 | Internal Server Error - An unexpected error occurred on the server. | { "error": "An unexpected error occurred, please try again later" } |
Example Error Response
{
"error": "Invalid parameters"
} Retrieving Results
After submitting your request, use this endpoint to check status and retrieve results.
Endpoint
POST https://gateway.pixazo.ai/vibevoice-realtime-0-5b-135/v1/vibevoice-realtime-0-5b-request-result
Request Body
{ "request_id": "a1b2c3d4-5678-90ef-1234-567890abcdef" } POST https://gateway.pixazo.ai/vibevoice-realtime-0-5b-135/v1/vibevoice-realtime-0-5b-request-result HTTP/1.1
Content-Type: application/json
Cache-Control: no-cache
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY
{
"request_id": "a1b2c3d4-5678-90ef-1234-567890abcdef"
} import requests
import json
url = "https://gateway.pixazo.ai/vibevoice-realtime-0-5b-135/v1/vibevoice-realtime-0-5b-request-result"
headers = {
"Content-Type": "application/json",
"Cache-Control": "no-cache",
"Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
"request_id": "a1b2c3d4-5678-90ef-1234-567890abcdef"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const url = 'https://gateway.pixazo.ai/vibevoice-realtime-0-5b-135/v1/vibevoice-realtime-0-5b-request-result';
const data = {
request_id: "a1b2c3d4-5678-90ef-1234-567890abcdef"
};
fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Cache-Control': 'no-cache',
'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'
},
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
curl -X POST "https://gateway.pixazo.ai/vibevoice-realtime-0-5b-135/v1/vibevoice-realtime-0-5b-request-result" \
-H "Content-Type: application/json" \
-H "Cache-Control: no-cache" \
-H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY" \
--data-raw '{
"request_id": "a1b2c3d4-5678-90ef-1234-567890abcdef"
}'
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://gateway.pixazo.ai/vibevoice-realtime-0-5b-135/v1/vibevoice-realtime-0-5b-request-result";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
con.setRequestProperty("Cache-Control", "no-cache");
con.setRequestProperty("Ocp-Apim-Subscription-Key", "YOUR_SUBSCRIPTION_KEY");
con.setDoOutput(true);
String jsonInputString = "{" + "\n" +
" \"request_id\": \"a1b2c3d4-5678-90ef-1234-567890abcdef\"" + "\n" +
"}";
try (OutputStream os = con.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
int responseCode = con.getResponseCode();
System.out.println("Response Code: " + responseCode);
}
}
'a1b2c3d4-5678-90ef-1234-567890abcdef'
];
$json = json_encode($data);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Cache-Control: no-cache',
'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY'
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo "HTTP Code: " . $httpCode . "\n";
echo "Response: " . $response . "\n";
?> Ready to generate VibeVoice-Realtime-0.5B API assets?
Start with an API key, then automate your pipeline.
