Developer documentation

The Dialt voice engine

Use Dialt's API and SDKs to build voice assistants, connect your tools, run evaluations and monitor conversations. To train a model on your data, contact our team.

SDKs

Choose your SDK

Keep persistent API keys on your backend. Browser and native apps connect with scoped session credentials.

For other languages and custom media stacks, use the WebSocket integration guide. See the Swift SDK’s validation notes for device coverage.

Using Pipecat? The Dialt-maintained Pipecat plugin (alpha) includes setup instructions, a minimal pipeline and supported features and limitations.

Recipes

Start from a working example

Dialt recipes are runnable application patterns built on the public SDKs. Each example includes its setup instructions. Your application owns its business rules and tool execution.

API reference

API schemas: OpenAPI · AsyncAPI. For coding agents: documentation index.

Pre-generate audio

Exact-text speech

Render fixed text as an audio file your application stores and plays itself. Call it from your backend with a persistent key. Dialt speaks exactly what you send and keeps no copy of the text or audio. Exact-text speech is available only through POST /v1/speech; realtime session keys and WebSocket speech frames do not provide this operation.

curl https://api.dialt.com/v1/speech \
  -H "Authorization: Bearer $DIALT_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: cue-7f3a9c21" \
  -d '{"voice": "us_female", "text": "Hold for 30 seconds, then rest 90 seconds."}' \
  -o cue.wav

The response is audio/wav: mono, 24 kHz, 16-bit PCM. Send exactly one of voice, a key from GET /v1/voices, or design, the ID of one of your published Voice Designs. A voice or design private to another account is rejected with invalid_voice or invalid_design. A design contributes only its voice and delivery. There are no model, provider or tier settings.

Evaluate and improve

Learn from conversations

Session and segment metrics.delivery and GET /v1/sessions/stats's delivery pool recording-aligned speaking delivery separately for assistant and user: speaking rate in words per minute, estimated articulation rate excluding pauses, and pause fraction. Rates use total words and total full-word span seconds across measured speech, so longer spans carry their actual weight. Coverage is explicit in aligned_segments and unavailable_segments; missing measurements are null, while measured pause-free speech has zero pause totals. The HTTP reference lists the full counts, durations and pause distribution.

Delivery covers ordinary uninterrupted English, Hindi, Portuguese, Spanish and Arabic speech with current complete alignment. Chinese characters are never reported as words per minute. Gaps at least 200 ms within speech are estimated acoustic pauses; between-turn gaps are excluded. Estimated articulation rate is a proxy and does not measure intelligibility. Older, stale or unavailable alignment contributes no delivery values. Response latency boundaries are unchanged.

Inspect transcripts, recordings and tool calls in Sessions. Use conversation evals to assess behavior and compare changes to your instructions and tools.

Start with a simulation recipe, or use the Python evals client to run your own cases.