本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
StartSpeechSynthesisTask
允许通过启动新 SpeechSynthesisTask
来创建异步合成任务。此操作需要语音合成所需的所有标准信息,以及用于存储合成任务输出的 Amazon S3 存储桶的名称和两个可选参数(OutputS3KeyPrefix
和 SnsTopicArn
)。合成任务创建后,此操作将返回一个 SpeechSynthesisTask
对象,其中将包括该任务的标识符以及当前状态。启动异步合成任务后,该 SpeechSynthesisTask
对象在 72 小时内可用。
请求语法
POST /v1/synthesisTasks HTTP/1.1
Content-type: application/json
{
"Engine": "string
",
"LanguageCode": "string
",
"LexiconNames": [ "string
" ],
"OutputFormat": "string
",
"OutputS3BucketName": "string
",
"OutputS3KeyPrefix": "string
",
"SampleRate": "string
",
"SnsTopicArn": "string
",
"SpeechMarkTypes": [ "string
" ],
"Text": "string
",
"TextType": "string
",
"VoiceId": "string
"
}
URI 请求参数
该请求不使用任何 URI 参数。
请求体
请求接受采用 JSON 格式的以下数据。
- Engine
-
指定 Amazon Polly 在处理语音合成输入文本时使用的引擎(
standard
neural
、long-form
或generative
)。使用不受所选引擎支持的语音会导致错误。类型:字符串
有效值:
standard | neural | long-form | generative
必需:否
- LanguageCode
-
语音合成请求的可选语言代码。只有在使用双语语音(例如 Aditi)时才需设置,Aditi 可用于印度英语 (en-IN) 或印地语 (hi-IN)。
如果使用双语语音但未指定语言代码,则 Amazon Polly 将使用双语语音的默认语言。任何语音的默认语言都是DescribeVoices操作返回的
LanguageCode
参数语言。例如,如果未指定语言代码,Aditi 将使用印度英语而不是印地语。类型:字符串
有效值:
arb | cmn-CN | cy-GB | da-DK | de-DE | en-AU | en-GB | en-GB-WLS | en-IN | en-US | es-ES | es-MX | es-US | fr-CA | fr-FR | is-IS | it-IT | ja-JP | hi-IN | ko-KR | nb-NO | nl-NL | pl-PL | pt-BR | pt-PT | ro-RO | ru-RU | sv-SE | tr-TR | en-NZ | en-ZA | ca-ES | de-AT | yue-CN | ar-AE | fi-FI | en-IE | nl-BE | fr-BE
必需:否
- LexiconNames
-
您希望服务在合成过程中应用的一个或多个发音词典名称的列表。仅当词典的语言与语音的语言相同时,才会应用词典。
类型:字符串数组
数组成员:最多 5 项。
模式:
[0-9A-Za-z]{1,20}
必需:否
- OutputFormat
-
返回的输出将采用的编码格式。对于音频流,格式为 MP3、OGG Vorbis 或 PCM。对于语音标记,格式为 JSON。
类型:字符串
有效值:
json | mp3 | ogg_vorbis | pcm
必需:是
- OutputS3BucketName
-
将保存输出文件的 Amazon S3 存储桶名称。
类型:字符串
模式:
^[a-z0-9][\.\-a-z0-9]{1,61}[a-z0-9]$
必需:是
- OutputS3KeyPrefix
-
输出语音文件的 Amazon S3 键前缀。
类型:字符串
模式:
^[0-9a-zA-Z\/\!\-_\.\*\'\(\):;\$@=+\,\?&]{0,800}$
必需:否
- SampleRate
-
指定的音频频率,单位为 Hz。
对于 MP3 和 OGG Vorbis,有效值为“8000”、“16000”、“22050”和“24000”。标准语音的默认值为“22050”。神经语音的默认值为“24000”。长篇语音的默认值为“24000”。生成语音的默认值为 “24000”。
对于 PCM,有效值为“8000”和“16000”。默认值为“16000”。
类型:字符串
必需:否
- SnsTopicArn
-
SNS 主题的 ARN,可用于为语音合成任务提供状态通知。
类型:字符串
模式:
^arn:aws(-(cn|iso(-b)?|us-gov))?:sns:[a-z0-9_-]{1,50}:\d{12}:[a-zA-Z0-9_-]{1,251}([a-zA-Z0-9_-]{0,5}|\.fifo)$
必需:否
- SpeechMarkTypes
-
为输入文本返回的语音标记的类型。
类型:字符串数组
数组成员:最多 4 项。
有效值:
sentence | ssml | viseme | word
必需:否
- Text
-
要合成的输入文本。如果您将 ssml 指定为 TextType,请按照 SSML 格式输入文本。
类型:字符串
必需:是
- TextType
-
指定输入文本是纯文本还是 SSML。默认值为纯文本。
类型:字符串
有效值:
ssml | text
必需:否
- VoiceId
-
要用于合成的语音 ID。
类型:字符串
有效值:
Aditi | Amy | Astrid | Bianca | Brian | Camila | Carla | Carmen | Celine | Chantal | Conchita | Cristiano | Dora | Emma | Enrique | Ewa | Filiz | Gabrielle | Geraint | Giorgio | Gwyneth | Hans | Ines | Ivy | Jacek | Jan | Joanna | Joey | Justin | Karl | Kendra | Kevin | Kimberly | Lea | Liv | Lotte | Lucia | Lupe | Mads | Maja | Marlene | Mathieu | Matthew | Maxim | Mia | Miguel | Mizuki | Naja | Nicole | Olivia | Penelope | Raveena | Ricardo | Ruben | Russell | Salli | Seoyeon | Takumi | Tatyana | Vicki | Vitoria | Zeina | Zhiyu | Aria | Ayanda | Arlet | Hannah | Arthur | Daniel | Liam | Pedro | Kajal | Hiujin | Laura | Elin | Ida | Suvi | Ola | Hala | Andres | Sergio | Remi | Adriano | Thiago | Ruth | Stephen | Kazuha | Tomoko | Niamh | Sofie | Lisa | Isabelle | Zayd | Danielle | Gregory | Burcu
必需:是
响应语法
HTTP/1.1 200
Content-type: application/json
{
"SynthesisTask": {
"CreationTime": number,
"Engine": "string",
"LanguageCode": "string",
"LexiconNames": [ "string" ],
"OutputFormat": "string",
"OutputUri": "string",
"RequestCharacters": number,
"SampleRate": "string",
"SnsTopicArn": "string",
"SpeechMarkTypes": [ "string" ],
"TaskId": "string",
"TaskStatus": "string",
"TaskStatusReason": "string",
"TextType": "string",
"VoiceId": "string"
}
}
响应元素
如果此操作成功,则该服务将会发送回 HTTP 200 响应。
服务以 JSON 格式返回以下数据。
- SynthesisTask
-
SynthesisTask 对象,提供有关新提交的语音合成任务的信息和属性。
类型:SynthesisTask 对象
错误
- EngineNotSupportedException
-
此引擎与您指定的语音不兼容。选择与引擎兼容的新语音,或者更换引擎并重新开始操作。
HTTP 状态代码:400
- InvalidS3BucketException
-
提供的 Amazon S3 存储桶名称无效。请检查您输入的 S3 存储桶命名要求并重试。
HTTP 状态代码:400
- InvalidS3KeyException
-
提供的 Amazon S3 键前缀无效。请提供有效的 S3 对象键名称。
HTTP 状态代码:400
- InvalidSampleRateException
-
指定的采样率无效。
HTTP 状态代码:400
- InvalidSnsTopicArnException
-
提供的 SNS 主题 ARN 无效。请提供有效的 SNS 主题 ARN 并重试。
HTTP 状态代码:400
- InvalidSsmlException
-
您提供的 SSML 无效。验证 SSML 语法、标签和值拼写,然后重试。
HTTP 状态代码:400
- LanguageNotSupportedException
-
Amazon Polly 目前不支持使用指定的语言。
HTTP 状态代码:400
- LexiconNotFoundException
-
Amazon Polly 找不到指定的词典。这可能是由于词典缺失、名称拼写错误或指定了位于不同区域的词典所致。
验证词典是否存在、位于该区域(参阅 ListLexicons),以及词典名称拼写是否正确。然后请重试。
HTTP 状态代码:404
- MarksNotSupportedForFormatException
-
所选
OutputFormat
不支持语音标记。语音标记仅适用于json
格式的内容。HTTP 状态代码:400
- ServiceFailureException
-
未知情况导致服务故障。
HTTP 状态代码:500
- SsmlMarksNotSupportedForTextTypeException
-
纯文本类型输入不支持 SSML 语音标记。
HTTP 状态代码:400
- TextLengthExceededException
-
“文本”参数的值长于可接受的限制值。对于
SynthesizeSpeech
API,输入文本的总长度限制为最多 6000 个字符,其中计费字符不能超过 3000 个。对于StartSpeechSynthesisTask
API,最大值为 20 万个字符,其中计费字符数不得超过 10 万个。SSML 标签不会算作计费字符。HTTP 状态代码:400
另请参阅
有关在特定语言的 AWS SDK 中使用此 API 的更多信息,请参阅以下内容: