本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建长音频文件 (CLI)
Amazon Polly 异步合成功能使用三个 SpeechSynthesisTask
API 来处理大量文本:
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
Amazon CLI 命令:
以下 Amazon CLI 示例针对 Linux、Unix 和 macOS 编排了格式。对于 Windows,请将每行末尾的反斜杠 (\) 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-nameyour-bucket-name
\ --output-s3-key-prefixoptional/prefix/path/file
\ --voice-id Joanna \ --textfile://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
Amazon CLI 命令:
aws polly get-speech-synthesis-task \ --region
us-east-2
\ --endpoint-url "https:// polly.us-east-2.amazonaws.com/
" \ --task-idtask identifier
您还可以使用 ListSpeechSynthesisTasks
操作列出在当前区域中运行的所有语音合成任务。
例如,以下示例可用于运行 list-speech-synthesis-tasks
Amazon CLI 命令:
aws polly list-speech-synthesis-tasks \ --region
us-east-2
\ --endpoint-url "https:// polly.us-east-2.amazonaws.com/
"