Proprietà di sintesi batch per la sintesi vocale

Importante

L'API di sintesi batch è disponibile a livello generale. L'API Audio lungo verrà ritirata il 1° aprile 2027. Per altre informazioni, vedere Eseguire la migrazione all'API di sintesi batch.

L'API di sintesi batch può eseguire in modo asincrono la sintesi di un volume elevato di input di testo (lungo e breve). Gli editori e le piattaforme di contenuti audio possono creare contenuti audio lunghi in un batch. Ad esempio: libri audio, articoli di notizie e documenti. L'API di sintesi batch può creare audio sintetizzato di lunghezza superiore a 10 minuti.

Quando si crea un nuovo processo di sintesi batch, sono necessarie alcune proprietà in formato JSON. Le altre proprietà sono facoltative. La risposta di sintesi batch include altre proprietà volte a fornire informazioni sullo stato e sui risultati della sintesi. Ad esempio, la proprietà outputs.result contiene il percorso dei file dei risultati di sintesi batch con output audio e log.

Proprietà della sintesi batch

Nella tabella seguente sono descritte le proprietà della sintesi batch.

Proprietà Descrizione
createdDateTime Data e ora di creazione del processo di sintesi batch.

Questa proprietà è di sola lettura.
customVoices Mappa di un nome di voce personalizzata e del relativo ID di distribuzione.

Ad esempio: "customVoices": {"your-custom-voice-name": "502ac834-6537-4bc3-9fd6-140114daa66d"}

È possibile usare il nome della voce in synthesisConfig.voice (quando la proprietà inputKind è impostata su "PlainText") o all'interno del testo SSML di inputs (quando inputKind è impostata su "SSML").

Questa proprietà è necessaria per usare una voce personalizzata. Se si cerca di usare una voce personalizzata non definita qui, il servizio restituisce un errore.
description Descrizione della sintesi batch.

Questa proprietà è facoltativa.
id ID processo di sintesi batch passato nel percorso.

Questa proprietà è obbligatoria nel percorso.
inputs Testo normale o SSML da sintetizzare.

Quando la proprietà inputKind è impostata su "PlainText", specificare testo normale, come illustrato qui: "inputs": [{"text": "The rainbow has seven colors."}]. Quando invece inputKind è impostata su "SSML", specificare testo in linguaggio SSML (Speech Synthesis Markup Language), come illustrato qui: "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>"}].

Se si desiderano più file di output audio, includere al massimo 1000 oggetti di testo. Di seguito è riportato un esempio di testo di input da sintetizzare in due file di output audio: "inputs": [{"text": "synthesize this to a file"},{"text": "synthesize this to another file"}]. Tuttavia, se la proprietà properties.concatenateResult è impostata su true, ogni risultato sintetizzato viene scritto nello stesso file di output audio.

Non sono necessari input di testo separati per i nuovi paragrafi. All'interno di uno degli input di testo (fino a 1000) è possibile specificare nuovi paragrafi usando la stringa "\r\n" (nuova riga). Ecco un esempio di testo di input con due paragrafi da sintetizzare nello stesso file di output audio: "inputs": [{"text": "synthesize this to a file\r\nsynthesize this to another paragraph in the same file"}]

Non sono previsti limiti di paragrafo, ma la dimensione massima del payload JSON (inclusi tutti gli input di testo e altre proprietà) è di 2 megabyte.

Questa proprietà è obbligatoria quando si crea un nuovo processo di sintesi batch. Questa proprietà non è inclusa nella risposta quando si ottiene il processo di sintesi.
internalId ID processo di sintesi batch interno.

Questa proprietà è di sola lettura.
lastActionDateTime Data e ora più recenti in cui è stato modificato il valore della proprietà status.

Questa proprietà è di sola lettura.
outputs.result Percorso dei file dei risultati della sintesi batch con output audio e log.

Questa proprietà è di sola lettura.
properties Set definito di impostazioni di configurazione facoltative per la sintesi batch.
properties.sizeInBytes Dimensione dell'output audio in byte.

Questa proprietà è di sola lettura.
properties.billingDetails Numero di parole elaborate e fatturate per voci customNeuralCharacters rispetto a voci neuralCharacters (predefinite).

