Skip to main content
Version: 2.0.0

Create a voice

This endpoint creates a voice and optionally starts training

Training

There are 2 ways to train a voice:

  1. Providing a URL to a dataset when creating the voice

  2. Uploading individual recordings using the recording API

Option 1: Providing a URL to a dataset when creating the voice

  1. Create a voice using the "Create a voice" endpoint and provide a URL to the dataset in the dataset_url attribute. Please see here for acceptable dataset formats.
  2. The dataset will first be analyzed and then training will begin automatically.

Option 2: Uploading individual recordings using the recording API

  1. Create a voice using the "Create a voice" endpoint and omit the dataset_url attribute.
  2. Use the instructions on the "Create a recording" page to upload recordings to your voice.
  3. Upon uploading at least 30 recordings, follow the "Build a voice" documentation to start training.

In order to clone a voice, you must be an authorized uploader or provide consent to clone your voice using the Resemble AI platform. To provide consent, upload an audio recording containing the following message:

I am aware that recordings of my voice will be used by [name of your company] to train and create a synthetic version of my voice by Resemble AI.

This audio content will be used by the Resemble platform for the purposes of authorizing your voice clone.

HTTP Request

POST https://app.resemble.ai/api/v2/voices
JSON Body ParametersTypeDescription
namestringName of the voice
consentstringA base-64 encoded Wavefile string containing your consent and authorization to create and clone a voice. Please see the Voice Consent section for more details.
dataset_url(optional) stringA URL to a dataset on which to train the voice on. Please see here for acceptable dataset formats
callback_uri(optional) stringA URL (webhook) that will be notified upon voice training completion Please see here for callback details

Base 64 Encoding

The required consent field must be a valid base-64 encoded string containing your consent audio file content. To convert your consent audio file to a base-64 encoded string you can use your programming language of choice's standard library. See the following examples below for implementation in several popular languages.

NodeJS
1 2 3 4 5 6 7 8 9 const fs = require('fs'); const path = require('path'); // Read the contents of the file into a string const filePath = 'path/to/consent.wav'; const fileContents = fs.readFileSync(filePath, { encoding: 'base64' }); // Output the Base64-encoded string to stdout console.log(fileContents);

HTTP Response

{
"success": true,
"item": {
"uuid": <string>,
"name": <string>,
"status": <string>,
"dataset_url": <string>,
"created_at": <UTC Date>,
"updated_at": <UTC Date>,
}
}

Callback

If you've provided a callback_uri when you created a voice, you will receive the following POST request when the voice has completed training.

{
"id": <string>,
"status": <string>,
"issue": <string>
}
JSON Body ParametersTypeDescription
idstringThe UUID of the voice this callback is for.
statusstringEither "finished" or "dataset_issue".
issuestringIf status is set to "dataset_issue" this field will contain a description of the issue. Otherwise this field will be null.

Examples

NodeJS
1 2 3 4 5 import { Resemble } from '@resemble/node' Resemble.setApiKey('YOUR_API_TOKEN') await Resemble.v2.voices.create({ name: "Chef", dataset_url: "https://../dataset.zip", callback_uri: "http://example.com/cb" })

Try it out

API Key:
JSON Body: