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

# Chariot Speech-to-Text

> ChariotSTTService transcribes Indian-language, English and code-mixed speech in real time over Chariot's WebSocket API.

> [!NOTE]
>
> **Community-maintained integration.** This service is built and
> maintained by
> [Chariot-AI](https://github.com/Chariot-AI)
> . Pipecat does not test or officially support it. Please report issues and
> request changes on the
> [source repository](https://github.com/Chariot-AI/pipecat-chariot)
> . Learn more about
> [community integrations](https://docs.pipecat.ai/api-reference/server/services/community-integrations.md)
> .

## Overview

`ChariotSTTService` transcribes speech in real time using
[Chariot](https://chariot.in), for English and Indian languages, including
speech that mixes them.

The service streams the user's audio over one WebSocket and pushes interim
transcripts while they speak and a final transcript per utterance. By default
Pipecat's VAD decides when an utterance ends, and the transcript that answers is
marked final, so the turn ends without waiting out a timeout.

> [card] [Source Repository](https://github.com/Chariot-AI/pipecat-chariot)
>
> Package source, the voice agent example, and issue tracker

> [card] [PyPI Package](https://pypi.org/project/pipecat-chariot/)
>
> The `pipecat-chariot` package on PyPI

> [card] [Chariot](https://docs.chariot.in/api-reference/introduction)
>
> API reference and supported languages

> [card] [API Keys](https://platform.chariot.in)
>
> Create an account and manage your Chariot API keys

## Installation

```bash theme={null}
uv add pipecat-chariot
```

## Prerequisites

1. Create an account at [platform.chariot.in](https://platform.chariot.in). New accounts include free credits.
2. Copy an API key from the console and set `CHARIOT_API_KEY`.

## Configuration

**api\_key** `str` *required*

Chariot API key.

**sample\_rate** `int` (default: None)

Input rate in Hz, one of 8000, 16000, 22050, 24000, 32000, 44100 or 48000.
Defaults to the pipeline's input rate.

**commit\_strategy** `str` (default: manual)

`manual` finalizes each utterance when Pipecat's VAD hears the user stop.
`vad` lets Chariot's server side voice detection split utterances.

**vad\_threshold** `float` (default: None)

Server VAD speech threshold, 0.05 to 0.95. `commit_strategy="vad"` only.

**silence\_duration\_ms** `int` (default: None)

Server VAD silence that ends an utterance, 100 to 10000 ms. `commit_strategy="vad"` only.

**min\_speech\_duration\_ms** `int` (default: None)

Server VAD minimum speech length, 0 to 5000 ms. `commit_strategy="vad"` only.

**prefix\_padding\_ms** `int` (default: None)

Server VAD audio kept before detected speech, 0 to 2000 ms. `commit_strategy="vad"` only.

**ttfs\_p99\_latency** `float` (default: None)

P99 seconds from end of speech to final transcript, used to time turn ends.
Defaults to 0.6 for `balanced` and 0.8 for `high_accuracy`, plus the silence
window with `vad`.

**include\_timestamps** `bool` (default: False)

Word timestamps, in each transcription frame's `result["words"]`.

### Settings

Pass these through `ChariotSTTService.Settings(...)`. Updating them with
`STTUpdateSettingsFrame` reconnects.

| Parameter | Type | Default | Description |
| - | - | - | - |
| `language` | `Language` | detected | English, Hindi, Bengali, Gujarati, Kannada, Malayalam, Marathi, Odia, Punjabi, Sanskrit, Tamil or Telugu. |
| `mode` | `str` | `balanced` | `high_accuracy` is more accurate; interim transcripts update less often and the final one takes about 0.15 s longer. |
| `style` | `str` | `codemix` | `codemix` keeps English words in Latin script; `native` uses the language's own script. |
| `model` | `str` | `chariot-1-asr-realtime` | The real-time model. |

## Usage

```python theme={null}
import os

from pipecat.transcriptions.language import Language
from pipecat_chariot import ChariotSTTService

stt = ChariotSTTService(
    api_key=os.getenv("CHARIOT_API_KEY"),
    settings=ChariotSTTService.Settings(language=Language.HI),
)
```

> [!NOTE]
>
> Speech-to-text is billed per second of audio sent. A voice agent streams audio
> for the whole call, silence included, so a call is billed for its full length.

## Compatibility

Tested with Pipecat v1.15.0 (`pipecat-ai>=1.13,<2`). See the
[changelog](https://github.com/Chariot-AI/pipecat-chariot/blob/main/CHANGELOG.md)
for updates.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.