Batchsynthese gebruiken voor tekst-naar-spraak-avatar
Met de batchsynthese-API voor tekst-naar-spraak-avatar kan de asynchrone synthese van tekst in een sprekende avatar als videobestand worden gebruikt. Uitgevers en platformen voor video-inhoud kunnen deze API gebruiken om avatarvideo-inhoud in een batch te maken. Deze aanpak kan geschikt zijn voor verschillende gebruiksvoorbeelden, zoals trainingsmateriaal, presentaties of advertenties.
De synthetische avatarvideo wordt asynchroon gegenereerd nadat het systeem tekstinvoer heeft ontvangen. De gegenereerde video-uitvoer kan worden gedownload in batchmodussynthese. U verzendt tekst voor synthese, peilt naar de synthesestatus en downloadt de video-uitvoer wanneer de status aangeeft dat de status is geslaagd. De tekstinvoerindelingen moeten tekst zonder opmaak of SSML-tekst (Speech Synthesis Markup Language) zijn.
Dit diagram biedt een algemeen overzicht van de werkstroom.
Als u batchsynthese wilt uitvoeren, kunt u de volgende REST API-bewerkingen gebruiken.
Bewerking | Methode | REST API-aanroep |
---|---|---|
Batchsynthese maken | PUT | avatar/batchsyntheses/{SynthesisId}?api-version=2024-08-01 |
Batchsynthese ophalen | GET | avatar/batchsyntheses/{SynthesisId}?api-version=2024-08-01 |
Batchsynthese vermelden | GET | avatar/batchsyntheses/?api-version=2024-08-01 |
Batchsynthese verwijderen | DELETE | avatar/batchsyntheses/{SynthesisId}?api-version=2024-08-01 |
U kunt verwijzen naar de codevoorbeelden op GitHub.
Een batchsyntheseaanvraag maken
Sommige eigenschappen in JSON-indeling zijn vereist wanneer u een nieuwe batchsynthesetaak maakt. Andere eigenschappen zijn optioneel. Het antwoord van de batchsynthese bevat andere eigenschappen voor informatie over de synthesestatus en resultaten. De eigenschap bevat bijvoorbeeld outputs.result
de locatie van waaruit u een videobestand met de avatarvideo kunt downloaden. Hier outputs.summary
kunt u toegang krijgen tot de samenvattings- en foutopsporingsgegevens.
Als u een batchsyntheseaanvraag wilt indienen, maakt u de hoofdtekst van de HTTP POST-aanvraag aan de volgende instructies:
- Stel de vereiste
inputKind
eigenschap in. - Als de
inputKind
eigenschap is ingesteld opPlainText
, moet u ook devoice
eigenschap instellen in desynthesisConfig
. In het onderstaande voorbeeld is hetinputKind
ingesteld opSSML
, dus despeechSynthesis
is niet ingesteld. - Stel de vereiste
SynthesisId
eigenschap in. Kies een uniekeSynthesisId
voor dezelfde spraakresource. HetSynthesisId
kan een tekenreeks van 3 tot 64 tekens zijn, inclusief letters, cijfers, '-' of '_', met de voorwaarde dat deze moet beginnen en eindigen met een letter of cijfer. - Stel de vereiste
talkingAvatarCharacter
entalkingAvatarStyle
eigenschappen in. Hier vindt u ondersteunde avatartekens en -stijlen. - U kunt desgewenst de
videoFormat
,backgroundColor
en andere eigenschappen instellen. Zie de eigenschappen van batchsynthese voor meer informatie.
Notitie
De maximale toegestane JSON-nettoladinggrootte is 500 kilobytes.
Elke Spraak-resource kan maximaal 200 batchsynthesetaken tegelijk uitvoeren.
De maximale lengte voor de uitvoervideo is momenteel 20 minuten, met mogelijke toenamen in de toekomst.
Als u een HTTP PUT-aanvraag wilt maken, gebruikt u de URI-indeling die in het volgende voorbeeld wordt weergegeven. Vervang door YourSpeechKey
uw Spraak-resourcesleutel, YourSpeechRegion
door uw spraakresourceregio en stel de eigenschappen van de aanvraagbody in zoals hierboven beschreven.
curl -v -X PUT -H "Ocp-Apim-Subscription-Key: YourSpeechKey" -H "Content-Type: application/json" -d '{
"inputKind": "SSML",
"inputs": [
{
"content": "<speak version='\''1.0'\'' xml:lang='\''en-US'\''><voice name='\''en-US-AvaMultilingualNeural'\''>The rainbow has seven colors.</voice></speak>"
}
],
"avatarConfig": {
"talkingAvatarCharacter": "lisa",
"talkingAvatarStyle": "graceful-sitting"
}
}' "https://YourSpeechRegion.api.cognitive.microsoft.com/avatar/batchsyntheses/my-job-01?api-version=2024-08-01"
U ontvangt een antwoordtekst in de volgende indeling:
{
"id": "my-job-01",
"internalId": "5a25b929-1358-4e81-a036-33000e788c46",
"status": "NotStarted",
"createdDateTime": "2024-03-06T07:34:08.9487009Z",
"lastActionDateTime": "2024-03-06T07:34:08.9487012Z",
"inputKind": "SSML",
"customVoices": {},
"properties": {
"timeToLiveInHours": 744,
},
"avatarConfig": {
"talkingAvatarCharacter": "lisa",
"talkingAvatarStyle": "graceful-sitting",
"videoFormat": "Mp4",
"videoCodec": "hevc",
"subtitleType": "soft_embedded",
"bitrateKbps": 2000,
"customized": false
}
}
De status
eigenschap moet van NotStarted
status naar Running
en ten slotte naar Succeeded
of Failed
worden voortgezet. U kunt de GET-batchsynthese-API periodiek aanroepen totdat de geretourneerde status is Succeeded
of Failed
.
Batchsynthese ophalen
Als u de status van een batchsynthesetaak wilt ophalen, maakt u een HTTP GET-aanvraag met behulp van de URI, zoals wordt weergegeven in het volgende voorbeeld.
Vervang door YourSynthesisId
uw batchsynthese-id, YourSpeechKey
door uw Spraak-resourcesleutel en YourSpeechRegion
door uw Spraak-resourceregio.
curl -v -X GET "https://YourSpeechRegion.api.cognitive.microsoft.com/avatar/batchsyntheses/YourSynthesisId?api-version=2024-08-01" -H "Ocp-Apim-Subscription-Key: YourSpeechKey"
U ontvangt een antwoordtekst in de volgende indeling:
{
"id": "my-job-01",
"internalId": "5a25b929-1358-4e81-a036-33000e788c46",
"status": "Succeeded",
"createdDateTime": "2024-03-06T07:34:08.9487009Z",
"lastActionDateTime": "2024-03-06T07:34:12.5698769",
"inputKind": "SSML",
"customVoices": {},
"properties": {
"timeToLiveInHours": 744,
"sizeInBytes": 344460,
"durationInMilliseconds": 2520,
"succeededCount": 1,
"failedCount": 0,
"billingDetails": {
"neuralCharacters": 29,
"talkingAvatarDurationSeconds": 2
}
},
"avatarConfig": {
"talkingAvatarCharacter": "lisa",
"talkingAvatarStyle": "graceful-sitting",
"videoFormat": "Mp4",
"videoCodec": "hevc",
"subtitleType": "soft_embedded",
"bitrateKbps": 2000,
"customized": false
},
"outputs": {
"result": "https://stttssvcprodusw2.blob.core.windows.net/batchsynthesis-output/xxxxx/xxxxx/0001.mp4?SAS_Token",
"summary": "https://stttssvcprodusw2.blob.core.windows.net/batchsynthesis-output/xxxxx/xxxxx/summary.json?SAS_Token"
}
}
Vanuit het outputs.result
veld kunt u een videobestand met de avatarvideo downloaden. Met outputs.summary
het veld kunt u de samenvattings- en foutopsporingsgegevens downloaden. Zie batchsyntheseresultaten voor meer informatie over batchsyntheseresultaten.
Batchsynthese vermelden
Als u alle batchsynthesetaken voor uw Spraak-resource wilt weergeven, maakt u een HTTP GET-aanvraag met behulp van de URI, zoals wordt weergegeven in het volgende voorbeeld.
Vervang YourSpeechKey
door uw Spraak-resourcesleutel en YourSpeechRegion
door uw Spraak-resourceregio. U kunt desgewenst de skip
en top
(paginagrootte) queryparameters instellen in de URL. De standaardwaarde is skip
0 en de standaardwaarde is maxpagesize
100.
curl -v -X GET "https://YourSpeechRegion.api.cognitive.microsoft.com/avatar/batchsyntheses?skip=0&maxpagesize=2&api-version=2024-08-01" -H "Ocp-Apim-Subscription-Key: YourSpeechKey"
U ontvangt een antwoordtekst in de volgende indeling:
{
"value": [
{
"id": "my-job-02",
"internalId": "14c25fcf-3cb6-4f46-8810-ecad06d956df",
"status": "Succeeded",
"createdDateTime": "2024-03-06T07:52:23.9054709Z",
"lastActionDateTime": "2024-03-06T07:52:29.3416944",
"inputKind": "SSML",
"customVoices": {},
"properties": {
"timeToLiveInHours": 744,
"sizeInBytes": 502676,
"durationInMilliseconds": 2950,
"succeededCount": 1,
"failedCount": 0,
"billingDetails": {
"neuralCharacters": 32,
"talkingAvatarDurationSeconds": 2
}
},
"avatarConfig": {
"talkingAvatarCharacter": "lisa",
"talkingAvatarStyle": "casual-sitting",
"videoFormat": "Mp4",
"videoCodec": "h264",
"subtitleType": "soft_embedded",
"bitrateKbps": 2000,
"customized": false
},
"outputs": {
"result": "https://stttssvcprodusw2.blob.core.windows.net/batchsynthesis-output/xxxxx/xxxxx/0001.mp4?SAS_Token",
"summary": "https://stttssvcprodusw2.blob.core.windows.net/batchsynthesis-output/xxxxx/xxxxx/summary.json?SAS_Token"
}
},
{
"id": "my-job-01",
"internalId": "5a25b929-1358-4e81-a036-33000e788c46",
"status": "Succeeded",
"createdDateTime": "2024-03-06T07:34:08.9487009Z",
"lastActionDateTime": "2024-03-06T07:34:12.5698769",
"inputKind": "SSML",
"customVoices": {},
"properties": {
"timeToLiveInHours": 744,
"sizeInBytes": 344460,
"durationInMilliseconds": 2520,
"succeededCount": 1,
"failedCount": 0,
"billingDetails": {
"neuralCharacters": 29,
"talkingAvatarDurationSeconds": 2
}
},
"avatarConfig": {
"talkingAvatarCharacter": "lisa",
"talkingAvatarStyle": "graceful-sitting",
"videoFormat": "Mp4",
"videoCodec": "hevc",
"subtitleType": "soft_embedded",
"bitrateKbps": 2000,
"customized": false
},
"outputs": {
"result": "https://stttssvcprodusw2.blob.core.windows.net/batchsynthesis-output/xxxxx/xxxxx/0001.mp4?SAS_Token",
"summary": "https://stttssvcprodusw2.blob.core.windows.net/batchsynthesis-output/xxxxx/xxxxx/summary.json?SAS_Token"
}
}
],
"nextLink": "https://YourSpeechRegion.api.cognitive.microsoft.com/avatar/batchsyntheses/?api-version=2024-08-01&skip=2&maxpagesize=2"
}
U outputs.result
kunt een videobestand met de avatarvideo downloaden. Hier outputs.summary
kunt u toegang krijgen tot de samenvattings- en foutopsporingsgegevens. Zie batchsyntheseresultaten voor meer informatie.
De value
eigenschap in het JSON-antwoord bevat uw syntheseaanvragen. De lijst is gepagineerd, met een maximale paginagrootte van 100. De nextLink
eigenschap wordt indien nodig opgegeven om de volgende pagina van de gepagineerde lijst op te halen.
Batchsyntheseresultatenbestand ophalen
Zodra u een batchsynthesetaak krijgt met status
'Succeeded', kunt u de resultaten van de video-uitvoer downloaden. Gebruik de URL uit de outputs.result
eigenschap van het antwoord voor batchsynthese ophalen.
Als u het batchsyntheseresultatenbestand wilt ophalen, maakt u een HTTP GET-aanvraag met behulp van de URI, zoals wordt weergegeven in het volgende voorbeeld. Vervang YourOutputsResultUrl
door de URL uit de outputs.result
eigenschap van het antwoord voor batchsynthese ophalen. Vervang door YourSpeechKey
uw Spraak-resourcesleutel.
curl -v -X GET "YourOutputsResultUrl" -H "Ocp-Apim-Subscription-Key: YourSpeechKey" > output.mp4
Als u het samenvattingsbestand voor batchsynthese wilt ophalen, maakt u een HTTP GET-aanvraag met behulp van de URI, zoals wordt weergegeven in het volgende voorbeeld. Vervang YourOutputsResultUrl
door de URL uit de outputs.summary
eigenschap van het antwoord voor batchsynthese ophalen. Vervang door YourSpeechKey
uw Spraak-resourcesleutel.
curl -v -X GET "YourOutputsSummaryUrl" -H "Ocp-Apim-Subscription-Key: YourSpeechKey" > summary.json
Het samenvattingsbestand bevat de syntheseresultaten voor elke tekstinvoer. Hier volgt een voorbeeld van summary.json bestand:
{
"jobID": "5a25b929-1358-4e81-a036-33000e788c46",
"status": "Succeeded",
"results": [
{
"texts": [
"<speak version='1.0' xml:lang='en-US'><voice name='en-US-AvaMultilingualNeural'>The rainbow has seven colors.</voice></speak>"
],
"status": "Succeeded",
"videoFileName": "244a87c294b94ddeb3dbaccee8ffa7eb/5a25b929-1358-4e81-a036-33000e788c46/0001.mp4",
"TalkingAvatarCharacter": "lisa",
"TalkingAvatarStyle": "graceful-sitting"
}
]
}
Batchsynthese verwijderen
Nadat u de resultaten van de audio-uitvoer hebt opgehaald en de geschiedenis van de batchsynthesetaak niet meer nodig hebt, kunt u deze verwijderen. De Speech-service behoudt elke synthesegeschiedenis gedurende maximaal 31 dagen of de duur die is opgegeven door de eigenschap van timeToLiveInHours
de aanvraag, afhankelijk van wat eerder komt. De datum en tijd van automatische verwijdering, voor synthesetaken met de status Geslaagd of Mislukt, wordt berekend als de som van de lastActionDateTime
en timeToLive
eigenschappen.
Als u een batchsynthesetaak wilt verwijderen, maakt u een HTTP DELETE-aanvraag met behulp van de volgende URI-indeling. Vervang door YourSynthesisId
uw batchsynthese-id, YourSpeechKey
door uw Spraak-resourcesleutel en YourSpeechRegion
door uw Spraak-resourceregio.
curl -v -X DELETE "https://YourSpeechRegion.api.cognitive.microsoft.com/avatar/batchsyntheses/YourSynthesisId?api-version=2024-08-01" -H "Ocp-Apim-Subscription-Key: YourSpeechKey"
De antwoordheaders bevatten HTTP/1.1 204 No Content
als de verwijderaanvraag is geslaagd.