Production-ready voice synthesis with streaming, multiple voices, speed control, and multi-format output. Authenticate with JWT or API keys, deploy in minutes.
Everything you need to add natural-sounding voice to your application.
Start hearing audio before generation completes. WebSocket and SSE streaming deliver chunks as they are synthesized - no waiting for the full result.
Choose from a curated set of neural voices, each with distinct character and tone. Pre-loaded at startup for instant response times.
Machine-to-machine authentication with ffv_ prefixed API keys.
No OIDC flow needed - create, list, and revoke keys via the API.
Choose your output format - WAV, MP3, or raw PCM. MP3 delivers smaller files for web and mobile use cases without sacrificing quality.
Adjust speech rate from 0.5x to 2.0x. Slow down for clarity or speed up for efficiency - per-request control via a single parameter.
Each organization gets a dedicated subdomain with isolated usage tracking. Tenant resolution happens at the edge - zero configuration needed.
Type something and hear it spoken. Requires an org subdomain for API access.
Three ways to synthesize speech - pick the one that fits your use case.
# WAV output (default) curl -X POST "https://acme.vocyon.fastflowtech.ai/v1/tts?text=Hello+world&voice=fantine" \ -H "Authorization: Bearer $TOKEN" \ --output speech.wav # MP3 output at 1.5x speed curl -X POST "https://acme.vocyon.fastflowtech.ai/v1/tts?text=Hello+world&voice=fantine&format=mp3&speed=1.5" \ -H "Authorization: Bearer $TOKEN" \ --output speech.mp3 # Using an API key instead of JWT curl -X POST "https://acme.vocyon.fastflowtech.ai/v1/tts?text=Hello+world&voice=fantine&format=mp3" \ -H "Authorization: Bearer ffv_your_api_key" \ --output speech.mp3
const source = new EventSource( `https://acme.vocyon.fastflowtech.ai/v1/tts/stream?text=${encodeURIComponent(text)}&voice=fantine` ); source.onmessage = (e) => { const data = JSON.parse(e.data); // data.type: 'start' | 'audio' | 'end' if (data.type === 'audio') playChunk(atob(data.data)); };
const ws = new WebSocket("wss://acme.vocyon.fastflowtech.ai/v1/ws/tts"); ws.onopen = () => ws.send(JSON.stringify({ text: "Hello world", voice: "fantine" })); ws.onmessage = (e) => { if (e.data instanceof Blob) playPCM(e.data); else console.log(JSON.parse(e.data)); };
| Method | Path | Description | Auth |
|---|---|---|---|
| GET | /health | Health check and model status | None |
| GET | /voices | List available voices | None |
| POST | /v1/tts | Synchronous TTS - returns WAV, MP3, or PCM. Params: format, speed |
JWT / API Key |
| GET | /v1/tts/stream | Streaming TTS via SSE. Params: format, speed |
JWT / API Key |
| WS | /v1/ws/tts | WebSocket streaming TTS. JSON field: speed |
JWT / API Key |
| POST | /v1/api-keys | Create API key. Param: name |
JWT |
| GET | /v1/api-keys | List API keys for org | JWT |
| DELETE | /v1/api-keys | Revoke API key. Param: name |
JWT |
| GET | /v1/usage | Current usage stats and limits | JWT / API Key |
Pay for what you use. No hidden fees, no minimum commitments.
For prototyping and small projects
For production applications
For high-volume and custom needs