Générez des sous-titres codés et audio synchronisés à l'aide du générateur de sous-titres Amazon Polly

Amazon Polly, un service de synthèse vocale généré par l'IA, vous permet d'automatiser et de faire évoluer vos solutions vocales interactives, contribuant ainsi à améliorer la productivité et à réduire les coûts.

Alors que nos clients continuent d'utiliser Amazon Polly pour son riche ensemble de fonctionnalités et sa facilité d'utilisation, nous avons observé une demande pour la capacité de générer simultanément de l'audio et des sous-titres synchronisés ou des sous-titres codés pour une entrée de texte donnée. Chez AWS, nous travaillons continuellement à partir des demandes de nos clients, donc dans cet article, nous décrivons une méthode pour générer de l'audio et des sous-titres en même temps pour un texte donné.

Bien que les sous-titres et les légendes soient souvent utilisés de manière interchangeable, y compris dans cet article, il existe des différences subtiles entre eux :

  • Sous-titres - Dans les sous-titres, la langue du texte affichée à l'écran est différente de la langue audio et n'affiche rien pour les non-dialogues comme les sons significatifs. L'objectif principal est d'atteindre le public qui ne parle pas la langue audio de la vidéo.
  • Sous-titres (fermés/ouverts) – Les sous-titres affichent les dialogues parlés dans l'audio dans la même langue. Son objectif principal est d'augmenter l'accessibilité dans les cas où l'audio ne peut pas être entendu par le consommateur final en raison d'une série de problèmes. Les sous-titres codés font partie d'un fichier différent de la source audio/vidéo et peuvent être désactivés et activés à la discrétion de l'utilisateur, tandis que les sous-titres ouverts font partie du fichier vidéo et ne peuvent pas être désactivés par l'utilisateur.

Avantages d'utiliser Amazon Polly pour générer de l'audio avec des sous-titres ou des sous-titres codés

Imaginez le cas d'utilisation suivant : vous préparez une présentation basée sur des diapositives pour un portail d'apprentissage en ligne. Chaque diapositive comprend du contenu à l'écran et une narration. Le contenu à l'écran est un aperçu de base et la narration va dans les détails. Au lieu d'enregistrer une voix humaine, qui peut être lourde et incohérente, vous pouvez utiliser Amazon Polly pour générer la narration. Amazon Polly produit des voix cohérentes de haute qualité. Il n'y a pas besoin de post-production. À l'avenir, si vous devez mettre à jour une partie de la présentation, il vous suffit de mettre à jour les diapositives concernées. La voix correspond aux diapositives originales. De plus, lorsqu'Amazon Polly génère votre audio, des sous-titres sont inclus qui apparaissent en même temps que l'audio. Vous gagnez du temps car aucun enregistrement manuel n'est nécessaire et vous gagnez du temps supplémentaire lorsque des mises à jour sont nécessaires. Votre présentation offre également plus de valeur, car les sous-titres aident les étudiants à consommer le contenu. C'est une solution gagnant-gagnant.

Il existe une multitude de cas d'utilisation des sous-titres, tels que les publicités dans les espaces sociaux, les gymnases, les cafés et d'autres endroits où il y a généralement quelque chose sur un téléviseur avec le son coupé et la musique en arrière-plan ; formation et cours en ligne ; réunions virtuelles ; annonces électroniques publiques; regarder des vidéos pendant les trajets sans casque et sans déranger les co-passagers ; et plusieurs autres.

