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:

ParameterRequiredTypeDescription
scriptYesstringThe 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.
speakersYesarray of objectsArray of speaker configurations. Each object must contain a `preset` field identifying the voice.
speakers[].presetYesstringThe 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_scaleNonumberClassifier-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

HeaderDescription
Content-Typeapplication/json
Cache-Controlno-cache
Ocp-Apim-Subscription-KeyAPI 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 CodeDescriptionResponse Body
200Success - The request was successfully processed.{ "success": true, ... }
Bad Request - The request contains invalid parameters or missing fields.{ "error": "Invalid request parameters" }
401Unauthorized - The provided subscription key is missing or invalid.{ "error": "Invalid or missing authentication" }
403Forbidden - The subscription does not have access to this API or action.{ "error": "Access denied for this operation" }
404Not Found - The requested resource or endpoint could not be found.{ "error": "Endpoint not found" }
Too Many Requests - The request rate limit has been exceeded.{ "error": "Rate limit exceeded, please retry later" }
500Internal 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.