Generer synkroniserede undertekster og lyd ved hjælp af Amazon Polly-undertekstgeneratoren

Amazon Polly, en AI-genereret tekst-til-tale-tjeneste, giver dig mulighed for at automatisere og skalere dine interaktive stemmeløsninger, hvilket hjælper med at forbedre produktiviteten og reducere omkostningerne.

Da vores kunder fortsætter med at bruge Amazon Polly på grund af dets rige sæt af funktioner og brugervenlighed, har vi observeret et behov for muligheden for samtidig at generere synkroniseret lyd og undertekster eller lukkede billedtekster til en given tekstinput. Hos AWS arbejder vi løbende baglæns fra vores kundespørgsmål, så i dette indlæg skitserer vi en metode til at generere lyd og undertekster på samme tid for en given tekst.

Selvom undertekster og billedtekster ofte bruges i flæng, inklusive i dette indlæg, er der subtile forskelle mellem dem:

  • Undertekster – I undertekster er tekstsproget, der vises på skærmen, forskelligt fra lydsproget og viser ikke noget for ikke-dialog, f.eks. signifikante lyde. Det primære mål er at nå ud til det publikum, der ikke taler lydsproget i videoen.
  • Billedtekster (lukket/åbent) – Billedtekster viser de dialoger, der bliver talt i lyden på samme sprog. Dens primære formål er at øge tilgængeligheden i tilfælde, hvor lyden ikke kan høres af slutforbrugeren på grund af en række problemer. Undertekster er en del af en anden fil end lyd-/videokilden og kan slås fra og til efter brugerens skøn, hvorimod åbne undertekster er en del af videofilen og ikke kan slås fra af brugeren.

Fordele ved at bruge Amazon Polly til at generere lyd med undertekster eller lukkede billedtekster

Forestil dig følgende use case: du forbereder en diasbaseret præsentation til en online læringsportal. Hvert dias indeholder indhold og fortælling på skærmen. Indholdet på skærmen er en grundlæggende disposition, og fortællingen går i detaljer. I stedet for at optage en menneskelig stemme, som kan være besværlig og inkonsekvent, kan du bruge Amazon Polly til at generere fortællingen. Amazon Polly producerer højkvalitets, konsistente stemmer. Der er ikke behov for efterproduktion. Hvis du i fremtiden skal opdatere en del af præsentationen, behøver du kun at opdatere de berørte dias. Stemmen matcher de originale dias. Derudover, når Amazon Polly genererer din lyd, er billedtekster inkluderet, der vises i takt med lyden. Du sparer tid, fordi der ikke er nogen manuel optagelse involveret, og sparer ekstra tid, når der er behov for opdateringer. Din præsentation giver også mere værdi, fordi billedtekster hjælper eleverne med at forbruge indholdet. Det er en win-win-win-løsning.

Der er et væld af anvendelsesmuligheder for billedtekster, såsom annoncer i sociale rum, gymnastiksale, kaffebarer og andre steder, hvor der typisk er noget på et fjernsyn med lyden dæmpet og musik i baggrunden; online træning og klasser; virtuelle møder; offentlige elektroniske meddelelser; se videoer, mens du pendler uden hovedtelefoner og uden at forstyrre medpassagerer; og flere flere.

Uanset anvendelsesområde kan undertekster hjælpe med følgende:

  • Tilgængelighed – Mennesker med hørehandicap kan bedre forbruge dit indhold.
  • Retention – Online læring er nemmere for e-lærere at forstå og fastholde, når flere menneskelige sanser er involveret.
  • Sikring af adgang – Dit indhold kan nå ud til personer, der har konkurrerende prioriteter, såsom spil og se nyheder samtidigt, eller personer, der har et andet modersmål end lydsproget.
  • Søgbarhed – Indholdet er søgbart af søgemaskiner. Mens videoer ikke kan søges optimalt af de fleste søgemaskiner, kan søgemaskiner bruge billedtekstfilerne og gøre dit indhold mere synligt.
  • Social høflighed – Nogle gange kan det være uhøfligt at afspille lyd på grund af dine omgivelser, eller lyden kan være svær at høre på grund af støjen fra dit miljø.
  • Forståelse – Indholdet er lettere at forstå, uanset talerens accent, talerens modersmål eller talehastighed. Du kan også tage noter uden at se den samme scene gentagne gange.