Quel que soit le domaine d'application, le sous-titrage codé peut aider dans les cas suivants :

  • Accessibilité – Les personnes malentendantes peuvent mieux consommer votre contenu.
  • Rétention – L'apprentissage en ligne est plus facile à saisir et à retenir pour les apprenants en ligne lorsque davantage de sens humains sont impliqués.
  • Atteint – Votre contenu peut atteindre des personnes qui ont des priorités concurrentes, telles que jouer et regarder les actualités simultanément, ou des personnes dont la langue maternelle est différente de la langue audio.
  • Consultables – Le contenu est consultable par les moteurs de recherche. Alors que les vidéos ne peuvent pas être recherchées de manière optimale par la plupart des moteurs de recherche, les moteurs de recherche peuvent utiliser les fichiers texte de légende et rendre votre contenu plus facile à découvrir.
  • Courtoisie sociale – Parfois, il peut être impoli de diffuser de l'audio à cause de votre environnement, ou l'audio peut être difficile à entendre à cause du bruit de votre environnement.
  • Compréhension – Le contenu est plus facile à comprendre, quels que soient l'accent du locuteur, la langue maternelle du locuteur ou la vitesse d'élocution. Vous pouvez également prendre des notes sans regarder plusieurs fois la même scène.

Vue d'ensemble de la solution

La bibliothèque présentée dans cet article utilise Amazon Polly pour générer des sous-titres sonores et codés pour un texte d'entrée. Vous pouvez facilement intégrer cette bibliothèque dans vos applications de synthèse vocale. Il prend en charge plusieurs formats audio et des sous-titres dans les formats de fichier VTT et SRT, qui sont les plus couramment utilisés dans l'industrie.

Dans ce billet, nous nous concentrons sur la PollyVTT() syntaxe et les options, et offrent quelques exemples qui montrent comment utiliser le Python SubtitleGeneratorForPolly pour générer simultanément des fichiers audio et de sous-titres synchrones pour une entrée de texte donnée. Le format de fichier audio de sortie peut être PCM(wav), OGG ou MP3, et le format de fichier de sous-titres peut être VTT ou SRT. Par ailleurs, SubtitleGeneratorForPolly prend en charge tous les Amazon Polly synthesize_speech paramètres et s'ajoute au riche ensemble de fonctionnalités d'Amazon Polly.

La polly-vtt bibliothèque et ses dépendances sont disponibles sur GitHub.

Installer et utiliser la fonction

Avant d'examiner quelques exemples d'utilisation PollyVTT(), la fonction qui alimente SubtitleGeneratorForPolly, regardons son installation et sa syntaxe.

Installez la bibliothèque à l'aide du code suivant :

pip install

Pour exécuter à partir de la ligne de commande, vous exécutez simplement polly-vtt:

Usage: polly-vtt [OPTIONS] BASE_FILENAME VOICE_ID OUTPUT_FORMAT TEXT

Le code suivant affiche vos options :

--caption-format TEXT 'srt' or 'vtt'
--help Show this message and exit. 

BASE_FILENAME: Base filename for both the audio and caption files 
VOICE_ID: Polly voice to use (Case-sensitive)
OUTPUT_FORMAT: Amazon Polly output format: pcm, mp3, ogg_vorbis 
TEXT: Full text to be digitized 
Caption format: srt or vtt

Voyons maintenant quelques exemples.

Exemple 1

Cet exemple génère un fichier audio PCM avec un fichier de sous-titres SRT pour deux phrases simples :

$ polly-vtt testfile Joanna pcm "this is a test. this is a second sentence." --caption-format srt 

testfile.wav written successfully.
testfile.wav.srt written successfully.
Total Audio Length: 0:00:03.017500 
# of Sentences: 2

Exemple 2

Cet exemple montre comment utiliser un paragraphe de texte comme entrée. Cela génère des fichiers audio en WAV, MP3 et OGG, et des sous-titres en SRT et VTT. L'exemple suivant crée six fichiers pour le texte d'entrée donné :

  • pcm_testfile.wav
  • pcm_testfile.wav.vtt
  • mp3_testfile.mp3
  • mp3_testfile.mp3.vtt
  • ogg_testfile.ogg
  • ogg_testfile.ogg.srt

Voir le code suivant:

from polly_vtt import PollyVTT 

text = "News content is shaped by its own unique characteristics. Sentences and paragraphs are usually short and highly in formative because writers have to compress information into a limited space. Depending on the theme, news articles may con tain relevant terminology, place names, abbreviations, people’s names, and quotes. Excellent news writing is clear, precis e, and avoids ambiguity. The writing is dynamic, especially in online articles, because content may get updated multiple times per day as new information becomes available." 