Questa proprietà è di sola lettura.
properties.concatenateResult Determina se concatenare il risultato. Questo valore bool facoltativo ("true" o "false") è "false" per impostazione predefinita.
properties.decompressOutputFiles Determina se decomprimere i file dei risultati della sintesi nel contenitore di destinazione. Questa proprietà può essere impostata solo quando la proprietà destinationContainerUrl è impostata. Questo valore bool facoltativo ("true" o "false") è "false" per impostazione predefinita.
properties.destinationContainerUrl I risultati della sintesi batch possono essere archiviati in un contenitore di Azure scrivibile. Se non si specifica un URI del contenitore con token di firma di accesso condiviso (SAS), il servizio Voce archivia i risultati in un contenitore gestito da Microsoft. La firma di accesso condiviso con criteri di accesso archiviati non è supportata. Durante l'eliminazione del processo di sintesi vengono eliminati anche i dati dei risultati.

Quando si ottiene il processo di sintesi, questa proprietà facoltativa non è inclusa nella risposta.
properties.destinationPath Percorso del prefisso in cui è possibile archiviare i risultati della sintesi batch. Se non si specifica un percorso di prefisso, il percorso del prefisso predefinito è YourSpeechResourceId/YourSynthesisId.

Questa proprietà facoltativa può essere impostata solo quando la proprietà destinationContainerUrl è impostata.
properties.durationInMilliseconds Durata dell'output audio in millisecondi.

Questa proprietà è di sola lettura.
properties.failedAudioCount Conteggio degli input di sintesi batch nell'output audio non riuscito.

Questa proprietà è di sola lettura.
properties.outputFormat Formato dell'output audio.

Per informazioni sui valori accettati, vedere i formati di output audio. Il formato di output predefinito è riff-24khz-16bit-mono-pcm.
properties.sentenceBoundaryEnabled Determina se generare dati sui limiti di frase. Questo valore bool facoltativo ("true" o "false") è "false" per impostazione predefinita.

Se sono richiesti dati sui limiti di frase, nel file ZIP dei dati relativi ai risultati è incluso un file [nnnn].sentence.json corrispondente.
properties.succeededAudioCount Conteggio degli input di sintesi batch nell'output audio completato.

Questa proprietà è di sola lettura.
properties.timeToLiveInHours Durata in ore dopo la creazione del processo di sintesi, quando i risultati della sintesi verranno eliminati automaticamente. Questa impostazione facoltativa è 744 (31 giorni) per impostazione predefinita. La durata massima è di 31 giorni. La data e l'ora dell'eliminazione automatica (per i processi di sintesi con stato "Succeeded" o "Failed") è uguale alle proprietà lastActionDateTime + timeToLiveInHours.

In alternativa, è possibile chiamare il metodo delete della sintesi per rimuovere il processo in anticipo.
properties.wordBoundaryEnabled Determina se generare dati sui limiti di parola. Questo valore bool facoltativo ("true" o "false") è "false" per impostazione predefinita.

Se sono richiesti dati sui limiti di parola, nel file ZIP dei dati relativi ai risultati è incluso un file [nnnn].word.json corrispondente.
status Stato di elaborazione della sintesi batch.

Lo stato deve passare da "NotStarted" a "Running" e infine a "Succeeded" o "Failed".

Questa proprietà è di sola lettura.
synthesisConfig Impostazioni di configurazione da usare per la sintesi batch di testo normale.

Questa proprietà è applicabile solo quando inputKind è impostata su "PlainText".
synthesisConfig.backgroundAudio Audio in background per ogni output audio.

Questa proprietà facoltativa è applicabile solo quando inputKind è impostata su "PlainText".
synthesisConfig.backgroundAudio.fadein Durata della dissolvenza in entrata dell'audio di sottofondo in millisecondi. Il valore predefinito è 0, che equivale a nessuna dissolvenza in entrata. Valori accettati: da 0 a 10000 inclusi.

Per informazioni, vedere la tabella degli attributi in Aggiungere audio in background nella documentazione di Speech Synthesis Markup Language (SSML). I valori non validi vengono ignorati.

Questa proprietà facoltativa è applicabile solo quando inputKind è impostata su "PlainText".
synthesisConfig.backgroundAudio.fadeout Durata della dissolvenza in uscita dell'audio di sottofondo in millisecondi. Il valore predefinito è 0, che equivale a nessuna dissolvenza in uscita. Valori accettati: da 0 a 10000 inclusi.

