流式文本转语音
本指南介绍如何流式传输文本转语音,并可选择将音频上传至 AWS S3。
本指南介绍 3 种方法:将语音生成为文件、直接流式传输音频响应,以及可选地将生成的音频上传到 AWS S3 存储桶,并通过签名 URL 分享。
本指南假设你已设置 API 密钥和 SDK。如果尚未完成,请先完成 快速入门。可选的 S3 上传部分还需要拥有可访问 S3 的 AWS 账户。
想了解流式传输为何这样运作?了解音频 流式传输深入讲解了协议、缓冲和 延迟之间的权衡。
将文本转换为语音(文件)
要将文本转换为语音并保存为文件,我们将使用 ElevenLabs SDK 的 convert 方法,然后在本地将其保存为 .mp3 文件。
然后可以通过以下方式运行此函数:
将文本转换为语音(流式传输)
如果希望直接流式传输音频而不保存为文件,可以使用流式传输功能。
然后可以通过以下方式运行此函数:
额外内容:上传到 AWS S3 并获取安全分享链接
将音频数据创建为文件或流后,可能希望与用户分享。一个方法是将其上传到 AWS S3 存储桶,并生成安全分享链接。
创建 AWS 凭证
要将数据上传到 S3,需要将 AWS 访问密钥 ID、私有访问密钥和 AWS 区域名称添加到 .env 文件。按照以下步骤查找凭证:
- 登录 AWS 管理控制台:前往 AWS 主页并登录账户。

- 打开 IAM(身份和访问管理)控制面板:可在服务菜单的“安全、身份与合规性”下找到 IAM。IAM 控制面板可安全管理对 AWS 服务的访问权限。

- 创建新用户(如有需要):在 IAM 控制面板中,选择“用户”,然后选择“添加用户”。输入用户名。

- 设置权限:根据希望授予的访问级别,直接向用户附加策略。对于 S3 上传,可以使用 AmazonS3FullAccess 策略。但最佳做法是遵循最小权限原则,仅授予完成任务所需的最少权限。你可能需要创建自定义策略,只允许对 S3 存储桶执行必要操作。

- 检查并创建用户:检查设置后创建用户。创建完成后,将看到访问密钥 ID 和私有访问密钥。务必下载并安全保存这些凭证;完成此步骤后,无法再次获取私有访问密钥。

- 获取 AWS 区域名称:例如 us-east-1

如果没有 AWS S3 存储桶,需要按照以下步骤新建一个:
- 打开 S3 控制面板:可在服务菜单的“存储”下找到 S3。

- 创建新存储桶:在 S3 控制面板中,点击“创建存储桶”按钮。

- 输入存储桶名称并点击“创建存储桶”按钮。其他存储桶选项可保留默认值。新添加的存储桶将显示在列表中。


安装 AWS SDK 并添加凭证
使用 pip 和 npm 安装用于与 AWS 服务交互的 boto3。
然后按如下方式将环境变量添加到 .env 文件:
上传到 AWS S3 并生成签名 URL
添加以下函数,将音频流上传到 S3 并生成签名 URL。
然后可以使用文本生成的音频流调用上传函数。
将音频文件上传到 S3 后,生成签名 URL 以分享文件访问权限。此 URL 有时间限制,会在一段时间后过期,因此适合临时安全分享。
现在可以通过以下方式从文件生成 URL:
如果要多次使用该文件,应在数据库中存储 S3 文件路径,并在每次需要时重新生成签名 URL,而不是直接保存会过期的签名 URL。
整合起来
要将所有内容整合起来,可以使用以下脚本:
总结
现在你已了解如何将文本转换为语音,并生成签名 URL 来分享音频文件。此功能为动态创建和分享内容带来许多可能性。
以下是一些可以基于此构建的示例。
-
教育播客:创建学生可随时访问的个性化教育内容。教师可将课程转换为音频格式,上传到 S3,并与学生分享链接,让他们在传统课堂之外获得更具吸引力的学习体验。
-
网站无障碍功能:以音频格式提供文本内容,提升网站无障碍性。这能让视障人士或偏好听觉学习的用户更方便地获取网站信息。
-
自动化客户支持消息:为客户支持生成自动化、个性化的音频消息,例如常见问题解答或订单更新。与传统文本邮件相比,这可带来更具吸引力的客户体验。
-
有声书和旁白配音:将整本书或短篇故事转换为音频格式,为受众提供欣赏文学作品的新方式。作者和出版商可丰富内容形式,触达偏好聆听而非阅读的受众。
-
语言学习工具:开发为学习者提供音频课程和练习的语言学习辅助工具,从而有针对性地练习发音和听力技能。