Add user consent for personal voice

A voice talent is the individual or target speaker whose voice you record and use to create personal voice profiles. With the personal voice feature, you must get explicit consent from the voice talent to create each voice. You need a recorded statement from the voice talent that acknowledges the customer (Azure Speech in Foundry Tools resource owner) creates and uses their voice. Use the consent statement to verify that the voice talent is the same person as the speaker in the personal voice audio prompt.

Tip

Before you get started, learn how to define and record your voice samples. See also the responsible AI disclosure for voice talent.

You need an audio recording of the voice talent speaking the consent statement. The language of the verbal statement must match the language of your training data.

You can get the consent statement text for each locale from the text to speech GitHub repository. See verbal-statement-all-locales.txt for the consent statement. The following example is for the en-US locale:

"I [state your first and last name] am aware that recordings of my voice will be used by [state the name of the company] to create and use a synthetic version of my voice."

Tip

For a sample consent statement and training data, see the Custom Voice sample data on GitHub.

See the following table for the supported formats for consent audio files:

Format Sample rate Bit rate Bit depth
mp3 16 kHz, 24 kHz, 44.1 kHz, 48 kHz 128 kbps, 192 kbps, 256 kbps, 320 kbps /
wav 16 kHz, 24 kHz, 44.1 kHz, 48 kHz / 16-bit, 24-bit, 32-bit

These steps continue from the Customize a model page you opened in Set up a personal voice.

  1. On the Register voice talent step, select an existing voice talent, or select Add voice talent. When you add a voice talent, select one of the following options:

    • Upload data to upload a prerecorded consent statement audio file.
    • Record data to record the consent statement directly in the portal.
  1. In the Upload data pane, provide the verbal consent statement:

    • Select the Language of the recorded statement.
    • Enter the Voice talent name. The name must match the person who recorded the consent statement, in the same language used in the recording.
    • Enter the Company name. The company name must match what was spoken in the recording, in the same language.
    • Drag and drop the audio file into the upload area, or select Browse for a file to select it.
  2. Select Upload.

  1. In the Record data pane, enter the voice talent details:

    • Select the Language of the consent statement.
    • Enter the Voice talent name and Company name as the voice talent says them in the recording.
  2. Have the voice talent read the on-screen consent statement aloud.

  3. Select Start recording. Have the voice talent read the consent statement, and then stop the recording.

  4. Review the recording, and then select Done.

Continue to training data

Whether you select an existing voice talent or add one, confirm that their status is Succeeded in Data preview.

Screenshot of Register voice talent in Foundry with an existing talent selected, Add voice talent outlined, and Succeeded highlighted in Data preview.

Select Next to continue to the Training data step in Create a personal voice.

You can inspect previously added consent recordings outside the customization wizard.

  1. Select Build > Services, and then select the Data tab. Use the tab within Services, not the separate Data item in the left navigation.
  2. Find the voice talent row tagged Personal voice.
  3. Open the row's Actions menu, and select View details.
  4. Review the locale, audio, and status.

If you need a different consent recording, use Add voice talent > Upload data or Record data on the Register voice talent step. Select the correct talent and confirm that its status is Succeeded before continuing.

Next steps

To add user consent to the personal voice project, you provide the prerecorded consent audio file from a publicly accessible URL (Consents_Create) or upload the audio file (Consents_Post).

In this scenario, the audio files must be available locally.

To add consent to a personal voice project from a local audio file, use the Consents_Post operation of the custom voice API. Construct the request body according to the following instructions:

  • Set the required projectId property. See create a project.
  • Set the required voiceTalentName property. The voice talent name can't be changed later.
  • Set the required companyName property. The company name can't be changed later.
  • Set the required audiodata property with the consent audio file.
  • Set the required locale property. This should be the locale of the consent. The locale can't be changed later. You can find the text to speech locale list here.