Per informazioni, vedere la tabella degli attributi in Aggiungere audio in background nella documentazione di Speech Synthesis Markup Language (SSML). I valori non validi vengono ignorati.

Questa proprietà facoltativa è applicabile solo quando inputKind è impostata su "PlainText".
synthesisConfig.backgroundAudio.src Percorso URI del file audio di sottofondo.

Per informazioni, vedere la tabella degli attributi in Aggiungere audio in background nella documentazione di Speech Synthesis Markup Language (SSML). I valori non validi vengono ignorati.

Questa proprietà è obbligatoria quando synthesisConfig.backgroundAudio è impostata.
synthesisConfig.backgroundAudio.volume Volume del file audio di sottofondo. Valori accettati: da 0 a 100 inclusi. Il valore predefinito è 1.

Per informazioni, vedere la tabella degli attributi in Aggiungere audio in background nella documentazione di Speech Synthesis Markup Language (SSML). I valori non validi vengono ignorati.

Questa proprietà facoltativa è applicabile solo quando inputKind è impostata su "PlainText".
synthesisConfig.pitch Altezza dell'output audio.

Per informazioni sui valori accettati, consultare la tabella Regolare la prosodia nella documentazione del linguaggio SSML (Speech Synthesis Markup Language). I valori non validi vengono ignorati.

Questa proprietà facoltativa è applicabile solo quando inputKind è impostata su "PlainText".
synthesisConfig.rate Frequenza dell'output audio.

Per informazioni sui valori accettati, consultare la tabella Regolare la prosodia nella documentazione del linguaggio SSML (Speech Synthesis Markup Language). I valori non validi vengono ignorati.

Questa proprietà facoltativa è applicabile solo quando inputKind è impostata su "PlainText".
synthesisConfig.role Per alcune voci, è possibile regolare il ruolo di parlante. La voce può imitare un'età e un genere diversi, ma il nome della voce rimane invariato. Ad esempio, una voce maschile può alzare il tono e cambiare l'intonazione per imitare una voce femminile, ma il nome della voce non cambia. Se il ruolo è mancante o non è supportato per la voce, questo attributo viene ignorato.

Per informazioni sugli stili disponibili per le voci, vedere Stili e ruoli vocali.

Questa proprietà facoltativa è applicabile solo quando inputKind è impostata su "PlainText".
synthesisConfig.speakerProfileId ID del profilo dell'altoparlante di una voce personale.

Per informazioni sui nomi dei modelli di base voce personali disponibili, vedere Integrare la voce personale.
Per informazioni su come ottenere l'ID del profilo voce, vedere Lingua e supporto vocale.

Questa proprietà è obbligatoria quando inputKind è impostata su "PlainText".
synthesisConfig.style Per alcune voci è possibile regolare lo stile del parlato per esprimere emozioni diverse come allegria, empatia e calma. È possibile ottimizzare la voce per scenari diversi, ad esempio servizio clienti, notiziario e assistente vocale.

Per informazioni sugli stili disponibili per le voci, vedere Stili e ruoli vocali.

Questa proprietà facoltativa è applicabile solo quando synthesisConfig.style è impostata.
synthesisConfig.styleDegree Intensità dello stile del parlato. È possibile specificare uno stile più forte o più morbido per rendere il parlato più espressivo o pacato. L'intervallo dei valori accettati è compreso tra 0.01 e 2 inclusi. Il valore predefinito è 1, che corrisponde all'intensità predefinita dello stile. L'unità minima è 0.01, che comporta una leggera tendenza allo stile desiderato. Il valore 2 raddoppia l'intensità dello stile predefinito. Se il grado di stile manca o non è supportato per la voce, questo attributo viene ignorato.

Per informazioni sugli stili disponibili per le voci, vedere Stili e ruoli vocali.

Questa proprietà facoltativa è applicabile solo quando inputKind è impostata su "PlainText".
synthesisConfig.voice Voce che pronuncia l'output audio.

Per informazioni sulle voci neurali predefinite disponibili, vedere Lingue e voci supportate. Per usare una voce personalizzata, è necessario specificare un mapping valido di voce personalizzata e ID di distribuzione nella proprietà customVoices. Per usare una voce personale, è necessario specificare la proprietà synthesisConfig.speakerProfileId.