Løsningsoversigt

Biblioteket, der præsenteres i dette indlæg, bruger Amazon Polly til at generere lyd og lukkede billedtekster til en inputtekst. Du kan nemt integrere dette bibliotek i dine tekst-til-tale-applikationer. Det understøtter flere lydformater og billedtekster i både VTT- og SRT-filformater, som er de mest almindeligt anvendte på tværs af branchen.

I dette indlæg sætter vi fokus på PollyVTT() syntaks og muligheder, og tilbyder et par eksempler, der viser, hvordan man bruger Python SubtitleGeneratorForPolly til samtidig at generere synkrone lyd- og undertekstfiler for en given tekstinput. Output-lydfilformatet kan være PCM(wav), OGG eller MP3, og undertekstfilformatet kan være VTT eller SRT. Desuden, SubtitleGeneratorForPolly understøtter alle Amazon Polly synthesize_speech parametre og tilføjer til det rige Amazon Polly-funktionssæt.

polly-vtt biblioteket og dets afhængigheder er tilgængelige på GitHub.

Installer og brug funktionen

Før vi ser på nogle eksempler på brug PollyVTT(), den funktion, der driver SubtitleGeneratorForPolly, lad os se på installationen og syntaksen af ​​den.

Installer biblioteket med følgende kode:

pip install

For at køre fra kommandolinjen, skal du blot køre polly-vtt:

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

Følgende kode viser dine muligheder:

--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

Lad os nu se på et par eksempler.

Eksempel 1

Dette eksempel genererer en PCM-lydfil sammen med en SRT-tekstfil til to simple sætninger:

$ 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

Eksempel 2

Dette eksempel viser, hvordan man bruger et tekstafsnit som input. Dette genererer lydfiler i WAV, MP3 og OGG og undertekster i SRT og VTT. Følgende eksempel opretter seks filer til den givne inputtekst:

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

Se følgende kode:

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", 
) 

Eksempel 3

I de fleste tilfælde vil du dog sende teksten som en inputfil. Følgende er et Python-eksempel på dette, med samme output som det forrige eksempel:

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")

Det følgende er et vidnesbyrd fra AWS' interne træningshold om brug af Amazon Polly med lukkede billedtekster:

Den følgende video tilbyder en kort demo af, hvordan det interne træningsteam hos AWS bruger PollyVTT():

Konklusion

I dette indlæg delte vi en metode til at generere lyd og undertekster på samme tid for en given tekst. Det PollyVTT() funktion og SubtitleGeneratorForPolly løse et fælles krav om undertekster på en effektiv måde. Amazon Polly-teamet fortsætter med at opfinde og tilbyde forenklede løsninger til komplekse kundekrav.

For flere tutorials og information om Amazon Polly, tjek AWS Machine Learning Blog.


Om forfatterne

Generer synkroniserede undertekster og lyd ved hjælp af Amazon Polly undertekstgeneratoren PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Abhishek Soni er Partner Solutions Architect hos AWS. Han arbejder med kunder for at give teknisk vejledning til det bedste resultat af arbejdsbelastninger på AWS.

Generer synkroniserede undertekster og lyd ved hjælp af Amazon Polly undertekstgeneratoren PlatoBlockchain Data Intelligence. Lodret søgning. Ai. Dan McKee bruger lyd, video og kaffe til at destillere indhold til målrettede, modulære og strukturerede kurser. I sin rolle som Curriculum Developer Project Manager for NetSec Domain hos Amazon Web Services, udnytter han sin erfaring inden for datacenternetværk til at hjælpe fageksperter med at føre ideer ud i livet.

Generer synkroniserede undertekster og lyd ved hjælp af Amazon Polly undertekstgeneratoren PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Orlando Karam er en Technical Curriculum Developer hos Amazon Web Services, hvilket betyder, at han kommer til at lege med fede nye teknologier og derefter tale om det. Af og til bruger han også de seje teknologier til at gøre sit job lettere.

Tidsstempel:

Mere fra AWS maskinindlæring