## List voices for speaker assignment

`client.VideoTranslate.Voices.List(ctx, query) (*VideoTranslateVoiceListResponse, error)`

**get** `/v1/video-translate/voices`

Lists the voices that can be used as values in `config.speaker_voices`.
`voice_id` is the external voice ID to submit. `name` and `is_favorite` reflect the
authenticated account's personalization; `default_name` is the catalog name.
Ordered by favorites first, then `name` (case-insensitive), then `voice_id`.

### Parameters

- `query VideoTranslateVoiceListParams`

  - `Application param.Field[string]`

    Case-insensitive exact match on the voice's application (use case), for example `narration` (max 100 characters).

  - `Favorite param.Field[bool]`

    Only favorites (`true`) or only non-favorites (`false`).

  - `Gender param.Field[VideoTranslateVoiceListParamsGender]`

    Case-insensitive gender filter.

    - `const VideoTranslateVoiceListParamsGenderMale VideoTranslateVoiceListParamsGender = "Male"`

    - `const VideoTranslateVoiceListParamsGenderFemale VideoTranslateVoiceListParamsGender = "Female"`

    - `const VideoTranslateVoiceListParamsGenderOther VideoTranslateVoiceListParamsGender = "Other"`

  - `Language param.Field[string]`

    Case-insensitive exact match on the voice's primary language or any of its verified languages (max 100 characters).

  - `Limit param.Field[int64]`

    Page size. Non-integers and values below 1 are rejected with 400; values above 100 are clamped to 100.

  - `Offset param.Field[int64]`

    Number of items to skip. Non-integers and negative values are rejected with 400.

  - `Search param.Field[string]`

    Case-insensitive substring of the voice's effective (account-personalized) name.

### Returns

- `type VideoTranslateVoiceListResponse struct{…}`

  - `Pagination VideoTranslateVoiceListResponsePagination`

    - `Limit int64`

      Applied page size.

    - `Offset int64`

      Applied result offset.

    - `Total int64`

      Total number of matching records.

  - `Voices []VideoTranslateVoiceListResponseVoice`

    - `Application string`

      Intended use case, for example `narration`.

    - `DefaultName string`

    - `Description string`

    - `Gender VideoTranslateVoiceListResponseVoicesGender`

      - `const VideoTranslateVoiceListResponseVoicesGenderMale VideoTranslateVoiceListResponseVoicesGender = "Male"`

      - `const VideoTranslateVoiceListResponseVoicesGenderFemale VideoTranslateVoiceListResponseVoicesGender = "Female"`

      - `const VideoTranslateVoiceListResponseVoicesGenderOther VideoTranslateVoiceListResponseVoicesGender = "Other"`

    - `IsFavorite bool`

      Whether the authenticated account marked this voice as a favorite.

    - `Language string`

      Primary language label.

    - `Name string`

      Effective name (the account's custom name when set, otherwise `default_name`).

    - `VoiceID string`

      External voice ID. Use this value in `config.speaker_voices`.

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/chamelaion/chamelaion-go/v2"
  "github.com/chamelaion/chamelaion-go/v2/option"
)

func main() {
  client := githubcomchamelaionchamelaiongo.NewClient(
    option.WithBearerToken("My Bearer Token"),
  )
  voices, err := client.VideoTranslate.Voices.List(context.TODO(), githubcomchamelaionchamelaiongo.VideoTranslateVoiceListParams{

  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", voices.Pagination)
}
```

#### Response

```json
{
  "voices": [
    {
      "voice_id": "21m00Tcm4TlvDq8ikWAM",
      "name": "Rachel (narration)",
      "default_name": "Rachel",
      "description": "Calm, young adult female voice.",
      "language": "en",
      "application": "narration",
      "gender": "Female",
      "is_favorite": true
    }
  ],
  "pagination": {
    "limit": 50,
    "offset": 0,
    "total": 1
  }
}
```
