Murf Falcon / Falcon 2
Budget real-time TTS marketed at 1 cent per minute with sub-100 ms time-to-first-audio for Falcon 2, geo-routed WebSocket hosts in 11 regions and 35+ languages.
Overview
Best for: Price-driven multilingual voice agents, especially in India and other regions served by Murf's regional hosts.
At a glance
Falcon 2 sub-100 ms TTFA (docs); Falcon ~130 ms, marketing says 55 ms model latency. Price: vendor headline 1 cent per minute; $10/1M is from third-party trackers. 35+ languages. Concurrency 5 on US-East, 2 in other regions. Emotion control means voice styles. EU region available.
Text
WAV or PCM (16-bit LE), example sample_rate 24000, MONO
35+ (vendor)
150+ voices; enterprise voice cloning
Vendor: Falcon 55 ms model latency / 130 ms TTFA; Falcon 2 sub-100 ms TTFA.
global, us-east, us-west, in, ca, kr, me, jp, au, eu-central, uk, sa-east
Not verified.
Features
- input streaming with contexts
- predictive chunking and buffer controls
- word timestamps (add_word_timestamps)
- regional hosts
- voice styles
Pricing
| What | Price | Unit |
|---|---|---|
| Falcon / Falcon 2 | $0.01 per minute | per minute (vendor headline) |
| Gen2 | $0.03 (third-party) | per 1K characters |
Vendor headline 1 cent/min; 900 chars x $0.01/1K = $0.009
Free tier: Third-party sources conflict ($10 monthly credit vs 100K-character trial)
Source: murf.ai
Setup
- Get an API key from the Murf API dashboard.
- Connect to wss://global.api.murf.ai/v1/speech/stream-input?api-key=...&model=falcon-2&format=PCM&sample_rate=24000.
- Send a voice_config frame, then text frames with end:true on the last one.
- Decode base64 'audio' fields until 'final'.
Endpoint
wss://global.api.murf.ai/v1/speech/stream-input
Authentication
api-key query parameter (invalid key closes with code 1008 after upgrade)
Quick start javascript
// npm i ws
import WebSocket from "ws";
import fs from "fs";
const q = new URLSearchParams({ "api-key": process.env.MURF_API_KEY, model: "falcon-2",
sample_rate: "24000", channel_type: "MONO", format: "PCM" });
const ws = new WebSocket(`wss://global.api.murf.ai/v1/speech/stream-input?${q}`);
const out = fs.createWriteStream("out_24k_s16le.pcm");
ws.on("open", () => {
ws.send(JSON.stringify({ context_id: "t1",
voice_config: { voiceId: "YOUR_VOICE_ID", locale: "en-US", style: "Conversation" } }));
ws.send(JSON.stringify({ context_id: "t1", text: "Hello there. " }));
ws.send(JSON.stringify({ context_id: "t1", text: "Thanks for calling.", end: true }));
});
ws.on("message", (raw) => {
const m = JSON.parse(raw.toString());
if (m.audio) out.write(Buffer.from(m.audio, "base64"));
if (m.final) ws.close();
});
ws.on("close", () => out.end());
Written from the current docs. Check the vendor's SDK version before you ship.
Warnings
Very low default concurrency outside US-East
Only 2 concurrent streams on non-US-East regions (5 on US-East). The cheap per-minute price does not help if calls queue; ask Murf for limits before launch.
API key in the URL
The documented auth puts the key in a query parameter, which can leak into proxy and access logs. Keep it server-side only.
Settings must be top-level
predictive_chunking, min_buffer_size, max_buffer_delay_in_ms and add_word_timestamps nested inside voice_config fail silently.
Latency claims differ by page
Marketing says 55 ms model latency; docs say ~130 ms (Falcon) and ~100 ms (Falcon 2) TTFA. Benchmark from your region.
Pricing page did not render
murf.ai/api/pricing returned no readable prices; the 1 cent/min figure is from the Falcon marketing page.
Plus 12 warnings that apply to all text-to-speech, streaming APIs. See category warnings.
Limits
- Streaming concurrency: 5 on US-East, 2 on all other regions (global router follows regional limits)
- Up to 10x your concurrency in open WebSocket connections
- Idle sessions closed after 3 minutes
Models and products
| Name | Status |
|---|---|
| falcon-2 (query param model=falcon-2) | GA |
| FALCON | GA |
| Gen2 | GA |
Docs and sources
Docs
Sources used
- murf.ai/falcon
- murf.ai/api/docs/text-to-speech/web-sockets
- costbench.com/software/voice-apis/murf-api/
Per-character pricing and free tier (third-party); full sample-rate list; whether model=FALCON is accepted on the socket.