Skip to navigation

Manage Voices

Everything after creation: find your voices, fetch their samples, and remove them

A cloned voice belongs to the workspace rather than the member who created it, and access follows the caller’s workspace role and API-key scopes exactly as for any other voice: voices scopes to list it, audio scopes to synthesize with it, and the content-management permission plus a write scope on the key to delete it. This page covers the lifecycle after creation - creating one is the Voice Cloning API page.

List voices

Cloned voices appear in the voices list alongside Speechify’s built-in catalog:

GET
/v1/voices
from speechify import Speechify
client = Speechify(
token="YOUR_TOKEN_HERE",
version="string",
)
client.voices.list(
cursor="string",
limit=50,
)
Response
{
"error": {
"code": "endpoint_moved",
"message": "string",
"fields": {
"string": "string"
},
"details": {
"string": {}
},
"docs_url": "string"
},
"request_id": "string"
}

Each voice’s models array reflects what your workspace can actually synthesize with it, so branch on that rather than assuming model support.

Get a voice

Fetch a single voice by its id:

GET
/v1/voices/:voice_id
from speechify import Speechify
client = Speechify(
token="YOUR_TOKEN_HERE",
)
client.voices.get(
voice_id="voice_id",
)

Download the sample

The audio sample a clone was built from is retrievable as WAV:

GET
/v1/voices/:voice_id/sample
from speechify import Speechify
client = Speechify(
token="YOUR_TOKEN_HERE",
)
client.voices.download_sample(
voice_id="voice_id",
)

Delete a voice

Remove voices you no longer need:

DELETE
/v1/voices/:voice_id
from speechify import Speechify
client = Speechify(
token="YOUR_TOKEN_HERE",
)
client.voices.delete(
voice_id="voice_id",
)

Deletion is immediate: synthesis requests that name the deleted voice’s id fail from that point on.

Next steps