> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rumik.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# build a voice agent with pipecat

> drop rumik into a pipecat pipeline with pipecat-rumik.

building a real-time voice bot? skip the WebSocket plumbing and use
[`pipecat-rumik`](https://pypi.org/project/pipecat-rumik/), our official
[pipecat](https://github.com/pipecat-ai/pipecat) TTS service. it drops rumik
straight into a pipecat pipeline with streaming audio, metrics, and interruption
handling already wired up.

```bash theme={null}
pip install pipecat-rumik
```

## pick a service

it ships two TTS services. pick one for your transport:

| service               | transport | best for                                                              |
| --------------------- | --------- | --------------------------------------------------------------------- |
| `RumikTTSService`     | WebSocket | interactive voice agents that need interruption-aware, streaming TTS. |
| `RumikHttpTTSService` | HTTP      | simpler request/response synthesis and batch-style flows.             |

## add it to a pipeline

settings map to the same request fields as the REST API.

```python theme={null}
import os
from pipecat_rumik import RumikTTSService

# muga: our more expressive voice
tts = RumikTTSService(
    api_key=os.environ["RUMIK_API_KEY"],
    gateway_url=os.environ["RUMIK_GATEWAY_URL"],
    settings=RumikTTSService.Settings(model="muga"),
)

# mulberry: our faster voice, steered by a description + preset speaker
tts = RumikTTSService(
    api_key=os.environ["RUMIK_API_KEY"],
    gateway_url=os.environ["RUMIK_GATEWAY_URL"],
    settings=RumikTTSService.Settings(
        model="mulberry",
        voice="ira",                # sent to Rumik as "speaker"
        description="a warm 30s indian voice, smooth timbre, conversational pacing, like a friendly narrator",
    ),
)

# Then drop `tts` into your Pipecat Pipeline alongside your STT + LLM services.
```

<Note>
  set `RUMIK_API_KEY` to a key from your dashboard and `RUMIK_GATEWAY_URL` to
  `https://silk-api.rumik.ai`. see the
  [PyPI package](https://pypi.org/project/pipecat-rumik/) for runnable
  voice-agent examples, settings, and event handlers.
</Note>

## settings

`RumikTTSSettings` is shared by `RumikTTSService.Settings` and
`RumikHttpTTSService.Settings`. it maps to rumik request fields:

| setting       | request field | notes                                                  |
| ------------- | ------------- | ------------------------------------------------------ |
| `model`       | `model`       | `muga` or `mulberry`.                                  |
| `voice`       | `speaker`     | optional. a named voice, e.g. `ira`.                   |
| `description` | `description` | required for `mulberry`. expressive voice description. |
| `temperature` | `temperature` | optional sampling temperature.                         |
| `top_p`       | `top_p`       | optional nucleus sampling value.                       |
| `top_k`       | `top_k`       | optional top-k sampling value.                         |

next: hand your coding agent the [rumik TTS skill](/agent-skill) so it integrates
all of this correctly on the first try.