Questa proprietà è obbligatoria quando inputKind è impostata su "PlainText".
synthesisConfig.volume Volume dell'output audio.

Per informazioni sui valori accettati, consultare la tabella Regolare la prosodia nella documentazione del linguaggio SSML (Speech Synthesis Markup Language). I valori non validi vengono ignorati.

Questa proprietà facoltativa è applicabile solo quando inputKind è impostata su "PlainText".
inputKind Indica se la proprietà di testo inputs deve avere un valore di testo normale o SSML. I valori possibili senza distinzione tra maiuscole e minuscole sono "PlainText" e "SSML". Quando inputKind è impostata su "PlainText", è necessario impostare anche la proprietà della voce synthesisConfig.

Questa proprietà è obbligatoria.

Latenza di sintesi batch e procedure consigliate

Quando si usa la sintesi batch per generare la sintesi vocale sintetizzata, è importante considerare la latenza coinvolta e seguire le procedure consigliate per ottenere risultati ottimali.

Latenza nella sintesi batch

La latenza nella sintesi batch dipende da vari fattori, tra cui la complessità del testo di input, il numero di input nel batch e le funzionalità di elaborazione dell'hardware sottostante.

La latenza per la sintesi batch è la seguente (approssimativamente):

  • La latenza del 50% degli output vocali sintetizzati è compresa tra 10 e 20 secondi.

  • La latenza del 95% degli output vocali sintetizzati è compresa tra 120 secondi.

Procedure consigliate

Quando si considera la sintesi batch per l'applicazione, è consigliabile valutare se la latenza soddisfa i requisiti. Se la latenza è allineata alle prestazioni desiderate, la sintesi batch può essere una scelta adatta. Tuttavia, se la latenza non soddisfa le proprie esigenze, è possibile prendere in considerazione l'uso dell'API in tempo reale.

Codici di stato HTTP

Questa sezione descrive in dettaglio i codici di risposta HTTP e i messaggi dell'API di sintesi batch.

HTTP 200 OK

HTTP 200 OK indica che la richiesta ha avuto esito positivo.

HTTP 201 Creato

HTTP 201 Creato indica che la creazione della richiesta di sintesi batch (tramite HTTP POST) ha avuto esito positivo.

Errore HTTP 204

Un errore HTTP 204 indica che la richiesta ha avuto esito positivo, ma la risorsa non esiste. Ad esempio:

  • Si è tentato di ottenere o eliminare un processo di sintesi che non esiste.
  • Si è eliminato correttamente un processo di sintesi.

Errore HTTP 400

Ecco alcuni esempi che possono generare l'errore 400:

  • Il valore di outputFormat non è supportato o non è valido. Specificare un valore di formato valido oppure lasciare vuoto outputFormat per usare l'impostazione predefinita.
  • Il numero di input di testo richiesti ha superato il limite di 10.000.
  • Si è tentato di usare un ID di distribuzione non valido o una voce personalizzata non distribuita correttamente. Assicurarsi che la risorsa Voce abbia accesso alla voce personalizzata e che la voce personalizzata sia distribuita correttamente. È inoltre necessario assicurarsi che nella richiesta di sintesi batch il mapping di {"your-custom-voice-name": "your-deployment-ID"} sia corretto.
  • Si è tentato di usare una risorsa Voce F0, ma l'area supporta solo il piano tariffario per le risorse Voce Standard.

Errore HTTP 404

Non è possibile trovare l'entità specificata. Assicurarsi che l'ID sintesi sia corretto.

Errore HTTP 429

Ci sono troppe richieste recenti. Ogni applicazione client può inviare fino a 100 richieste ogni 10 secondi per ogni risorsa Voce. Ridurre il numero di richieste al secondo.

Errore HTTP 500

L'errore interno del server HTTP 500 indica che la richiesta non è riuscita. Il messaggio di errore è riportato nel corpo della risposta.

Esempio di errore HTTP

Ecco una richiesta di esempio che genera un errore HTTP 400, perché la proprietà inputs è necessaria per creare un processo.

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 questo caso, le intestazioni di risposta includono HTTP/1.1 400 Bad Request.

Il corpo della risposta è simile all'esempio JSON seguente:

{
  "error": {
    "code": "BadRequest",
    "message": "The inputs is required."
  }
}

Passaggi successivi