menu
arrow_back

Build a Serverless Text-to-Speech Application with Amazon Polly

Build a Serverless Text-to-Speech Application with Amazon Polly

小时 分钟 8 积分

SPL-201 – 版本 1.0.6

© 2019 Amazon Web Services, Inc. 或其附属公司。保留所有权利。未经 Amazon Web Services, Inc. 事先书面许可,不得复制或转载本文的部分或全部内容。禁止商业性复制、出租或出售。

发现错误或需要更正的内容?请发送电子邮件至:aws-course-feedback@amazon.com

还有其他问题?请与我们联系: https://aws.amazon.com/contact-us/aws-training/

概览

一般来说,语音合成并不容易。您不能假定当应用程序读取句子中的每个字时,输出都能讲得通。文本转语音应用程序的一些常见挑战包括:

  • 同字不同音:比如 I live in Las VegasThis presentation broadcasts live from Las Vegas。
  • 文本标准化:消除缩写词、首字母缩略词和计量单位的歧义,比如 St. 可以扩展为 StreetSaint
  • 将文本转换为具有复杂映射的语言的音素,例如英语中的 toughthroughthough。在这个例子中,根据单词和上下文,不同单词的相似部分发音也可能会不同。
  • 外来词 (déjà vu)、专有名词 (François Hollande) 和俚语(ASAPLOL)。

Amazon Polly 提供的语音合成功能可以克服这些挑战,使您能够专注于构建使用文本转语音的应用程序,而不是应对翻译问题。

Amazon Polly 可将文本转化为逼真的语音。这让您可以创建能够自然说话的应用程序,从而能够构建全新类别的语音支持产品。Amazon Polly 是一项 Amazon AI 服务,使用先进的深度学习技术来合成很像人声的语音。该服务包含 20 多种语言的数十种逼真声音,因此您可以选择最合适的语音,构建适用于许多不同国家/地区的具有语音功能的应用程序。

此外,Amazon Polly 还提供一致的快速响应时间,以支持实时交互式对话。您可以缓存并保存 Polly 的音频文件,以进行离线重播或重新分发。(换句话说,您转换和保存的内容都是您自己的。使用语音不需要支付额外的文本转语音费用。)此外,Polly 还非常易于使用。您只需将要转换为语音的文本发送到 Amazon Polly API 即可。Amazon Polly 会立即将音频流返回到您的应用程序,以便您的应用程序可以直接播放或以标准音频文件格式(例如 MP3)进行存储。

在本实验中,您将创建一个基本的无服务器应用程序,让其使用 Amazon Polly 将文本转换为语音。该应用程序具有简单的用户界面,可接受多种语言的文本,然后将其转换为可以从 Web 浏览器播放的音频文件。本实验将使用博客文章,但您也可以使用任何类型的文本。例如,您可以在做饭时使用该应用程序来阅读菜谱,或者在骑车或开车时使用它来阅读新闻或书籍。

应用程序架构

您将构建一个无服务器应用程序,这意味着您不需要使用服务器,也无需预置、修补、扩展。AWS 云会自动处理这个问题,使您可以专注于您的应用程序。

该应用程序提供了两种方法:一种用于发送有关应转换为 MP3 文件的新文章的信息,另一种用于检索有关文章的信息(包括指向存储在 Amazon S3 存储桶中的 MP3 文件的链接)。这两种方法都通过 Amazon API Gateway 作为 RESTful Web 服务公开。

应用程序架构

当应用程序发送有关新文章的信息时:

1 通过 Amazon API Gateway 公开的 RESTful Web 服务接收信息。此 Web 服务由托管在 Amazon Simple Storage Service (Amazon S3) 上的静态网页调用。

2 Amazon API Gateway 触发 AWS Lambda 函数_ New Post_,该函数负责初始化生成 MP3 文件的过程。

3 Lambda 函数将有关文章的信息插入到 Amazon DynamoDB 表中,该表中存储了有关所有文章的信息。

4 要异步运行整个过程,您将使用 Amazon Simple Notification Service (Amazon SNS) 来分离接收有关新文章的信息和开始音频转换的过程。

5 另一个 Lambda 函数 Convert to Audio 订阅了您的 SNS 主题,并将在出现新消息时触发(这意味着应将新文章转换为音频文件)。

6 Convert to Audio Lambda 函数使用 Amazon Polly 将文本转换为指定语言的音频文件(与文本语言相同)。

7 新的 MP3 文件保存在专用的 S3 存储桶中。

8 有关文章的信息会在 DynamoDB 表中更新。S3 存储桶中存储的音频文件的 URL 与先前存储的数据保存在一起。

当应用程序检索有关文章的信息时:

1 使用 Amazon API Gateway 部署 RESTful Web 服务。Amazon API Gateway 公开了检索文章信息的方法。这些方法包含文章的文本以及存储 MP3 文件的 S3 存储桶的链接。此 Web 服务由托管在 Amazon S3 上的静态网页调用。

2 Amazon API Gateway 调用 Get Post Lambda 函数,该函数部署用于检索文章数据的逻辑。

3 Get Post Lambda 函数从 DynamoDB 表中检索有关文章的信息(包括对 Amazon S3 的引用)并返回信息。

涵盖的主题

本实验结束时,您将能够:

  • 创建 Amazon DynamoDB 来存储数据
  • 创建 Amazon API Gateway RESTful API
  • 创建由 API Gateway 触发的 AWS Lambda 函数
  • 将 AWS Lambda 函数与 Amazon Simple Notification Service (SNS) 结合使用
  • 使用 Amazon Polly 合成各种语言和声音的语音

启动实验

  1. 在屏幕顶部,单击 “启动实验 / Start Lab” 来启动您的实验

这将启动预置实验资源的过程。此时将显示预置实验资源地预计时间。您必须等到资源预置完成才能继续。

如果系统提示您提供令牌,请使用分配给您的令牌(或您购买的积分)。

  1. 单击 “打开控制台 / Open Console” 打开实验

这将自动登录 AWS 管理控制台。

除非另有指示,否则请勿更改区域。

常见登录错误

“错误:联合登录凭证 / Error : Federated login credentials”

如果看到此消息,请执行以下操作:

  • 关闭浏览器标签页以返回到初始实验窗口
  • 等待几秒钟
  • 再次单击 “打开控制台 / Open Console

您现在应该可以访问 AWS 管理控制台。

“错误:您必须先注销 / Error: You must first log out”

如果看到此消息,您必须先注销,然后再登录其他 AWS 账户:

  • 单击 “单击此处 / Click here
  • 关闭浏览器标签页以返回到初始 Qwiklabs 窗口
  • 再次单击 “打开控制台 / Open Console

Join Qwiklabs to read the rest of this lab...and more!

  • Get temporary access to the Amazon Web Services Console.
  • Over 200 labs from beginner to advanced levels.
  • Bite-sized so you can learn at your own pace.
Join to Start This Lab