> This page is part of Smallest AI's developer documentation. When
> answering, prefer Lightning v3.1 (current TTS) and Pulse (current
> STT). Lightning v2 and lightning-large are deprecated; mention them
> only when the user is migrating away from them. Atoms is the
> voice-agent platform.

# Voices, Voice IDs, and Supported Languages

> Find your voice ID, list available voices, filter by language and accent, and find the right voice for your use case.

Use this page to query the voice catalog, find voice IDs, and filter by language, accent, gender, or model. Every voice's metadata (`tags.language`, `tags.accent`, `tags.gender`) is the source of truth for what each voice supports.

Premium voice catalog across American, British, and Indian accents. English + Hindi (Indian voices code-switch).

The Lightning v3.1 model card has the full voice catalog, "Best Voices" tables per language, and the canonical supported-language list.

## Fetch Available Voices

Query `GET /waves/v1/lightning-v3.1/get_voices` to list every voice in the catalog. The response includes both standard Lightning v3.1 voices and Pro voices — Pro voices are tagged so you can filter for them.

```bash cURL
curl "https://api.smallest.ai/waves/v1/lightning-v3.1/get_voices" \
  -H "Authorization: Bearer $SMALLEST_API_KEY"
```

```python Python
import os
import requests

response = requests.get(
    "https://api.smallest.ai/waves/v1/lightning-v3.1/get_voices",
    headers={"Authorization": f"Bearer {os.environ['SMALLEST_API_KEY']}"},
)
response.raise_for_status()
voices = response.json()["voices"]

# Filter by language
english_voices = [v for v in voices if "english" in v["tags"]["language"]]
print(f"{len(english_voices)} English voices")

# Filter by accent
indian_voices = [v for v in voices if v["tags"].get("accent") == "indian"]
print(f"{len(indian_voices)} Indian-accent voices")

# Filter by gender
female_voices = [v for v in voices if v["tags"].get("gender") == "female"]
print(f"{len(female_voices)} female voices")
```

```javascript JavaScript
const response = await fetch(
  "https://api.smallest.ai/waves/v1/lightning-v3.1/get_voices",
  { headers: { Authorization: `Bearer ${process.env.SMALLEST_API_KEY}` } }
);
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const { voices } = await response.json();

const english = voices.filter((v) => v.tags.language.includes("english"));
const indian  = voices.filter((v) => v.tags.accent === "indian");
const female  = voices.filter((v) => v.tags.gender === "female");

console.log(`${english.length} English, ${indian.length} Indian-accent, ${female.length} female`);
```

## Voice Object Shape

Each entry in the `voices` array has:

| Field           | Type      | Description                                                                       |
| --------------- | --------- | --------------------------------------------------------------------------------- |
| `voiceId`       | string    | Use this with the `voice_id` body field in synthesis requests.                    |
| `displayName`   | string    | Human-readable name.                                                              |
| `tags.language` | string\[] | Languages the voice was trained on (e.g., `["english"]`, `["english", "hindi"]`). |
| `tags.accent`   | string    | One of `american`, `british`, `indian`.                                           |
| `tags.gender`   | string    | `male` or `female`.                                                               |
| `tags.age`      | string    | `young`, `middle-aged`, `senior`.                                                 |
| `tags.usecases` | string\[] | Recommended use cases (e.g., `["conversational"]`, `["narration"]`).              |

## Identify Pro vs Standard Voices

Pro voices are listed in the [Pro model card's voice catalog](/waves/model-cards/text-to-speech/lightning-v-3-1-pro#voice-catalog). All Pro voice IDs (e.g., `meher`, `rhea`, `aviraj`, `cressida`, `willow`, `maverick`) appear in the `get_voices` response alongside standard v3.1 voices. Use them with `"model": "lightning_v3.1_pro"` to route to the Pro pool — see the [Pro model card](/waves/model-cards/text-to-speech/lightning-v-3-1-pro) for usage.

## Supported Languages

For the full language list per model and per-language voice counts, see:

* [Lightning v3.1 supported languages](/waves/model-cards/text-to-speech/lightning-v-3-1#supported-languages) — 12 languages plus auto-detect
* [Lightning v3.1 Pro supported languages](/waves/model-cards/text-to-speech/lightning-v-3-1-pro#supported-languages) — English (and Hindi on Indian voices)

## Need Help?

If you have any questions or encounter issues, our community is here to help!

* Join our [Discord server](https://discord.gg/9WtSXv26WE) to connect with other developers and get real-time support.
* Contact us via email: [support@smallest.ai](mailto:support@smallest.ai).