使用 Amazon Polly 字幕生成器生成同步的隐藏式字幕和音频

亚马逊波莉,是AI生成的文本到语音服务,使您能够自动化和扩展交互式语音解决方案,从而有助于提高生产力并降低成本。

随着我们的客户继续使用 Amazon Polly 的丰富功能和易用性,我们观察到需要能够为给定的文本输入同时生成同步音频和字幕或隐藏式字幕。 在 AWS,我们不断根据客户的要求进行逆向工作,因此在这篇文章中,我们概述了一种为给定文本同时生成音频和字幕的方法。

尽管字幕和字幕经常互换使用,包括在这篇文章中,但它们之间存在细微差别:

  • 字幕 – 在字幕中,屏幕上显示的文本语言与音频语言不同,并且对于非对话(如重要声音)不显示任何内容。 主要目标是覆盖不会说视频中音频语言的观众。
  • 字幕(关闭/打开) – 字幕以相同的语言显示音频中的对话。 其主要目的是在最终消费者由于一系列问题而无法听到音频的情况下增加可访问性。 隐藏式字幕是与音频/视频源不同的文件的一部分,可以由用户自行决定关闭和打开,而开放式字幕是视频文件的一部分,用户不能关闭。

使用 Amazon Polly 生成带字幕或隐藏式字幕的音频的好处

想象以下用例:您为在线学习门户准备基于幻灯片的演示文稿。 每张幻灯片都包含屏幕内容和旁白。 屏幕上的内容是一个基本的大纲,叙述很详细。 您可以使用 Amazon Polly 生成旁白,而不是录制繁琐且不一致的人声。 Amazon Polly 产生高质量、一致的声音。 不需要后期制作。 将来,如果您需要更新演示文稿的一部分,您只需要更新受影响的幻灯片。 声音与原始幻灯片相匹配。 此外,当 Amazon Polly 生成您的音频时,会包含与音频同步出现的字幕。 您可以节省时间,因为不涉及手动记录,并在需要更新时节省额外的时间。 您的演示文稿还提供更多价值,因为字幕可以帮助学生消费内容。 这是一个双赢的解决方案。

字幕有很多用例,例如在社交空间、体育馆、咖啡店和其他地方的广告,通常在电视上有一些东西,但背景音乐是​​静音的; 在线培训和课程; 虚拟会议; 公开电子公告; 在不戴耳机且不打扰同乘人员的情况下在通勤时观看视频; 还有更多。

无论应用领域如何,隐藏式字幕都可以提供以下帮助:

  • 无障碍 – 有听力障碍的人可以更好地消费您的内容。
  • 保留 – 当涉及更多人类感官时,在线学习更容易让电子学习者掌握和保留。
  • 可达性 – 您的内容可以覆盖具有竞争优先级的人,例如同时玩游戏和观看新闻,或者母语与音频语言不同的人。
  • 可搜索 – 内容可由搜索引擎搜索。 尽管大多数搜索引擎无法以最佳方式搜索视频,但搜索引擎可以使用字幕文本文件并使您的内容更容易被发现。
  • 社会礼貌 – 有时,由于周围环境的原因播放音频可能很粗鲁,或者由于环境的噪音而难以听到音频。
  • 阅读 – 无论说话者的口音、说话者的母语或语速如何,内容都更容易理解。 您也可以在不重复观看同一场景的情况下做笔记。

解决方案概述

本文中介绍的库使用 Amazon Polly 为输入文本生成声音和隐藏式字幕。 您可以轻松地将这个库集成到您的文本转语音应用程序中。 它支持多种音频格式,以及业界最常用的 VTT 和 SRT 文件格式的字幕。

在这篇文章中,我们专注于 PollyVTT() 语法和选项,并提供一些示例来演示如何使用 Python SubtitleGeneratorForPolly 为给定的文本输入同时生成同步音频和字幕文件。 输出音频文件格式可以是 PCM(wav)、OGG 或 MP3,字幕文件格式可以是 VTT 或 SRT。 此外, SubtitleGeneratorForPolly 支持所有 Amazon Polly synthesize_speech 参数并添加到丰富的 Amazon Polly 功能集。

polly-vtt 库及其依赖项可用于 GitHub上.

安装和使用功能

在我们看一些使用示例之前 PollyVTT(), 赋予权力的函数 SubtitleGeneratorForPolly,我们来看看它的安装和语法。

使用以下代码安装库:

pip install

要从命令行运行,您只需运行 polly-vtt:

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

以下代码显示了您的选项:

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

现在让我们看几个例子。

例子1

此示例为两个简单的句子生成一个 PCM 音频文件和一个 SRT 字幕文件:

$ 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

此示例演示如何使用一段文本作为输入。 这会生成 WAV、MP3 和 OGG 格式的音频文件,以及 SRT 和 VTT 格式的字幕。 以下示例为给定的输入文本创建六个文件:

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

请参见以下代码:

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

但是,在大多数情况下,您希望将文本作为输入文件传递。 以下是一个 Python 示例,其输出与前面的示例相同:

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

以下是 AWS 内部培训团队关于使用带有隐藏式字幕的 Amazon Polly 的感言帖子:

以下视频提供了 AWS 内部培训团队如何使用的简短演示 PollyVTT():

结论

在这篇文章中,我们分享了一种为给定文本同时生成音频和字幕的方法。 这 PollyVTT() 功能和 SubtitleGeneratorForPolly 以高效和有效的方式解决对字幕的共同要求。 Amazon Polly 团队继续发明并提供简化的解决方案来满足复杂的客户需求。

有关 Amazon Polly 的更多教程和信息,请查看 AWS机器学习博客.


作者简介

使用 Amazon Polly 字幕生成器 PlatoBlockchain 数据智能生成同步隐藏式字幕和音频。垂直搜索。人工智能。阿比舍克·索尼 是AWS的合作伙伴解决方案架构师。 他与客户合作,为AWS上的工作负载的最佳结果提供技术指导。

使用 Amazon Polly 字幕生成器 PlatoBlockchain 数据智能生成同步隐藏式字幕和音频。垂直搜索。人工智能。 麦基 使用音频、视频和咖啡将内容提炼成有针对性的、模块化和结构化的课程。 作为 Amazon Web Services 的 NetSec 领域的课程开发项目经理,他利用自己在数据中心网络方面的经验帮助主题专家将想法变为现实。

使用 Amazon Polly 字幕生成器 PlatoBlockchain 数据智能生成同步隐藏式字幕和音频。垂直搜索。人工智能。奥兰多卡拉姆 是 Amazon Web Services 的一名技术课程开发人员,这意味着他可以使用很酷的新技术,然后谈论它。 偶尔,他也会使用那些很酷的技术来简化他的工作。

时间戳记:

更多来自 AWS机器学习