前言

最近在做一个机器人,需要语音交互,于是开启折腾之路。实现框架为:Amazon Transcribe接收用户语音转成文字-->Amazon Bedrock将输入的文本响应问题后输出-->Amazon Polly将文字输出为音频

这篇文章为三个部分,TTS技术(文字转语音)。(注意,仅仅介绍Amazon Polly和其简单使用方法

正文

什么是Amazon Polly

Amazon Polly 是亚马逊云科技推出的一款文字转语音服务,使用深度学习技术来合成听起来自然的人类语音,可以将文章转换为语音。

为什么使用Amazon Polly

相比于其他友商的服务,Amazon Polly生成的语音更加像真人,并且拥有数十种高质量自然人声。

自定义并控制支持词典和语音合成标记语言(SSML)标签的语音输出。以标准格式(如 MP3 和 OGG)存储和重放语音。以一贯的快速响应速度快速提供逼真的声音和对话式用户体验。

而且现在注册亚马逊云科技账号可享受每月免费使用 500 万个字符,为期 12 个月及其上百种免费服务。非常适合个人开发者和创业公司。(亚马逊云科技海外免费产品试用页——点我跳转

如何使用Amazon Polly

这里简单介绍两种使用方法,具体代码放在单独文章,需要自取。

1.在控制台直接预览使用

首先登录到亚马逊云科技控制台,搜索Amazon Polly。

点击进入产品预览页面,输入想要转换的文字,点击Listen即可

2.基于python库Boto3使用Amazon Polly

1.创建访问密钥,以便后续使用

搜索IMA进入

点击右边-我的安全凭证

点击创建访问密钥,记得保存,且不要透露给任何人

2.安装Boto3

Boto3 是适用于 Python 的 Amazon Web Services (AWS) 软件开发工具包 (SDK),它允许 Python 开发人员编写利用 Amazon S3 和 Amazon EC2 等服务的软件。

假设安装了受支持的 Python 版本,您可以首先使用以下命令设置环境:

$ python -m venv .venv
...
$ . .venv/bin/activate

然后,您可以使用以下命令从 PyPI 安装 boto3:

$ python -m pip install boto3

或使用以下命令从源代码安装:

$ git clone https://github.com/boto/boto3.git
$ cd boto3
$ python -m pip install -r requirements.txt
$ python -m pip install -e .

在Pycharm终端输入python -m pip install boto3,如图表示安装完成。

写一个简单的代码测试



运行代码,我们可以看到已经生成了一个MP3文件

import boto3

# 创建一个polly客户端
client = boto3.client(
    'polly',
    aws_access_key_id='AK*******NEF',# 这里填写创建的密钥id
    aws_secret_access_key='6BB3ZVJsH*******4Ok6HHmDv8eMVp',# 这里填写创建的密钥
    region_name='ap-southeast-1'# 这里填写地区
)

# 要转换的文本
text = "你好,我是恐龙学长,欢迎访问我的博客。"

# 使用synthesize_speech方法将文本转换为语音
response = client.synthesize_speech(
    Text=text,
    OutputFormat='mp3',
    VoiceId='Zhiyu'
)

# 保存生成的音频文件
with open('output.mp3', 'wb') as f:
    f.write(response['AudioStream'].read())