60dB Realtime: Voice agents that listen, think and answer on one socket
60dB Realtime · OpenAI-compatible speech-to-speech
Stream the caller's voice in and get spoken replies back. Speech recognition, turn-taking, the LLM and voice run together on the server, with barge-in and function calling built in. Already on OpenAI Realtime? Change the URL, the model and the key.
- per connected minute
- $0.02
- per 1M LLM tokens
- $0.50
- WebSocket for the whole turn
- 1
- values to change from OpenAI
- 3
Tuned as one system, not three APIs stitched together
Each turn runs through our own models inside the session, so there is no hand-off between vendors to add delay.
01 · Hear
60dB Garuda
Streams speech to text as the caller talks, with noise reduction on by default.
02 · Decide
Turn detection
Server VAD or semantic VAD ends the turn; talking over the reply interrupts it.
03 · Think
60dB Vyas
Writes the reply and calls your tools, with optional memory and knowledge context.
04 · Speak
60dB Kaak
Streams the reply as audio in any 60db voice, including your cloned voices.
An OpenAI-compatible Realtime API
Same events, same session shape, same tool definitions. Point your existing client at 60db and keep your handlers.
Migrate from the OpenAI SDKimport { RealtimeAgent, RealtimeSession, OpenAIRealtimeWebSocket } from "@openai/agents-realtime";
const agent = new RealtimeAgent({
name: "Assistant",
instructions: "You are a friendly voice assistant.",
});
const session = new RealtimeSession(agent, {
model: "60db-realtime-v1-mini",
transport: new OpenAIRealtimeWebSocket({ url: "wss://api.60db.ai/v1/realtime" }),
});
// ek_ key minted on your server: POST https://api.60db.ai/v1/realtime/client_secrets
await session.connect({ apiKey: ephemeralKey });| Setting | OpenAI | 60db |
|---|---|---|
| Base URL | wss://api.openai.com/v1/realtime | wss://api.60db.ai/v1/realtime |
| Model | gpt-realtime | 60db-realtime-v1-mini |
| Key | OPENAI_API_KEY | 60db API key (sk_…) |
Built for real calls
Barge-in that ignores echo
Users interrupt mid-sentence. The server checks the words first, so the agent's own voice, coughs and “uh-huh” don't cut it off.
Function tools
Define tools in the session. The model calls them, your code runs them, and the spoken answer continues on the same socket.
Browser-safe keys
Mint short-lived ek_ keys on your server so a web page can connect without ever seeing your sk_ key.
Phone-ready audio
24 kHz PCM for apps and browsers, 8 kHz μ-law and A-law for telephony, in both directions.
Memory and knowledge
Turn on Smart Memory to recall past calls with the same user, or point a session at your document collections.
Fillers that hide latency
An optional acknowledgement, such as “जी, एक सेकंड”, plays while a longer answer is written.
Mixed-language speech
Transcribe several languages in one session. English and Hindi are on by default, and replies stay in the user's language.
Noise reduction by default
Speech is cleaned up before recognition, which helps on phone lines and speakerphones. Turn it off with one field.
Details: turn detection and barge-in, function tools, browser keys, memory, knowledge and fillers.
Priced per minute, not per leg
Speech-to-text and voice are included in the minute. Time is charged in 60-second ticks and prorated per second at close, from your workspace balance. A 10-minute call costs about $0.20 plus tokens.
See all pricing| Connected minute (speech-to-text and voice included) | $0.02 / min |
| LLM tokens, input and output | $0.50 / 1M tokens |
| Memory or knowledge lookup that adds context to a reply | $0.0003 / lookup |