polly_vtt = PollyVTT() 

# pcm with VTT captions 
polly_vtt.generate( 
"pcm_testfile", 
Text=text, 
VoiceId="Joanna", 
OutputFormat="pcm", 
) 

# mp3 with VTT captions 
polly_vtt.generate( 
"mp3_testfile", 
Text=text, 
VoiceId="Joanna", 
OutputFormat="mp3", 
)
 
# ogg with SRT captions 
polly_vtt.generate( 
"ogg_testfile", 
"srt",
Text=text, 
VoiceId="Joanna", 
OutputFormat="ogg_vorbis", 
) 

Exemple 3

Dans la plupart des cas, cependant, vous souhaitez transmettre le texte en tant que fichier d'entrée. Voici un exemple Python de ceci, avec la même sortie que l'exemple précédent :

from polly_vtt import PollyVTT
import os
import boto3
import json

polly_vtt = PollyVTT()

try:
	f=open("input.txt", "r")
	print("file is opened")
	polly_vtt.generate(
	"pcm_testfile",
	Text=f.read(),
	VoiceId="Joanna",
	OutputFormat="pcm",
	)
	f.close()
except:
	print("error occurred while converting to PCM")
print("end of file")

# mp3 with VTT captions
try:
	f=open("input.txt", "r")
	print("file is opened")
	polly_vtt.generate(
	"mp3_testfile",
	Text=f.read(),
	VoiceId="Joanna",
	OutputFormat="mp3",
	)
	f.close()
except:
	print("error occurred while converting to MP3")
print("end of file")

# ogg with SRT captions
try:
	f=open("input.txt", "r")
	print("file is opened")
	polly_vtt.generate(
	"ogg_testfile",
	"srt",
	Text=f.read(),
	VoiceId="Joanna",
	OutputFormat="ogg_vorbis",
	)
	f.close()
except:
	print("error occurred while converting to OGG")
print("end of file")

Ce qui suit est un témoignage de l'équipe de formation interne d'AWS sur l'utilisation d'Amazon Polly avec des sous-titres :

La vidéo suivante offre une courte démonstration de la façon dont l'équipe de formation interne d'AWS utilise PollyVTT():

Conclusion

Dans cet article, nous avons partagé une méthode pour générer de l'audio et des sous-titres en même temps pour un texte donné. La PollyVTT() fonction et SubtitleGeneratorForPolly répondre à une exigence commune en matière de sous-titres de manière efficace et efficiente. L'équipe d'Amazon Polly continue d'inventer et de proposer des solutions simplifiées aux exigences complexes des clients.

Pour plus de didacticiels et d'informations sur Amazon Polly, consultez le Blog sur l'apprentissage automatique AWS.


À propos des auteurs

Générez des sous-titres et de l'audio synchronisés à l'aide du générateur de sous-titres Amazon Polly PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Abishek Soni est un architecte de solutions partenaires chez AWS. Il travaille avec les clients pour fournir des conseils techniques pour le meilleur résultat des charges de travail sur AWS.

Générez des sous-titres et de l'audio synchronisés à l'aide du générateur de sous-titres Amazon Polly PlatoBlockchain Data Intelligence. Recherche verticale. Aï. Daniel McKee utilise l'audio, la vidéo et le café pour distiller le contenu dans des cours ciblés, modulaires et structurés. Dans son rôle de responsable de projet de développeur de programmes pour le domaine NetSec chez Amazon Web Services, il met à profit son expérience dans la mise en réseau de centres de données pour aider les experts en la matière à donner vie à des idées.

Générez des sous-titres et de l'audio synchronisés à l'aide du générateur de sous-titres Amazon Polly PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Orlando Karam est développeur de programmes techniques chez Amazon Web Services, ce qui signifie qu'il peut jouer avec de nouvelles technologies intéressantes, puis en parler. De temps en temps, il utilise également ces technologies cool pour faciliter son travail.

Horodatage:

Plus de Apprentissage automatique AWS