你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
获取个人语音的说话人配置文件 ID
若要在应用程序中使用个人语音,需要获取说话人个人配置文件 ID。 说话人配置文件 ID 用于使用提供的文本输入生成合成音频。
根据说话人的口头同意声明和音频提示(5 到 90 秒之间的干净人声样本)创建说话人配置文件 ID。 用户的声音特征在用于文本转语音的 speakerProfileId
属性中进行了编码。 有关详细信息,请参阅在应用程序中使用个人语音。
注意
个人语音 ID 和说话人个人配置文件 ID 不同。 你可以选择个人语音 ID,但说话人配置文件 ID 由服务生成。 个人语音 ID 用于管理个人语音。 说话人配置文件 ID 用于文本转语音。
需要从可公开访问的 URL (PersonalVoices_Create) 提供音频文件,也可上传音频文件 (PersonalVoices_Post)。
提示音频格式
提示音频文件支持的格式如下:
Format | 采样率 | 比特率 | 位深度 |
---|---|---|---|
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 位、24 位、32 位 |
从文件创建个人声音
在此方案中,音频文件必须位于本地。
若要创建个人语音并获取说话人个人配置文件 ID,请使用自定义语音 API 的 PersonalVoices_Post 操作。 根据以下说明构造请求正文:
- 设置所需的
projectId
属性。 请参阅创建项目。 - 设置所需的
consentId
属性。 请参阅添加用户同意。 - 设置所需的
audiodata
属性。 可以在同一请求中指定一个或多个音频文件。
使用 URI 发出 HTTP POST 请求,如以下 PersonalVoices_Post 示例所示。
- 将
YourResourceKey
替换为语音资源密钥。 - 将
YourResourceRegion
替换为语音资源区域。 - 将
JessicaPersonalVoiceId
替换为所选的个人语音 ID。 个人语音的 URI 中将使用区分大小写的 ID,并且以后无法更改。
curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourResourceKey" -F 'projectId="ProjectId"' -F 'consentId="JessicaConsentId"' -F 'audiodata=@"D:\PersonalVoiceTest\CNVSample001.wav"' -F 'audiodata=@"D:\PersonalVoiceTest\CNVSample002.wav"' "
https://YourResourceRegion.api.cognitive.microsoft.com/customvoice/personalvoices/JessicaPersonalVoiceId?api-version=2024-02-01-preview"
你应该会收到以下格式的响应正文:
{
"id": "JessicaPersonalVoiceId",
"speakerProfileId": "3059912f-a3dc-49e3-bdd0-02e449df1fe3",
"projectId": "ProjectId",
"consentId": "JessicaConsentId",
"status": "NotStarted",
"createdDateTime": "2024-09-01T05:30:00.000Z",
"lastActionDateTime": "2024-09-02T10:15:30.000Z"
}
使用 speakerProfileId
属性在文本转语音应用程序中集成个人语音。 有关详细信息,请参阅在应用程序中使用个人语音。
响应头包含 Operation-Location
属性。 使用此 URI 获取有关 PersonalVoices_Post 操作的详细信息。 以下是响应头示例:
Operation-Location: https://eastus.api.cognitive.microsoft.com/customvoice/operations/1321a2c0-9be4-471d-83bb-bc3be4f96a6f?api-version=2024-02-01-preview
Operation-Id: 1321a2c0-9be4-471d-83bb-bc3be4f96a6f
从 URL 创建个人声音
在此方案中,音频文件必须已存储在 Azure Blob 存储容器中。
若要创建个人语音并获取说话人个人配置文件 ID,请使用自定义语音 API 的 PersonalVoices_Create 操作。 根据以下说明构造请求正文:
- 设置所需的
projectId
属性。 请参阅创建项目。 - 设置所需的
consentId
属性。 请参阅添加用户同意。 - 设置所需的
audios
属性。 在audios
属性中,设置以下属性:- 将所需的
containerUrl
属性设置为包含音频文件的 Azure Blob 存储容器的 URL。 对具有读取权限和列表权限的容器使用共享访问签名 (SAS)。 - 将所需
extensions
属性设置为音频文件的扩展名。 - (可选)设置属性
prefix
以设置 Blob 名称的前缀。
- 将所需的
使用 URI 发出 HTTP PUT 请求,如以下 PersonalVoices_Create 示例所示。
- 将
YourResourceKey
替换为语音资源密钥。 - 将
YourResourceRegion
替换为语音资源区域。 - 将
JessicaPersonalVoiceId
替换为所选的个人语音 ID。 个人语音的 URI 中将使用区分大小写的 ID,并且以后无法更改。
curl -v -X PUT -H "Ocp-Apim-Subscription-Key: YourResourceKey" -H "Content-Type: application/json" -d '{
"projectId": "ProjectId",
"consentId": "JessicaConsentId",
"audios": {
"containerUrl": "https://contoso.blob.core.windows.net/voicecontainer?mySasToken",
"prefix": "jessica/",
"extensions": [
".wav"
]
}
} ' "https://YourResourceRegion.api.cognitive.microsoft.com/customvoice/personalvoices/JessicaPersonalVoiceId?api-version=2024-02-01-preview"
# Ensure the `containerUrl` has both read and list permissions.
# Ensure the `.wav` files are located in the "jessica" folder within the container. The `prefix` matches all `.wav` files in the "jessica" folder. If there is no such folder, the prefix will match `.wav` files with names starting with "jessica".
你应该会收到以下格式的响应正文:
{
"id": "JessicaPersonalVoiceId",
"speakerProfileId": "3059912f-a3dc-49e3-bdd0-02e449df1fe3",
"projectId": "ProjectId",
"consentId": "JessicaConsentId",
"status": "NotStarted",
"createdDateTime": "2024-09-01T05:30:00.000Z",
"lastActionDateTime": "2024-09-02T10:15:30.000Z"
}
使用 speakerProfileId
属性在文本转语音应用程序中集成个人语音。 有关详细信息,请参阅在应用程序中使用个人语音。
响应头包含 Operation-Location
属性。 使用此 URI 获取有关 PersonalVoices_Create 操作的详细信息。 以下是响应头示例:
Operation-Location: https://eastus.api.cognitive.microsoft.com/customvoice/operations/1321a2c0-9be4-471d-83bb-bc3be4f96a6f?api-version=2024-02-01-preview
Operation-Id: 1321a2c0-9be4-471d-83bb-bc3be4f96a6f