> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://murf.ai/api/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://murf.ai/api/docs/_mcp/server.

# Languages

> Murf Speech to Text supports English (India) and 11 Indian languages, with automatic language detection.

Set the language with the `language` query parameter when you connect:

```
wss://in.api.murf.ai/v1/transcription/stream-input?api_key=YOUR_API_KEY&language=ta
```

## Supported languages

| Language             | `language` value |
| -------------------- | ---------------- |
| English (India)      | `en_IN`          |
| Assamese             | `as`             |
| Bengali              | `bn`             |
| Gujarati             | `gu`             |
| Hindi                | `hi`             |
| Kannada              | `kn`             |
| Malayalam            | `ml`             |
| Marathi              | `mr`             |
| Odia                 | `or`             |
| Punjabi              | `pa`             |
| Tamil                | `ta`             |
| Telugu               | `te`             |
| Detect automatically | `auto` (default) |

Each value also accepts the India region, for example `hi_IN` or `en-IN`. Other regions are rejected.

## Automatic detection

If you set `language=auto` or omit the parameter, the model detects the language from the audio, choosing from every supported language.

To detect from a smaller set, pass a comma-separated list. The model then chooses only from the languages in the list:

```
wss://in.api.murf.ai/v1/transcription/stream-input?api_key=YOUR_API_KEY&language=hi,en_IN
```

A single value sets the language instead of detecting it.

Transcripts do not include the detected language. If your application needs to know it, for example to choose a matching voice for the reply, set `language` explicitly.

Set `language` explicitly whenever you know it.

## Output script

Transcripts are returned in each language's native script. For example, Hindi is returned in Devanagari:

```json
{ "transcript": "मेरा नाम मर्फ़ है" }
```

### Mixed-language speech

When a speaker mixes languages, for example Hindi with English words (Hinglish), each word is written in the script of its own language. The transcript therefore contains mixed scripts: Devanagari for Hindi words and Latin for English words.

### Numbers

By default, numbers are written as words, not digits. For example, fifty thousand spoken in Hindi is transcribed as पचास हज़ार, not `50000`. Convert to digits in your application if you need them, for example before passing an amount to a payment tool, or turn on [text formatting](#text-formatting) for Hindi and English (India).

## Text formatting

Set `text_formatting=true` when you connect to format Hindi and English (India) transcripts. Numbers and similar terms are rewritten in written form, so they are easier to pass to your application.

```
wss://in.api.murf.ai/v1/transcription/stream-input?api_key=YOUR_API_KEY&language=hi&text_formatting=true
```

Text formatting applies only to Hindi and English (India). For other languages, and when the parameter is omitted or `false`, transcripts are returned without formatting.

## Changing language

The language is fixed for the life of the connection. To transcribe in a different language, open a new connection.