> This page is for version dev.
> For other versions, use one of these documentation indexes:
> - Latest (v1.5.1) (default): https://docs.nvidia.com/dynamo/latest/llms.txt
> - dev: https://docs.nvidia.com/dynamo/dev/llms.txt
> - v1.5.1: https://docs.nvidia.com/dynamo/v1.5.1/llms.txt
> - v1.5.0: https://docs.nvidia.com/dynamo/v1.5.0/llms.txt
> - v1.4.2: https://docs.nvidia.com/dynamo/v1.4.2/llms.txt
> - v1.4.1: https://docs.nvidia.com/dynamo/v1.4.1/llms.txt
> - v1.4.0: https://docs.nvidia.com/dynamo/v1.4.0/llms.txt
> - v1.3.0: https://docs.nvidia.com/dynamo/v1.3.0/llms.txt
> - v1.2.1: https://docs.nvidia.com/dynamo/v1.2.1/llms.txt
> - v1.2.0: https://docs.nvidia.com/dynamo/v1.2.0/llms.txt
> - v1.1.1: https://docs.nvidia.com/dynamo/v1.1.1/llms.txt
> - v1.1.0: https://docs.nvidia.com/dynamo/v1.1.0/llms.txt
> - v1.0.2: https://docs.nvidia.com/dynamo/v1.0.2/llms.txt
> - v1.0.1: https://docs.nvidia.com/dynamo/v1.0.1/llms.txt
> - v1.0.0: https://docs.nvidia.com/dynamo/v1.0.0/llms.txt
> - v0.9.1: https://docs.nvidia.com/dynamo/v-0-9-1/llms.txt
> - v0.9.0: https://docs.nvidia.com/dynamo/v-0-9-0/llms.txt
> - v0.8.1: https://docs.nvidia.com/dynamo/v-0-8-1/llms.txt
> - v0.8.0: https://docs.nvidia.com/dynamo/v-0-8-0/llms.txt
> - v0.7.1: https://docs.nvidia.com/dynamo/v-0-7-1/llms.txt
> - v0.7.0: https://docs.nvidia.com/dynamo/v-0-7-0/llms.txt

> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://docs.nvidia.com/dynamo/llms.txt. For full content including API reference and SDK examples, see https://docs.nvidia.com/dynamo/llms-full.txt.

# Voice Pipelines

NVIDIA Dynamo serves voice workloads through OpenAI-compatible endpoints. Use
separate automatic speech recognition (ASR), LLM, and text-to-speech (TTS) workers
for a cascaded pipeline, or a vLLM-Omni model for audio input and output.

## Endpoints

| Stage | Endpoint | Output |
| --- | --- | --- |
| Streaming ASR | `/v1/realtime` WebSocket with `session.type="transcription"` | Transcript events |
| LLM | `/v1/chat/completions` with `stream: true` | Text deltas |
| TTS | `/v1/audio/speech` | Audio chunks for supported models and formats |
| Audio-in/audio-out model | `/v1/realtime` WebSocket with `session.type="realtime"` | Text and audio events |

## Run a Pipeline

- **Nemotron Speech cascade on Kubernetes:** Follow the
  [deployment and smoke-test instructions](https://github.com/ai-dynamo/dynamo/tree/main/examples/nemotron_speech_cascaded_pipeline#deploy-on-kubernetes).
  The example deploys Nemotron ASR and Magpie TTS Speech NIMs with Dynamo adapters,
  plus a Nemotron LLM served by vLLM. ASR, LLM, and TTS run in separate pods.
  Follow the example's runtime-image requirements; it currently requires
  compatible source-built Dynamo images, not the published 1.5.0 images.
- **Separate vLLM/vLLM-Omni speech workers:** Use the
  [Voxtral realtime transcription launcher](https://github.com/ai-dynamo/dynamo/blob/main/examples/backends/vllm/launch/agg_realtime_transcription.sh)
  and [Qwen3-TTS launcher](https://github.com/ai-dynamo/dynamo/blob/main/examples/backends/vllm/launch/agg_omni_audio.sh)
  to exercise each endpoint independently before connecting them to an LLM.
- **Audio-in/audio-out with vLLM-Omni:** Run the
  [Qwen3-Omni realtime example](https://github.com/ai-dynamo/dynamo/blob/main/examples/backends/vllm/launch/agg_omni_realtime.sh).
  The launcher prints a client command that streams an audio file and saves the
  response audio. Each committed utterance is handled independently; this path
  does not preserve multi-turn conversation history.

The local launchers require a configured
[vLLM backend environment](/dynamo/dev/knowledge-base/modular-components/backends/v-llm/overview#installation),
with vLLM-Omni installed for the Omni examples.

For a cascaded voice agent, connect an application such as Pipecat to the three
stage endpoints. The application owns conversation history, turn detection,
interruptions, and orchestration; Dynamo serves and routes each stage. See
[external orchestration](https://github.com/ai-dynamo/dynamo/tree/main/examples/nemotron_speech_cascaded_pipeline#external-orchestration)
for client integration details. The deployment smoke test checks speech endpoints,
not a complete browser voice agent.

## Planned Work

[Incremental text input](https://github.com/ai-dynamo/dynamo/issues/14476) is under
development to overlap ASR with LLM prefill. Session recovery across worker
failures is a further goal. Neither capability is provided by the examples above.