Batchsynthese-eigenschappen voor tekst-naar-spraak
Belangrijk
De Batch-synthese-API is algemeen beschikbaar. De Long Audio-API wordt op 1 april 2027 buiten gebruik gesteld. Zie Migreren naar batchsynthese-API voor meer informatie.
De Batch-synthese-API kan asynchroon een grote hoeveelheid tekstinvoer (lang en kort) synthetiseren. Uitgevers en platforms voor audio-inhoud kunnen lange audio-inhoud in een batch maken. Bijvoorbeeld: audioboeken, nieuwsartikelen en documenten. De batchsynthese-API kan gesynthetiseerde audio langer dan 10 minuten 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 de batchsyntheseresultaatbestanden met audio-uitvoer en logboeken.
Batchsynthese-eigenschappen
Batchsynthese-eigenschappen worden beschreven in de volgende tabel.
Eigenschappen | Beschrijving |
---|---|
createdDateTime |
De datum en tijd waarop de batchsynthesetaak is gemaakt. Deze eigenschap heeft het kenmerk Alleen-lezen. |
customVoices |
De kaart van een aangepaste spraaknaam en de bijbehorende implementatie-id. Bijvoorbeeld: "customVoices": {"your-custom-voice-name": "502ac834-6537-4bc3-9fd6-140114daa66d"} U kunt de naam van de stem gebruiken in uw synthesisConfig.voice (wanneer de inputKind naam is ingesteld op "PlainText" ) of in de SSML-tekst van inputs (wanneer de inputKind naam is ingesteld op "SSML" ).Deze eigenschap is vereist voor het gebruik van een aangepaste stem. Als u een aangepaste stem probeert te gebruiken die hier niet is gedefinieerd, retourneert de service een fout. |
description |
De beschrijving van de batchsynthese. Deze eigenschap is optioneel. |
id |
De batchsynthesetaak-id die u hebt doorgegeven in het pad. Deze eigenschap is vereist in het pad. |
inputs |
De tekst zonder opmaak of SSML die moet worden gesynthetiseerd. Wanneer de inputKind tekst is ingesteld "PlainText" op , geeft u tekst zonder opmaak op, zoals hier wordt weergegeven: "inputs": [{"text": "The rainbow has seven colors."}] . Wanneer dit inputKind is ingesteld "SSML" , geeft u tekst op in de Speech Synthesis Markup Language (SSML), zoals hier wordt weergegeven: "inputs": [{"text": "<speak version='\''1.0'\'' xml:lang='\''en-US'\''><voice xml:lang='\''en-US'\'' xml:gender='\''Female'\'' name='\''en-US-AvaMultilingualNeural'\''>The rainbow has seven colors.</voice></speak>"}] .Neem maximaal 1000 tekstobjecten op als u meerdere audiobestanden wilt. Hier volgt een voorbeeld van invoertekst die moet worden gesynthetiseerd naar twee audiobestanden: "inputs": [{"text": "synthesize this to a file"},{"text": "synthesize this to another file"}] . Als de properties.concatenateResult eigenschap echter is ingesteld true op , wordt elk gesynthetiseerd resultaat naar hetzelfde audiobestand geschreven.U hebt geen afzonderlijke tekstinvoer nodig voor nieuwe alinea's. Binnen een van de tekstinvoer (maximaal 1000) kunt u nieuwe alinea's opgeven met behulp van de tekenreeks \r\n (newline). Hier volgt een voorbeeld van invoertekst met twee alinea's die moeten worden gesynthetiseerd naar hetzelfde audiobestand: "inputs": [{"text": "synthesize this to a file\r\nsynthesize this to another paragraph in the same file"}] Er zijn geen alinealimieten, maar de maximale grootte van de JSON-nettolading (inclusief alle tekstinvoer en andere eigenschappen) is 2 megabytes. Deze eigenschap is vereist wanneer u een nieuwe batchsynthesetaak maakt. Deze eigenschap is niet opgenomen in het antwoord wanneer u de synthesetaak krijgt. |
internalId |
De interne batchsynthesetaak-id. Deze eigenschap heeft het kenmerk Alleen-lezen. |
lastActionDateTime |
De meest recente datum en tijd waarop de status eigenschapswaarde is gewijzigd.Deze eigenschap heeft het kenmerk Alleen-lezen. |
outputs.result |
De locatie van de batchsyntheseresultaatbestanden met audio-uitvoer en logboeken. Deze eigenschap heeft het kenmerk Alleen-lezen. |
properties |
Een gedefinieerde set configuratie-instellingen voor batchsynthese. |
properties.sizeInBytes |
De audio-uitvoergrootte in bytes. Deze eigenschap heeft het kenmerk Alleen-lezen. |
properties.billingDetails |
Het aantal woorden dat is verwerkt en gefactureerd door customNeuralCharacters stemmen neuralCharacters (vooraf gedefinieerd).Deze eigenschap heeft het kenmerk Alleen-lezen. |
properties.concatenateResult |
Bepaalt of het resultaat moet worden samengevoegd. Deze optionele bool waarde ('true' of 'false') is standaard 'false'. |
properties.decompressOutputFiles |
Bepaalt of de syntheseresultatenbestanden in de doelcontainer moeten worden uitgepakt. Deze eigenschap kan alleen worden ingesteld wanneer de destinationContainerUrl eigenschap is ingesteld. Deze optionele bool waarde ('true' of 'false') is standaard 'false'. |
properties.destinationContainerUrl |
De resultaten van batchsynthese kunnen worden opgeslagen in een beschrijfbare Azure-container. Als u geen container-URI met SAS-token (Shared Access Signatures) opgeeft, worden de resultaten opgeslagen in een container die wordt beheerd door Microsoft. SAS met opgeslagen toegangsbeleid wordt niet ondersteund. Wanneer de synthesetaak wordt verwijderd, worden de resultaatgegevens ook verwijderd. Deze optionele eigenschap wordt niet opgenomen in het antwoord wanneer u de synthesetaak krijgt. |
properties.destinationPath |
Het voorvoegselpad waarin batchsyntheseresultaten kunnen worden opgeslagen. Als u geen voorvoegselpad opgeeft, is YourSpeechResourceId/YourSynthesisId het standaardvoorvoegselpad.Deze optionele eigenschap kan alleen worden ingesteld wanneer de destinationContainerUrl eigenschap is ingesteld. |
properties.durationInMilliseconds |
De audio-uitvoerduur in milliseconden. Deze eigenschap heeft het kenmerk Alleen-lezen. |
properties.failedAudioCount |
Het aantal batchsynthese-invoer voor audio-uitvoer is mislukt. Deze eigenschap heeft het kenmerk Alleen-lezen. |
properties.outputFormat |
De audio-uitvoerindeling. Zie audio-uitvoerindelingen voor informatie over de geaccepteerde waarden. De standaarduitvoerindeling is riff-24khz-16bit-mono-pcm . |
properties.sentenceBoundaryEnabled |
Bepaalt of u zingrensgegevens wilt genereren. Deze optionele bool waarde ('true' of 'false') is standaard 'false'.Als zinnengrensgegevens worden aangevraagd, wordt er een bijbehorend [nnnn].sentence.json bestand opgenomen in het ZIP-bestand met resultatengegevens. |
properties.succeededAudioCount |
Het aantal batchsynthese-invoer voor audio-uitvoer is geslaagd. Deze eigenschap heeft het kenmerk Alleen-lezen. |
properties.timeToLiveInHours |
Een duur in uren nadat de synthesetaak is gemaakt, wanneer de syntheseresultaten automatisch worden verwijderd. Deze optionele instelling is 744 standaard (31 dagen). De maximale tijd tot leven is 31 dagen. De datum en tijd van automatische verwijdering (voor synthesetaken met de status Geslaagd of Mislukt) is gelijk aan de lastActionDateTime + timeToLiveInHours eigenschappen.Anders kunt u de synthesemethode voor verwijderen aanroepen om de taak eerder te verwijderen. |
properties.wordBoundaryEnabled |
Bepaalt of er woordgrensgegevens moeten worden gegenereerd. Deze optionele bool waarde ('true' of 'false') is standaard 'false'.Als woordgrensgegevens worden aangevraagd, wordt er een bijbehorend [nnnn].word.json bestand opgenomen in het ZIP-bestand met resultatengegevens. |
status |
De verwerkingsstatus van de batchsynthese. De status moet worden voortgezet van 'NotStarted' naar 'Wordt uitgevoerd' en ten slotte naar 'Geslaagd' of 'Mislukt'. Deze eigenschap heeft het kenmerk Alleen-lezen. |
synthesisConfig |
De configuratie-instellingen die moeten worden gebruikt voor batchsynthese van tekst zonder opmaak. Deze eigenschap is alleen van toepassing wanneer inputKind deze is ingesteld op "PlainText" . |
synthesisConfig.backgroundAudio |
De achtergrondaudio voor elke audio-uitvoer. Deze optionele eigenschap is alleen van toepassing wanneer inputKind deze is ingesteld op "PlainText" . |
synthesisConfig.backgroundAudio.fadein |
De duur van de achtergrondaudio vervaagt in milliseconden. De standaardwaarde is 0 , wat gelijk is aan geen vervagen. Geaccepteerde waarden: 0 tot 10000 inclusief.Zie de tabel met kenmerken onder Achtergrondaudio toevoegen in de SSML-documentatie (Speech Synthesis Markup Language). Ongeldige waarden worden genegeerd. Deze optionele eigenschap is alleen van toepassing wanneer inputKind deze is ingesteld op "PlainText" . |
synthesisConfig.backgroundAudio.fadeout |
De duur van de achtergrondaudio vervaagt in milliseconden. De standaardwaarde is 0 , wat gelijk is aan geen vervagen. Geaccepteerde waarden: 0 tot 10000 inclusief.Zie de tabel met kenmerken onder Achtergrondaudio toevoegen in de SSML-documentatie (Speech Synthesis Markup Language). Ongeldige waarden worden genegeerd. Deze optionele eigenschap is alleen van toepassing wanneer inputKind deze is ingesteld op "PlainText" . |
synthesisConfig.backgroundAudio.src |
De URI-locatie van het achtergrondaudiobestand. Zie de tabel met kenmerken onder Achtergrondaudio toevoegen in de SSML-documentatie (Speech Synthesis Markup Language). Ongeldige waarden worden genegeerd. Deze eigenschap is vereist wanneer synthesisConfig.backgroundAudio deze is ingesteld. |
synthesisConfig.backgroundAudio.volume |
Het volume van het achtergrondaudiobestand. Geaccepteerde waarden: 0 tot 100 inclusief. De standaardwaarde is 1 .Zie de tabel met kenmerken onder Achtergrondaudio toevoegen in de SSML-documentatie (Speech Synthesis Markup Language). Ongeldige waarden worden genegeerd. Deze optionele eigenschap is alleen van toepassing wanneer inputKind deze is ingesteld op "PlainText" . |
synthesisConfig.pitch |
De toonhoogte van de audio-uitvoer. Zie de tabel Prosody aanpassen in de SSML-documentatie (Speech Synthesis Markup Language) voor informatie over de geaccepteerde waarden. Ongeldige waarden worden genegeerd. Deze optionele eigenschap is alleen van toepassing wanneer inputKind deze is ingesteld op "PlainText" . |
synthesisConfig.rate |
De snelheid van de audio-uitvoer. Zie de tabel Prosody aanpassen in de SSML-documentatie (Speech Synthesis Markup Language) voor informatie over de geaccepteerde waarden. Ongeldige waarden worden genegeerd. Deze optionele eigenschap is alleen van toepassing wanneer inputKind deze is ingesteld op "PlainText" . |
synthesisConfig.role |
Voor sommige stemmen kunt u het spreekrolspel aanpassen. De stem kan een andere leeftijd en geslacht imiteren, maar de naam van de stem wordt niet gewijzigd. Een mannelijke stem kan bijvoorbeeld de toonhoogte verhogen en de intonatie wijzigen om een vrouwelijke stem te imiteren, maar de naam van de stem wordt niet gewijzigd. Als de rol ontbreekt of niet wordt ondersteund voor uw stem, wordt dit kenmerk genegeerd. Zie spraakstijlen en -rollen voor informatie over de beschikbare stijlen per stem. Deze optionele eigenschap is alleen van toepassing wanneer inputKind deze is ingesteld op "PlainText" . |
synthesisConfig.speakerProfileId |
De sprekerprofiel-id van een persoonlijke stem. Zie Persoonlijke stem integreren voor informatie over de beschikbare namen van persoonlijke voicebasismodellen. Zie taal- en spraakondersteuning voor informatie over het ophalen van de sprekerprofiel-id. Deze eigenschap is vereist wanneer inputKind deze is ingesteld op "PlainText" . |
synthesisConfig.style |
Voor sommige stemmen kunt u de spreekstijl aanpassen om verschillende emoties uit te drukken, zoals vrolijkheid, empathie en kalmte. U kunt de stem optimaliseren voor verschillende scenario's, zoals klantenservice, newscast en spraakassistent. Zie spraakstijlen en -rollen voor informatie over de beschikbare stijlen per stem. Deze optionele eigenschap is alleen van toepassing wanneer synthesisConfig.style deze is ingesteld. |
synthesisConfig.styleDegree |
De intensiteit van de spreekstijl. U kunt een sterkere of zachtere stijl opgeven om de spraak meer expressief of onderbroken te maken. Het bereik van geaccepteerde waarden is: 0,01 tot 2 inclusief. De standaardwaarde is 1, wat betekent dat de vooraf gedefinieerde stijlintensiteit. De minimumeenheid is 0,01, wat resulteert in een lichte tendens voor de doelstijl. Een waarde van 2 resulteert in een verdubbeling van de standaardstijlintensiteit. Als de stijlgraad ontbreekt of niet wordt ondersteund voor uw stem, wordt dit kenmerk genegeerd. Zie spraakstijlen en -rollen voor informatie over de beschikbare stijlen per stem. Deze optionele eigenschap is alleen van toepassing wanneer inputKind deze is ingesteld op "PlainText" . |
synthesisConfig.voice |
De stem die de audio-uitvoer spreekt. Zie taal- en spraakondersteuning voor informatie over de beschikbare vooraf samengestelde neurale stemmen. Als u een aangepaste stem wilt gebruiken, moet u een geldige aangepaste spraak- en implementatie-id-toewijzing opgeven in de customVoices eigenschap. Als u een persoonlijke stem wilt gebruiken, moet u de synthesisConfig.speakerProfileId eigenschap opgeven. Deze eigenschap is vereist wanneer inputKind deze is ingesteld op "PlainText" . |
synthesisConfig.volume |
Het volume van de audio-uitvoer. Zie de tabel Prosody aanpassen in de SSML-documentatie (Speech Synthesis Markup Language) voor informatie over de geaccepteerde waarden. Ongeldige waarden worden genegeerd. Deze optionele eigenschap is alleen van toepassing wanneer inputKind deze is ingesteld op "PlainText" . |
inputKind |
Hiermee wordt aangegeven of de inputs teksteigenschap tekst zonder opmaak of SSML moet zijn. De mogelijke hoofdlettergevoelige waarden zijn 'PlainText' en 'SSML'. Wanneer de inputKind eigenschap is ingesteld "PlainText" op , moet u ook de synthesisConfig spraakeigenschap instellen.Deze eigenschap is vereist. |
Latentie en best practices voor batchsynthese
Wanneer u batchsynthese gebruikt voor het genereren van gesynthetiseerde spraak, is het belangrijk om rekening te houden met de latentie die betrokken is en best practices te volgen voor het bereiken van optimale resultaten.
Latentie in batchsynthese
De latentie in batchsynthese is afhankelijk van verschillende factoren, waaronder de complexiteit van de invoertekst, het aantal invoerinvoer in de batch en de verwerkingsmogelijkheden van de onderliggende hardware.
De latentie voor batchsynthese is als volgt (ongeveer):
De latentie van 50% van de gesynthetiseerde spraakuitvoer is binnen 10-20 seconden.
De latentie van 95% van de gesynthetiseerde spraakuitvoer is binnen 120 seconden.
Aanbevolen procedures
Wanneer u batchsynthese voor uw toepassing overweegt, is het raadzaam om te beoordelen of de latentie voldoet aan uw vereisten. Als de latentie overeenkomt met de gewenste prestaties, kan batchsynthese een geschikte keuze zijn. Als de latentie echter niet aan uw behoeften voldoet, kunt u overwegen om realtime-API te gebruiken.
HTTP-statuscode
In de sectie worden de HTTP-antwoordcodes en -berichten van de batchsynthese-API beschreven.
HTTP 200 OK
HTTP 200 OK geeft aan dat de aanvraag is geslaagd.
HTTP 201 gemaakt
HTTP 201 Created geeft aan dat de aanvraag voor batchsynthese (via HTTP POST) is gemaakt.
HTTP 204-fout
Een HTTP 204-fout geeft aan dat de aanvraag is geslaagd, maar dat de resource niet bestaat. Voorbeeld:
- U hebt geprobeerd een synthesetaak te verkrijgen of te verwijderen die niet bestaat.
- U hebt een synthesetaak verwijderd.
HTTP 400-fout
Hier volgen voorbeelden die kunnen leiden tot de 400-fout:
- De
outputFormat
naam wordt niet ondersteund of is ongeldig. Geef een geldige notatiewaarde op of laatoutputFormat
leeg om de standaardinstelling te gebruiken. - Het aantal aangevraagde tekstinvoeren heeft de limiet van 10.000 overschreden.
- U hebt geprobeerd een ongeldige implementatie-id of een aangepaste spraak te gebruiken die niet is geïmplementeerd. Zorg ervoor dat de Spraak-resource toegang heeft tot de aangepaste spraak en dat de aangepaste spraak is geïmplementeerd. U moet er ook voor zorgen dat de toewijzing
{"your-custom-voice-name": "your-deployment-ID"}
juist is in uw batchsyntheseaanvraag. - U hebt geprobeerd een F0 Speech-resource te gebruiken, maar de regio ondersteunt alleen de prijscategorie Standard Speech-resources.
HTTP 404-fout
De opgegeven entiteit kan niet worden gevonden. Zorg ervoor dat de synthese-id juist is.
HTTP 429-fout
Er zijn te veel recente aanvragen. Elke clienttoepassing kan maximaal 100 aanvragen per 10 seconden verzenden voor elke Speech-resource. Verminder het aantal aanvragen per seconde.
HTTP 500-fout
HTTP 500 Interne serverfout geeft aan dat de aanvraag is mislukt. De hoofdtekst van het antwoord bevat het foutbericht.
Voorbeeld van HTTP-fout
Hier volgt een voorbeeld van een aanvraag die resulteert in een HTTP 400-fout, omdat de inputs
eigenschap is vereist om een taak te maken.
curl -v -X PUT -H "Ocp-Apim-Subscription-Key: YourSpeechKey" -H "Content-Type: application/json" -d '{
"inputKind": "SSML"
}' "https://YourSpeechRegion.api.cognitive.microsoft.com/texttospeech/batchsyntheses/YourSynthesisId?api-version=2024-04-01"
In dit geval bevatten HTTP/1.1 400 Bad Request
de antwoordheaders .
De hoofdtekst van het antwoord lijkt op het volgende JSON-voorbeeld:
{
"error": {
"code": "BadRequest",
"message": "The inputs is required."
}
}