Skip to main content

Voices

TTS Wrapper allows getting and setting voices in a unified way. We provide a mixture of language codes and details as rich as possible for all TTS engines.

Get Voices

All engines support get_voices() method to get the list of available voices.

voices = client.get_voices()

By default the result is a JSON of dictionaries with the following fields:

[
{
"id": "af",
"language_codes": [
"af"
],
"name": "Afrikaans",
"gender": "Unknown"
},
{
"id": "am",
"language_codes": [
"am"
],
"name": "Amharic",
"gender": "Unknown"
}

This is BCP-47 format. You can also get it in ISO 639-3 format.

voices_iso = client.get_voices(langcodes="iso639_3")
print(json.dumps(voices_iso[:3], indent=2))
[
{
"id": "afr",
"language_codes": [
"afr"
],
"name": "Afrikaans",
"gender": "Unknown"
},
{
"id": "amh",
"language_codes": [
"amh"
],
"name": "Amharic",
"gender": "Unknown"
}

Or Human readable format

eg

``python voices_display = client.get_voices(langcodes="display") print("\n3. Human-readable display names:") print(json.dumps(voices_display[:3], indent=2))


```json
3. Human-readable display names:
[
{
"id": "af",
"language_codes": [
"Afrikaans"
],
"name": "Afrikaans",
"gender": "Unknown"
},
{
"id": "am",
"language_codes": [
"Amharic"
],
"name": "Amharic",
"gender": "Unknown"
},
{
"id": "ar",
"language_codes": [
"Arabic"
],
"name": "Arabic",
"gender": "Unknown"
}
]

Or lastly - All formats in a dictionary

    voices_all = client.get_voices(langcodes="all")
print("\n4. All formats in a dictionary:")
print(json.dumps(voices_all[:3], indent=2))
[
{
"id": "af",
"language_codes": {
"af": {
"bcp47": "af",
"iso639_3": "afr",
"display": "Afrikaans"
}
},
"name": "Afrikaans",
"gender": "Unknown"
},
{
"id": "am",
"language_codes": {
"am": {
"bcp47": "am",
"iso639_3": "amh",
"display": "Amharic"
}
},
"name": "Amharic",
"gender": "Unknown"
},
{
"id": "ar",
"language_codes": {
"ar": {
"bcp47": "ar",
"iso639_3": "ara",
"display": "Arabic"
}
},
"name": "Arabic",
"gender": "Unknown"
}
]