Make an HTTP POST request using the URI as shown in the following Consents_Post example.

  • Replace YourResourceKey with your Speech resource key.
  • Replace YourResourceName with your Speech resource name.
  • Replace JessicaConsentId with a consent ID of your choice. The case sensitive ID will be used in the consent's URI and can't be changed later.
curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourResourceKey" -F 'description="Consent for Jessica voice"' -F 'projectId="ProjectId"' -F 'voiceTalentName="Jessica Smith"' -F 'companyName="Contoso"' -F 'audiodata=@"D:\PersonalVoiceTest\jessica-consent.wav"' -F 'locale="en-US"' "https://YourResourceName.cognitiveservices.azure.com/customvoice/consents/JessicaConsentId?api-version=2026-01-01"

You should receive a response body in the following format:

{
  "id": "JessicaConsentId",
  "description": "Consent for Jessica voice",
  "projectId": "ProjectId",
  "voiceTalentName": "Jessica Smith",
  "companyName": "Contoso",
  "locale": "en-US",
  "status": "NotStarted",
  "createdDateTime": "2024-09-01T05:30:00.000Z",
  "lastActionDateTime": "2024-09-02T10:15:30.000Z"
}

The response header contains the Operation-Location property. Use this URI to get details about the Consents_Post operation. Here's an example of the response header:

Operation-Location: https://YourResourceName.cognitiveservices.azure.com/customvoice/operations/070f7986-ef17-41d0-ba2b-907f0f28e314?api-version=2026-01-01
Operation-Id: 070f7986-ef17-41d0-ba2b-907f0f28e314

In this scenario, the audio files must already be stored in an Azure Blob Storage container.

To add consent to a personal voice project from the URL of an audio file, use the Consents_Create operation of the custom voice API. Construct the request body according to the following instructions:

  • Set the required projectId property. See create a project.
  • Set the required voiceTalentName property. The voice talent name can't be changed later.
  • Set the required companyName property. The company name can't be changed later.
  • Set the required audioUrl property. The URL of the voice talent consent audio file. Use a URI with the shared access signatures (SAS) token.
  • Set the required locale property. This should be the locale of the consent. The locale can't be changed later. You can find the text to speech locale list here.

Make an HTTP PUT request using the URI as shown in the following Consents_Create example.

  • Replace YourResourceKey with your Speech resource key.
  • Replace YourResourceName with your Speech resource name.
  • Replace JessicaConsentId with a consent ID of your choice. The case sensitive ID will be used in the consent's URI and can't be changed later.
curl -v -X PUT -H "Ocp-Apim-Subscription-Key: YourResourceKey" -H "Content-Type: application/json" -d '{
  "description": "Consent for Jessica voice",
  "projectId": "ProjectId",
  "voiceTalentName": "Jessica Smith",
  "companyName": "Contoso",
  "audioUrl": "https://contoso.blob.core.windows.net/public/jessica-consent.wav?mySasToken",
  "locale": "en-US"
} '  "https://YourResourceName.cognitiveservices.azure.com/customvoice/consents/JessicaConsentId?api-version=2026-01-01"

You should receive a response body in the following format:

{
  "id": "JessicaConsentId",
  "description": "Consent for Jessica voice",
  "projectId": "ProjectId",
  "voiceTalentName": "Jessica Smith",
  "companyName": "Contoso",
  "locale": "en-US",
  "status": "NotStarted",
  "createdDateTime": "2024-09-01T05:30:00.000Z",
  "lastActionDateTime": "2024-09-02T10:15:30.000Z"
}

The response header contains the Operation-Location property. Use this URI to get details about the Consents_Create operation. Here's an example of the response header:

Operation-Location: https://YourResourceName.cognitiveservices.azure.com/customvoice/operations/070f7986-ef17-41d0-ba2b-907f0f28e314?api-version=2026-01-01
Operation-Id: 070f7986-ef17-41d0-ba2b-907f0f28e314

Next steps