Aller au contenu principal

Comment utiliser le plugin

Le plugin Runtime Text To Speech synthétise du texte en parole en utilisant des modèles vocaux téléchargeables. Ces modèles sont gérés dans les paramètres du plugin dans l'éditeur, téléchargés et empaquetés pour une utilisation à l'exécution. Suivez les étapes ci-dessous pour commencer.

Côté éditeur

Téléchargez les modèles vocaux appropriés pour votre projet comme décrit ici. Vous pouvez télécharger plusieurs modèles vocaux simultanément.

Côté runtime

Créez le synthétiseur en utilisant la fonction CreateRuntimeTextToSpeech. Assurez-vous de maintenir une référence à celui-ci (par exemple comme une variable séparée dans Blueprints ou une UPROPERTY en C++) pour éviter qu'il ne soit collecté par le garbage collector.

Un exemple de création d'un synthétiseur Runtime Text To Speech dans Blueprints

Synthèse de la parole

Le plugin propose deux modes de synthèse vocale :

  1. Synthèse vocale standard : Synthétise l'intégralité du texte et renvoie l'audio complet une fois terminé
  2. Synthèse vocale en streaming : Fournit des segments audio au fur et à mesure de leur génération, permettant un traitement en temps réel

Chaque mode prend en charge deux méthodes pour sélectionner les modèles vocaux :

  • Par nom : Sélectionne un modèle vocal par son nom (recommandé pour UE 5.4+)
  • Par objet : Sélectionne un modèle vocal par référence directe (recommandé pour UE 5.3 et versions antérieures)

Synthèse vocale standard

Par nom

La fonction Text To Speech (By Name) est plus pratique dans les Blueprints à partir de UE 5.4. Elle permet de sélectionner les modèles vocaux dans une liste déroulante des modèles téléchargés. Dans les versions UE inférieures à 5.3, cette liste déroulante n'apparaît pas, donc si vous utilisez une version plus ancienne, vous devrez parcourir manuellement le tableau des modèles vocaux renvoyé par GetDownloadedVoiceModels pour sélectionner celui dont vous avez besoin.

Exemple d'utilisation de Text To Speech par nom dans les Blueprints

Par Objet

La fonction Text To Speech (By Object) fonctionne sur toutes les versions d'Unreal Engine mais présente les modèles vocaux sous forme de liste déroulante de références d'assets, ce qui est moins intuitif. Cette méthode est adaptée pour UE 5.3 et versions antérieures, ou si votre projet nécessite une référence directe à un asset de modèle vocal pour une raison quelconque.

Un exemple d'utilisation de Text To Speech par Objet dans les Blueprints

Si vous avez téléchargé les modèles mais ne les voyez pas, ouvrez le menu déroulant Voice Model, cliquez sur les paramètres (icône d'engrenage), et activez à la fois Show Plugin Content et Show Engine Content pour rendre les modèles visibles.

Synthèse vocale en streaming

Pour les textes longs ou lorsque vous souhaitez traiter les données audio en temps réel au fur et à mesure de leur génération, vous pouvez utiliser les versions streaming des fonctions de synthèse vocale :

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

Ces fonctions fournissent les données audio par morceaux au fur et à mesure de leur génération, permettant un traitement immédiat sans attendre la fin complète de la synthèse. Ceci est utile pour diverses applications comme la lecture audio en temps réel, la visualisation live, ou tout scénario nécessitant un traitement incrémental des données vocales.

Streaming par nom

La fonction Streaming Text To Speech (By Name) fonctionne de manière similaire à la version standard mais fournit l'audio par morceaux via le délégué On Speech Chunk.

Un exemple d'utilisation de Streaming Text To Speech by Name dans Blueprints

Streaming Par Objet

La fonction Streaming Text To Speech (By Object) offre les mêmes capacités de streaming mais prend une référence d'objet de modèle vocal.

Un exemple d'utilisation de Streaming Text To Speech by Object dans Blueprints

Lecture audio

Pour la synthèse vocale standard (non-streaming), le délégué On Speech Result fournit l'audio synthétisé sous forme de données PCM en format float (sous forme de tableau d'octets dans Blueprints ou TArray<uint8> en C++), ainsi que le Sample Rate et Num Of Channels.

Pour la lecture, il est recommandé d'utiliser le plugin Runtime Audio Importer pour convertir les données audio brutes en une onde sonore jouable.

Voici un exemple de ce à quoi pourraient ressembler les nœuds Blueprint pour synthétiser du texte et lire l'audio (Nœuds copiables) :

Annulation de la synthèse vocale

Vous pouvez annuler une opération de synthèse vocale en cours à tout moment en appelant la fonction CancelSpeechSynthesis sur votre instance de synthétiseur :

Annulation de la synthèse vocale dans Blueprints

Lorsqu'une synthèse est annulée :

  • Le processus de synthèse s'arrêtera dès que possible
  • Tous les callbacks en cours seront interrompus
  • Le délégué de complétion sera appelé avec bSuccess = false et un message d'erreur indiquant que la synthèse a été annulée
  • Toutes les ressources allouées pour la synthèse seront correctement nettoyées

Ceci est particulièrement utile pour les textes longs ou lorsque vous devez interrompre la lecture pour démarrer une nouvelle synthèse.

Sélection du Speaker

Les deux fonctions Text To Speech acceptent un paramètre optionnel d'ID de speaker, ce qui est utile lorsque vous travaillez avec des modèles vocaux prenant en charge plusieurs speakers. Vous pouvez utiliser les fonctions GetSpeakerCountFromVoiceModel ou GetSpeakerCountFromModelName pour vérifier si plusieurs speakers sont supportés par votre modèle vocal choisi. Si plusieurs speakers sont disponibles, spécifiez simplement l'ID du speaker souhaité lors de l'appel des fonctions Text To Speech. Certains modèles vocaux offrent une grande variété - par exemple, English LibriTTS inclut plus de 900 speakers différents parmi lesquels choisir.

Le plugin Runtime Audio Importer propose également des fonctionnalités supplémentaires comme l'export des données audio vers un fichier, leur passage à SoundCue, MetaSound, et plus encore. Pour plus de détails, consultez la documentation Runtime Audio Importer.