Generuj zsynchronizowane napisy kodowane i dźwięk za pomocą generatora napisów Amazon Polly

Amazon Polly, usługa zamiany tekstu na mowę generowana przez sztuczną inteligencję, umożliwia automatyzację i skalowanie interaktywnych rozwiązań głosowych, pomagając zwiększyć produktywność i obniżyć koszty.

Ponieważ nasi klienci nadal korzystają z Amazon Polly ze względu na bogaty zestaw funkcji i łatwość obsługi, zaobserwowaliśmy zapotrzebowanie na możliwość jednoczesnego generowania zsynchronizowanego dźwięku i napisów lub podpisów kodowanych dla danego tekstu wejściowego. W AWS nieustannie pracujemy wstecz od zapytań naszych klientów, dlatego w tym poście przedstawiamy metodę generowania dźwięku i napisów jednocześnie dla danego tekstu.

Chociaż napisy i podpisy są często używane zamiennie, także w tym poście, istnieją między nimi subtelne różnice:

  • Napisy na filmie obcojęzycznym – W napisach język tekstu wyświetlany na ekranie różni się od języka audio i nie wyświetla niczego w przypadku niedialogowych dźwięków, takich jak znaczące dźwięki. Głównym celem jest dotarcie do odbiorców, którzy nie mówią językiem audio w filmie.
  • Napisy (zamknięte/otwarte) – Napisy wyświetlają dialogi wypowiadane w dźwięku w tym samym języku. Jego głównym celem jest zwiększenie dostępności w przypadkach, gdy dźwięk nie jest słyszalny przez konsumenta końcowego ze względu na szereg problemów. Napisy kodowane są częścią innego pliku niż źródło audio/wideo i mogą być włączane i wyłączane według uznania użytkownika, natomiast napisy otwarte są częścią pliku wideo i użytkownik nie może ich wyłączyć.

Korzyści z używania Amazon Polly do generowania dźwięku z napisami lub zamkniętymi napisami

Wyobraź sobie następujący przypadek użycia: przygotowujesz prezentację opartą na slajdzie dla internetowego portalu edukacyjnego. Każdy slajd zawiera zawartość i narrację na ekranie. Treść na ekranie to podstawowy zarys, a narracja wchodzi w szczegóły. Zamiast nagrywać ludzki głos, który może być niewygodny i niespójny, możesz użyć Amazon Polly do wygenerowania narracji. Amazon Polly produkuje wysokiej jakości, spójne głosy. Nie ma potrzeby postprodukcji. W przyszłości, jeśli chcesz zaktualizować część prezentacji, wystarczy zaktualizować odpowiednie slajdy. Głos pasuje do oryginalnych slajdów. Ponadto, gdy Amazon Polly generuje dźwięk, dołączane są napisy, które pojawiają się w czasie z dźwiękiem. Oszczędzasz czas, ponieważ nie wymaga ręcznego nagrywania i oszczędzasz dodatkowy czas, gdy potrzebne są aktualizacje. Twoja prezentacja zapewnia również większą wartość, ponieważ podpisy pomagają uczniom korzystać z treści. To rozwiązanie korzystne dla obu stron.

Istnieje wiele przypadków użycia napisów, takich jak reklamy w przestrzeniach społecznościowych, salach gimnastycznych, kawiarniach i innych miejscach, w których zazwyczaj jest coś w telewizji z wyciszonym dźwiękiem i muzyką w tle; szkolenia i zajęcia online; wirtualne spotkania; publiczne ogłoszenia elektroniczne; oglądanie filmów w drodze do pracy bez słuchawek i bez przeszkadzania współpasażerom; i kilka innych.

Niezależnie od zakresu zastosowania, napisy mogą pomóc w następujących kwestiach:

  • dostępność – Osoby z wadami słuchu mogą lepiej konsumować Twoje treści.
  • Retencja – Nauka online jest łatwiejsza do uchwycenia i zapamiętania przez e-uczniów, gdy zaangażowanych jest więcej ludzkich zmysłów.
  • Osiągalność – Twoje treści mogą dotrzeć do osób o konkurencyjnych priorytetach, takich jak jednoczesne granie i oglądanie wiadomości, lub osób, które posługują się innym językiem ojczystym niż język audio.
  • Możliwość przeszukiwania – Treść można przeszukiwać przez wyszukiwarki. Podczas gdy większość wyszukiwarek nie może optymalnie przeszukiwać filmów, wyszukiwarki mogą korzystać z plików tekstowych napisów i ułatwiać znajdowanie treści.
  • Uprzejmość społeczna – Czasami odtwarzanie dźwięku może być niegrzeczne ze względu na otoczenie lub dźwięk może być trudny do usłyszenia z powodu hałasu otoczenia.
  • Zrozumienie – Treść jest łatwiejsza do zrozumienia niezależnie od akcentu mówiącego, języka ojczystego mówiącego czy szybkości mowy. Możesz także robić notatki bez wielokrotnego oglądania tej samej sceny.

