Deploy Text-to-Speech (Bulbul v3)
Deploy Text-to-Speech (Bulbul v3)
Deploy Bulbul v3 as a SageMaker endpoint in your own account. This guide covers a real-time endpoint end to end with boto3, then server-side streaming (SSE) and bidirectional for lower latency. The full, runnable notebook lives in sarvamai/amazon-sagemaker-examples.
Model identifier. In API requests you pass model: bulbul:v3 — it is the only accepted value (bulbul:v3-beta and v2 are rejected). See the API reference.
Bulbul v3 self-hosted supports real-time (InvokeEndpoint), server-side streaming (SSE) (InvokeEndpointWithResponseStream), bidirectional (InvokeEndpointWithBidirectionalStream), and batch transform. Use SSE or bidirectional for long text or low-latency playback.
Prerequisites
Complete Get started on SageMaker first: subscribe to the Bulbul v3 listing, copy your model package ARN for your region, and have an execution role ARN ready. Read the endpoint’s API reference carefully before you integrate — the request contract is enforced by the container.
Recommended instance
Deploy on ml.g6e.xlarge (1× NVIDIA L40S). Scale concurrency by adding instances or raising WEB_CONCURRENCY — not by choosing a larger single-GPU instance (vCPU/RAM don’t change throughput). See Configure & tune for the serve-ceiling knobs.
1. Create the endpoint
2. Invoke it
Real-time — JSON in, base64 audio out:
Server-side streaming (SSE) — note "stream": True in the body (the flag lives in the payload, not an API parameter):
Bidirectional — see the repo notebook text-to-speech/bulbul-v3/bulbul-v3-text-to-speech-Model.ipynb for the full HTTP/2 SigV4 client (aws-sdk-sagemaker-runtime-http2), including the config → text → flush frame loop.
See the full request and response schema in the Text-to-Speech API reference.
Clean up
GPU endpoints bill by the hour. Delete resources you’re not using: