Proprietà di sintesi batch per l'avatar di sintesi vocale

Le proprietà di sintesi batch possono essere raggruppate in: proprietà correlate all'avatar, proprietà correlate ai processi batch e proprietà correlate alla sintesi vocale, descritte nelle tabelle seguenti.

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 da cui è possibile scaricare un file video contenente il video dell’avatar. Da outputs.summary, è possibile accedere ai dettagli di riepilogo e debug.

Proprietà avatar

Nella tabella seguente vengono descritte le proprietà avatar.

Proprietà Descrizione
avatarConfig.talkingAvatarCharacter Nome personaggio dell'avatar parlante.

I personaggi avatar supportati sono disponibili qui.

Questa proprietà è obbligatoria.
avatarConfig.talkingAvatarStyle Nome dello stile dell'avatar parlante.

Gli stili di avatar supportati sono disponibili qui.

Questa proprietà è necessaria per l'avatar predefinito e facoltativa per l'avatar personalizzato.
avatarConfig.customized Valore bool che indica se l'avatar da usare sia o meno un avatar personalizzato. True per avatar personalizzato e false per avatar predefinito.

Questa proprietà è facoltativa e il valore predefinito è false.
avatarConfig.videoFormat Il formato per il file video di output può essere mp4 o webm.

Il formato webm è necessario per lo sfondo trasparente.

Questa proprietà è facoltativa e il valore predefinito è mp4.
avatarConfig.videoCodec Il codec per il video di output potrebbe essere h264, hevc o vp9.

Vp9 è necessario per lo sfondo trasparente. La velocità di sintesi sarà più lenta con il codec vp9, poiché la codifica vp9 è più lenta.

Questa proprietà è facoltativa e il valore predefinito è hevc.
avatarConfig.bitrateKbps Velocità in bit per il video di output, ovvero un valore intero con unità kbps.

Questa proprietà è facoltativa e il valore predefinito è 2000.
avatarConfig.videoCrop Questa proprietà consente di ritagliare l'output video, ovvero di restituire un sottoarea rettangolare del video originale. Questa proprietà ha due campi che definiscono il vertice superiore sinistro e il vertice inferiore destro del rettangolo.

Questa proprietà è facoltativa e il comportamento predefinito consiste nell'effettuare l’output del video completo.
avatarConfig.videoCrop.topLeft Vertice superiore sinistro del rettangolo per il ritaglio video. Questa proprietà ha due campi x e y per definire la posizione orizzontale e verticale del vertice.

Questa proprietà è obbligatoria quando properties.videoCrop è impostato.
avatarConfig.videoCrop.bottomRight Vertice inferiore destro del rettangolo per il ritaglio video. Questa proprietà ha due campi x e y per definire la posizione orizzontale e verticale del vertice.

Questa proprietà è obbligatoria quando properties.videoCrop è impostato.
avatarConfig.subtitleType Il tipo di sottotitolo per il file video avatar può essere external_file, soft_embedded, hard_embedded o none.

Questa proprietà è facoltativa e il valore predefinito è soft_embedded.
avatarConfig.backgroundImage Aggiungere un'immagine di sfondo usando la proprietà avatarConfig.backgroundImage. Il valore della proprietà deve essere un URL che punta all'immagine desiderata. Questa proprietà è facoltativa.
avatarConfig.backgroundColor Colore di sfondo del video avatar, ovvero una stringa in formato #RRGGBBAA. In questa stringa: RR, GG, BB e AA significano i canali alfa rosso, verde, blu, con intervallo di valori esadecimali 00~FF. Il canale alfa controlla la trasparenza, con valore 00 per transparente, valore FF per non trasparente e valore compreso tra 00 e FF per semitrasparente.

Questa proprietà è facoltativa e il valore predefinito è #FFFFFFFF (bianco).
outputs.result Percorso del file di risultato della sintesi batch, ovvero un file video contenente l'avatar sintetizzato.

Questa proprietà è di sola lettura.
properties.DurationInMilliseconds Durata dell'output video in millisecondi.

Questa proprietà è di sola lettura.

Proprietà del processo di sintesi batch

La seguente tabella descrive le proprietà del processo di sintesi batch.

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

Questa proprietà è di sola lettura.
description Descrizione della sintesi batch.

Questa proprietà è facoltativa.
ID ID processo di sintesi batch.

Questa proprietà è di sola lettura.
lastActionDateTime Data e ora della modifica più recente del valore della proprietà di stato.

Questa proprietà è di sola lettura.
proprietà Set definito di impostazioni di configurazione facoltative per la sintesi batch.
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.timeToLiveInHours Durata in ore dopo la creazione del processo di sintesi, quando i risultati della sintesi verranno eliminati automaticamente. La durata massima è di 744 ore. Per i processi di sintesi con stato “Succeeded” o “Failed”, la data e l'ora dell'eliminazione automatica viene calcolata come somma delle proprietà lastActionDateTime e timeToLive.