Omówienie rozwiązania

Biblioteka prezentowana w tym poście wykorzystuje Amazon Polly do generowania dźwięku i napisów dla tekstu wejściowego. Możesz łatwo zintegrować tę bibliotekę z aplikacjami zamiany tekstu na mowę. Obsługuje kilka formatów audio i podpisów w formatach plików VTT i SRT, które są najczęściej używane w branży.

W tym poście skupiamy się na PollyVTT() składni i opcji oraz zaoferuj kilka przykładów, które pokazują, jak używać Pythona SubtitleGeneratorForPolly do jednoczesnego generowania synchronicznych plików audio i napisów dla danego tekstu wejściowego. Wyjściowy format pliku audio może być PCM (wav), OGG lub MP3, a format pliku napisów może być VTT lub SRT. Ponadto, SubtitleGeneratorForPolly obsługuje wszystkie Amazon Polly synthesize_speech parametry i dodaje do bogatego zestawu funkcji Amazon Polly.

Połączenia polly-vtt biblioteka i jej zależności są dostępne na GitHub.

Zainstaluj i korzystaj z funkcji

Zanim przyjrzymy się kilku przykładom użycia PollyVTT(), funkcja, która zasila SubtitleGeneratorForPolly, spójrzmy na instalację i składnię tego.

Zainstaluj bibliotekę, używając następującego kodu:

pip install

Aby uruchomić z wiersza poleceń, po prostu uruchom polly-vtt:

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

Poniższy kod przedstawia dostępne opcje:

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

Spójrzmy teraz na kilka przykładów.

1 przykład

Ten przykład generuje plik audio PCM wraz z plikiem podpisów SRT dla dwóch prostych zdań:

$ 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

2 przykład

Ten przykład pokazuje, jak używać akapitu tekstu jako danych wejściowych. To generuje pliki audio w formacie WAV, MP3 i OGG oraz napisy w SRT i VTT. Poniższy przykład tworzy sześć plików dla podanego tekstu wejściowego:

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

Zobacz następujący kod:

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

3 przykład

Jednak w większości przypadków chcesz przekazać tekst jako plik wejściowy. Poniżej znajduje się przykład w Pythonie, z takimi samymi danymi wyjściowymi jak w poprzednim przykładzie:

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

Poniżej znajduje się wpis z referencjami wewnętrznego zespołu szkoleniowego AWS w zakresie korzystania z Amazon Polly z napisami:

Poniższy film przedstawia krótkie demo tego, jak wykorzystuje wewnętrzny zespół szkoleniowy w AWS PollyVTT():

Wnioski

W tym poście udostępniliśmy metodę jednoczesnego generowania dźwięku i napisów dla danego tekstu. The PollyVTT() funkcja i SubtitleGeneratorForPolly rozwiązać wspólny wymóg dotyczący napisów w sposób wydajny i skuteczny. Zespół Amazon Polly nadal wymyśla i oferuje uproszczone rozwiązania dla złożonych wymagań klientów.

Więcej samouczków i informacji o Amazon Polly znajdziesz na Blog dotyczący uczenia maszynowego AWS.


O autorach

Generuj zsynchronizowane napisy kodowane i dźwięk za pomocą generatora napisów Amazon Polly PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Abhiszek Soni jest architektem rozwiązań partnerskich w AWS. Współpracuje z klientami, aby zapewnić wskazówki techniczne dotyczące najlepszego wyniku obciążeń w AWS.

Generuj zsynchronizowane napisy kodowane i dźwięk za pomocą generatora napisów Amazon Polly PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI. Dan McKee wykorzystuje audio, wideo i kawę do destylacji treści w ukierunkowane, modułowe i ustrukturyzowane kursy. Pełniąc rolę Curriculum Developer Project Manager dla domeny NetSec w Amazon Web Services, wykorzystuje swoje doświadczenie w sieciach centrów danych, aby pomóc ekspertom w danej dziedzinie wcielać pomysły w życie.

Generuj zsynchronizowane napisy kodowane i dźwięk za pomocą generatora napisów Amazon Polly PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Orlando Karama jest programistą ds. technicznych programów nauczania w Amazon Web Services, co oznacza, że ​​może bawić się fajnymi nowymi technologiami, a następnie o nich mówić. Od czasu do czasu używa również tych fajnych technologii, aby ułatwić sobie pracę.

Znak czasu:

Więcej z Uczenie maszynowe AWS