

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 创建长音频文件
<a name="longer-console"></a>

您可以通过 Amazon Polly 控制台来使用异步合成创建长语音，您可以通过 AWS CLI来使用相同功能。这是通过使用与任何其他合成非常类似的**文本到语音转换**选项卡实现的。

------
#### [ Console ]

还通过控制台提供了其他异步合成功能。**S3 合成任务**选项卡反映了 `ListSpeechSynthesisTasks` 功能，显示了保存到 S3 存储桶中的所有任务，并使您能够在需要时进行筛选。单击特定的单个任务将显示其详细信息，反映 `GetSpeechSynthesisTask` 功能。

**使用 Amazon Polly 控制台合成大文本**

1. 登录 AWS 管理控制台 并打开 Amazon Polly 控制台，网址为。[https://console.aws.amazon.com/polly/](https://console.aws.amazon.com/polly/)

1. 选择**文本到语音转换**选项卡。如果合适，请选择**长篇**作为引擎。

1. 打开或关闭 **SSML** 后，在输入框中键入或粘贴您的文本。

1. 为您的文本选择语言、区域和语音。

1. 选择**保存至 S3**。
**注意**  
如果文本长度超过实时 `SynthesizeSpeech` 操作的 3000 个字符限制，则**下载**和**收听**选项将灰显。

1. 控制台会打开一个表单，以便您可以选择存储输出文件的位置。

   1. 填写目标 Amazon S3 存储桶的名称。

   1. （可选）填写输出的前缀键。
**注意**  
输出 S3 存储桶必须可写。

   1. 如果您希望在合成任务完成后收到通知，请提供可选的 SNS 主题标识符。
**注意**  
SNS 必须可由当前控制台用户发布才能使用此选项。有关更多信息，请参阅 [Amazon Simple Notification Service (SNS)](https://aws.amazon.com/sns/)

   1. 选择**保存至 S3**。

**检索有关您的语音合成任务的信息**

1. 在控制台中，选择 **S3 合成任务**选项卡。

1. 将按日期顺序显示任务。要按状态筛选任务，请选择**所有状态**，然后选择要使用的状态。

1. 要查看特定任务的详细信息，请选择链接的**任务 ID**。

------
#### [ AWS CLI ]

Amazon Polly *异步合成*功能使用三个功能`SpeechSynthesisTask` APIs 来处理大量文本：
+ `StartSpeechSynthesisTask`：启动新合成任务。
+ `GetSpeechSynthesisTask`：返回有关以前提交的合成任务的详细信息。
+ `ListSpeechSynthesisTasks`：列出所有已提交的合成任务。

**合成大量文本 (`StartSpeechSynthesisTask`)**

当您要创建的音频文件大于使用实时 `SynthesizeSpeech` 可创建的文件时，请使用 `StartSpeechSynthesisTask` 操作。除了 `SynthesizeSpeech` 操作所需的参数外，`StartSpeechSynthesisTask` 还需要 Amazon S3 存储桶的名称。也可使用另外两个可选参数：输出文件的键前缀和 SNS 主题的 ARN（如果您希望收到有关任务的状态通知）。
+ `OutputS3BucketName`：合成应上传到的 Amazon S3 存储桶的名称。此存储桶应与 Amazon Polly 服务位于同一区域中。此外，用于进行调用的 IAM 用户应具有对此存储桶的访问权限。[必需] 
+ `OutputS3KeyPrefix`：输出文件的键前缀。如果您希望将输出语音文件保存在存储桶中自定义的类似于目录的键中，请使用此参数。[可选] 
+ `SnsTopicArn`：要使用的 SNS 主题 ARN（如果您希望收到有关任务状态的通知）。此 SNS 主题应与 Amazon Polly 服务位于同一区域中。此外，用于进行调用的 IAM 用户应具有对此主题的访问权限。[可选] 

例如，以下示例可用于在美国东部（俄亥俄州）区域运行该`start-speech-synthesis-task` AWS CLI 命令：

以下 AWS CLI 示例是针对 Unix、Linux 和 macOS 进行格式化的。对于 Windows，请将每行末尾的反斜杠 (\$1) Unix 行继续符替换为脱字号 (^) 并在输入文本周围使用全角引号（“），内部标签使用单引号（’）。

```
aws polly start-speech-synthesis-task \
  --region us-east-2 \
  --endpoint-url "https://polly.us-east-2.amazonaws.com/" \
  --output-format mp3 \
  --output-s3-bucket-name your-bucket-name \
  --output-s3-key-prefix optional/prefix/path/file \
  --voice-id Joanna \
  --text file://text_file.txt
```

这将生成与以下内容类似的响应：

```
"SynthesisTask": 
{
     "OutputFormat": "mp3",
     "OutputUri": "https://s3.us-east-2.amazonaws.com/your-bucket-name/optional/prefix/path/file.<task_id>.mp3",
     "TextType": "text",
     "CreationTime": [..],
     "RequestCharacters": [..],
     "TaskStatus": "scheduled",
     "TaskId": [task_id],
     "VoiceId": "Joanna"
 }
```

`start-speech-synthesis-task` 操作会返回几个新字段：
+ `OutputUri`：输出语音文件的位置。
+ `TaskId`：Amazon Polly 生成的语音合成任务的唯一标识符。
+ `CreationTime`：初次提交任务时的时间戳。
+ `RequestCharacters`：任务中的计费字符数。
+ `TaskStatus`：提供有关提交的任务的状态的信息。

  提交任务后，初始状态将显示 `scheduled`。当 Amazon Polly 开始处理任务后，状态将更改为 `inProgress`，稍后更改为 `completed` 或 `failed`。如果任务失败，则在调用 GetSpeechSynthesisTask 或 ListSpeechSynthesisTasks 操作时将返回错误消息。

任务完成后，会在 `OutputUri` 中指定的位置提供语音文件。

**检索有关您的语音合成任务的信息**

您可以使用 `GetSpeechSynthesisTask` 操作获取有关任务的信息，如错误、状态等。为此，您将需要 `task-id` 所返回的 `StartSpeechSynthesisTask`。

例如，以下示例可用于运行`get-speech-synthesis-task` AWS CLI 命令：

```
aws polly get-speech-synthesis-task \
--region us-east-2 \
--endpoint-url "https:// polly.us-east-2.amazonaws.com/" \
--task-id task identifier
```

您还可以使用 `ListSpeechSynthesisTasks` 操作列出在当前区域中运行的所有语音合成任务。

例如，以下示例可用于运行`list-speech-synthesis-tasks` AWS CLI 命令：

```
aws polly list-speech-synthesis-tasks \
--region us-east-2 \
--endpoint-url "https:// polly.us-east-2.amazonaws.com/"
```

------