Passa al contenuto principale

Come usare il plugin

Il plugin Runtime Text To Speech sintetizza il testo in voce utilizzando modelli vocali scaricabili. Questi modelli vengono gestiti nelle impostazioni del plugin all'interno dell'editor, scaricati e impacchettati per l'uso a runtime. Segui i passaggi qui sotto per iniziare.

Lato editor

Scarica i modelli vocali appropriati per il tuo progetto come descritto qui. Puoi scaricare più modelli vocali contemporaneamente.

Lato runtime

Crea il sintetizzatore utilizzando la funzione CreateRuntimeTextToSpeech. Assicurati di mantenere un riferimento ad esso (ad esempio come variabile separata in Blueprints o UPROPERTY in C++) per evitare che venga eliminato dal garbage collector.

Un esempio di creazione di un sintetizzatore Runtime Text To Speech in Blueprints

Sintesi Vocale

Il plugin offre due modalità di sintesi vocale da testo:

  1. Sintesi Vocale Regolare: Sintetizza l'intero testo e restituisce l'audio completo al termine
  2. Sintesi Vocale in Streaming: Fornisce frammenti audio man mano che vengono generati, consentendo un'elaborazione in tempo reale

Ogni modalità supporta due metodi per selezionare i modelli vocali:

  • Per Nome: Seleziona un modello vocale tramite il suo nome (consigliato per UE 5.4+)
  • Per Oggetto: Seleziona un modello vocale tramite riferimento diretto (consigliato per UE 5.3 e versioni precedenti)

Sintesi Vocale Regolare

Per Nome

La funzione Text To Speech (By Name) è più comoda negli Blueprints a partire da UE 5.4. Ti consente di selezionare i modelli vocali da un menu a tendina dei modelli scaricati. Nelle versioni UE inferiori alla 5.3, questo menu a tendina non appare, quindi se stai utilizzando una versione precedente, dovrai scorrere manualmente l'array dei modelli vocali restituito da GetDownloadedVoiceModels per selezionare quello necessario.

Un esempio di utilizzo di Text To Speech by Name negli Blueprints

Per Oggetto

La funzione Text To Speech (By Object) funziona su tutte le versioni di Unreal Engine ma presenta i modelli vocali come un elenco a discesa di riferimenti agli asset, il che è meno intuitivo. Questo metodo è adatto per UE 5.3 e versioni precedenti, o se il tuo progetto richiede un riferimento diretto a un asset del modello vocale per qualsiasi motivo.

Un esempio di utilizzo di Text To Speech by Object in Blueprints

Se hai scaricato i modelli ma non riesci a vederli, apri il menu a discesa Voice Model, clicca sulle impostazioni (icona dell'ingranaggio) e abilita sia Mostra Contenuti Plugin che Mostra Contenuti Engine per rendere visibili i modelli.

Sintesi Vocale in Streaming

Per testi più lunghi o quando si desidera elaborare i dati audio in tempo reale man mano che vengono generati, è possibile utilizzare le versioni in streaming delle funzioni di Sintesi Vocale:

  • Streaming Text To Speech (By Name) (StreamingTextToSpeechByName in C++)
  • Streaming Text To Speech (By Object) (StreamingTextToSpeechByObject in C++)

Queste funzioni forniscono i dati audio in blocchi man mano che vengono generati, consentendo un'elaborazione immediata senza dover attendere il completamento dell'intera sintesi. Ciò è utile per varie applicazioni come la riproduzione audio in tempo reale, la visualizzazione live o qualsiasi scenario in cui è necessario elaborare i dati vocali in modo incrementale.

Streaming By Name

La funzione Streaming Text To Speech (By Name) funziona in modo simile alla versione regolare ma fornisce l'audio in blocchi attraverso il delegato On Speech Chunk.

Un esempio di utilizzo di Streaming Text To Speech by Name in Blueprints

Streaming Per Oggetto

La funzione Streaming Text To Speech (By Object) fornisce la stessa funzionalità di streaming ma prende un riferimento all'oggetto modello vocale.

Un esempio di utilizzo di Streaming Text To Speech by Object in Blueprints

Riproduzione Audio

Per il text-to-speech regolare (non in streaming), il delegato On Speech Result fornisce l'audio sintetizzato come dati PCM in formato float (come un array di byte in Blueprints o TArray<uint8> in C++), insieme al Sample Rate e al Num Of Channels.

Per la riproduzione, si consiglia di utilizzare il plugin Runtime Audio Importer per convertire i dati audio grezzi in un'onda sonora riproducibile.

Ecco un esempio di come potrebbero apparire i nodi Blueprint per sintetizzare il testo e riprodurre l'audio (Nodi copiabili):

Annullamento del Text-to-Speech

Puoi annullare un'operazione di sintesi vocale in corso in qualsiasi momento chiamando la funzione CancelSpeechSynthesis sulla tua istanza del sintetizzatore:

Annullamento del Text To Speech in Blueprints

Quando una sintesi viene annullata:

  • Il processo di sintesi si interromperà il prima possibile
  • Qualsiasi callback in corso verrà terminata
  • Il delegato di completamento verrà chiamato con bSuccess = false e un messaggio di errore che indica che la sintesi è stata annullata
  • Qualsiasi risorsa allocata per la sintesi verrà adeguatamente ripulita

Questo è particolarmente utile per testi lunghi o quando è necessario interrompere la riproduzione per avviare una nuova sintesi.

Selezione del Parlante

Entrambe le funzioni Text To Speech accettano un parametro opzionale ID parlante, che è utile quando si lavora con modelli vocali che supportano più parlanti. Puoi utilizzare le funzioni GetSpeakerCountFromVoiceModel o GetSpeakerCountFromModelName per verificare se il modello vocale scelto supporta più parlanti. Se sono disponibili più parlanti, specifica semplicemente l'ID del parlante desiderato quando chiami le funzioni Text To Speech. Alcuni modelli vocali offrono un'ampia varietà - ad esempio, English LibriTTS include oltre 900 parlanti diversi tra cui scegliere.

Il plugin Runtime Audio Importer fornisce anche funzionalità aggiuntive come l'esportazione dei dati audio in un file, il passaggio a SoundCue, MetaSound e altro ancora. Per ulteriori dettagli, consulta la documentazione di Runtime Audio Importer.