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

# List TTS Voices

> List available Google Cloud Text-to-Speech voices

## Overview

Retrieve the list of available Text-to-Speech voices provided by Google Cloud, so you can pick a specific `voice_name` when calling the [`/tts`](/api-reference/tts/basic) endpoint.

<Endpoint method="get" url="/tts/voices" />

## Query Parameters

<ParamField query="language" type="string" optional>
  Optional language filter (e.g. `en`, `es`, `fr`). When provided, only voices that support this language are returned.
</ParamField>

## Example Request

```bash theme={null}
curl -X GET "https://api.gistmag.co.uk/tts/voices?language=en"
```

## Response

<ResponseField name="voices" type="array">
  Array of voice objects
</ResponseField>

<ResponseField name="voices[].name" type="string">
  The unique voice identifier (use this value as `voice_name` in the `/tts` endpoint). This is the technical voice code (e.g., `en-US-Neural2-F`).
</ResponseField>

<ResponseField name="voices[].friendly_name" type="string">
  A human-readable name for the voice (e.g., `US English Neural2 (Female)`). Use this for display purposes in your UI.
</ResponseField>

<ResponseField name="voices[].language_codes" type="string[]">
  List of BCP-47 language codes supported by this voice (e.g. `["en-US"]`)
</ResponseField>

<ResponseField name="voices[].ssml_gender" type="string">
  Voice gender as defined by Google Cloud (`MALE`, `FEMALE`, `NEUTRAL`)
</ResponseField>

<ResponseField name="voices[].natural_sample_rate_hertz" type="number">
  Natural sample rate of the voice in Hz
</ResponseField>

<ResponseField name="voices[].model" type="string" optional>
  The voice model type (e.g., `Neural2`, `Neural`, `Studio`, `News`, `WaveNet`, `Standard`). Neural2 and Neural models provide higher quality, more natural-sounding speech.
</ResponseField>

### Example Response

```json theme={null}
{
  "voices": [
    {
      "name": "en-US-Neural2-F",
      "friendly_name": "US English Neural2 (Female)",
      "language_codes": ["en-US"],
      "ssml_gender": "FEMALE",
      "natural_sample_rate_hertz": 24000,
      "model": "Neural2"
    },
    {
      "name": "en-US-Wavenet-D",
      "friendly_name": "US English WaveNet (Male)",
      "language_codes": ["en-US"],
      "ssml_gender": "MALE",
      "natural_sample_rate_hertz": 24000,
      "model": "WaveNet"
    }
  ]
}
```

## Understanding Voice Names

Voice names follow a pattern that encodes important information:

### Voice Code Format

Voice codes follow the format: `{language}-{locale}-{model}-{gender}`

* **Language**: Language code (e.g., `en` for English)
* **Locale**: Regional variant (e.g., `US`, `GB`, `AU` for US English, British English, Australian English)
* **Model**: Voice model type (e.g., `Neural2`, `Neural`, `WaveNet`, `Standard`)
* **Gender**: `F` (Female), `M` (Male), or `A` (Any/Neutral)

### Examples

* `en-US-Neural2-F` → **US English Neural2 (Female)**: High-quality neural voice with US accent, female gender
* `en-GB-Neural-D` → **British English Neural (Male)**: Neural voice with British accent, male gender
* `en-AU-Standard-B` → **Australian English Standard (Any)**: Standard quality voice with Australian accent

### Voice Properties

**Locales** indicate the regional accent:

* `US` - United States English
* `GB` - British English
* `AU` - Australian English
* `CA` - Canadian English
* `IN` - Indian English
* `IE` - Irish English
* `NZ` - New Zealand English
* `ZA` - South African English

**Models** indicate voice quality:

* `Neural2` - Latest high-quality neural voices (recommended)
* `Neural` - High-quality neural voices
* `WaveNet` - Advanced WaveNet voices
* `Studio` - Professional studio-quality voices
* `News` - News broadcaster style voices
* `Standard` - Standard quality voices (faster, lower cost)

**Note**: Some voices (specifically `en-IN-Chirp`, `en-IN-Neural2`, `en-GB-Neural2`, `en-GB-Chirp`, `en-AU-Neural2`, and `en-AU-Chirp`) are not available as they are incompatible with the current API version.

## Usage with `/tts`

To use a specific voice, pass its `name` as the `voice_name` field in the [`/tts`](/api-reference/tts/basic) request body.