Altrimenti, è possibile chiamare il metodo elimina sintesi per rimuovere il processo in anticipo.
stato 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.

Proprietà sintesi vocale

La tabella seguente descrive le proprietà di sintesi vocale.

Proprietà Descrizione
customVoices Una voce neurale personalizzata è associata a un nome e al relativo ID distribuzione, come indicato di seguito: "customVoices": {"your-custom-voice-name": "502ac834-6537-4bc3-9fd6-140114daa66d"}

È possibile usare il nome della voce in synthesisConfig.voice quando inputKind è impostato su "PlainText" o all'interno del testo SSML degli input quando inputKind è impostato su "SSML".

Questa proprietà è necessaria per poter usare una voce personalizzata. Se si tenta di usare una voce personalizzata non definita qui, il servizio restituirà un errore.
input Testo normale o SSML da sintetizzare.

Quando inputKind è impostato su "PlainText", fornire testo normale, come illustrato di seguito: "inputs": [{"content": "The rainbow has seven colors."}]. Quando inputKind è impostato su "SSML", fornire il testo in linguaggio markup di sintesi vocale (SSML), come illustrato di seguito: "inputs": [{"content": "<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."}].

Se si desiderano più file di output video, includere fino a 1.000 oggetti di testo. Di seguito è riportato un esempio di testo di input che deve essere sintetizzato in due file di output video: "inputs": [{"content": "synthesize this to a file"},{"content": "synthesize this to another file"}].

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). Di seguito è riportato un esempio di testo di input con due paragrafi che devono essere sintetizzati nello stesso file di output audio: "inputs": [{"content": "synthesize this to a file\r\nsynthesize this to another paragraph in the same file"}]

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.
properties.billingDetails Numero di parole elaborate e fatturate da voci neurali personalizzate rispetto a quelle neurali predefinite.

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

Questa proprietà è applicabile solo quando inputKind è impostato su "PlainText".
synthesisConfig.pitch L’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 è impostato 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 è impostato su "PlainText".
synthesisConfig.style Per alcune voci è possibile regolare lo stile del parlato per esprimere emozioni diverse come allegra, 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 inputKind è impostato su "PlainText".
synthesisConfig.voice Voce che pronuncia l'output audio.

Per informazioni sulle voci neurali predefinite disponibili, consultare Supporto lingue e voci. Per usare una voce personalizzata, è necessario specificare un mapping di ID voce personalizzata e distribuzione valido nella proprietà customVoices.

Questa proprietà è obbligatoria quando inputKind è impostato 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 è impostato su "PlainText".
inputKind Indica se la proprietà di testo di input debba essere testo normale o SSML. I possibili valori (senza distinzione tra maiuscole e minuscole) sono "PlainText" e "SSML". Quando inputKind è impostato su "PlainText", è necessario impostare anche la proprietà voice synthesisConfig.

Questa proprietà è obbligatoria.

Come modificare lo sfondo

Attualmente, l'API di sintesi batch dell'avatar non supporta l'impostazione di video di sfondo, ma solo di immagini di sfondo statiche. Tuttavia, se si vuole aggiungere uno sfondo per il video in fase di post-produzione, è possibile generare video con uno sfondo trasparente.

Per impostare un'immagine di sfondo statica, è sufficiente usare la proprietà avatarConfig.backgroundImage e specificare un URL che punta all'immagine desiderata. È anche possibile impostare il colore di sfondo del video avatar usando la proprietà avatarConfig.backgroundColor.

Per generare un video con sfondo trasparente, è necessario impostare le seguenti proprietà nella richiesta di sintesi batch sui valori necessari:

Proprietà Valori obbligatori per la trasparenza dello sfondo
properties.videoFormat webm
properties.videoCodec vp9
properties.backgroundColor #00000000 (o trasparente)

Clipchamp è un esempio di strumento per l’editing video che supporta il video con sfondo trasparente generato dall'API di sintesi batch.

Alcuni software di editing video, come Adobe Premiere Pro, non supportano direttamente il formato webm ma solo video input con sfondo trasparente in formato .mov. In questi casi, è necessario prima convertire il formato video da webm a .mov tramite uno strumento come FFMPEG.

Riga di comando FFMPEG:

ffmpeg -vcodec libvpx-vp9 -i <input.webm> -vcodec png -pix_fmt rgba metadata:s:v:0 alpha_mode="1" <output.mov>

FFMPEG può essere scaricato da ffmpeg.org. Sostituire <input.webm> e <output.mov> con il percorso locale e il nome file nella riga di comando.

Passaggi successivi