SynthesizeSpeech - Amazon Polly

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

SynthesizeSpeech

将 UTF-8 输入、纯文本或 SSML 合成为字节流。SSML 输入必须是有效的、格式正确的 SSML。除非使用音素映射,否则某些字母可能无法用于所有语音(例如,英语语音可能根本无法读取西里尔语)。有关更多信息,请参阅工作原理

请求语法

POST /v1/speech HTTP/1.1 Content-type: application/json { "Engine": "string", "LanguageCode": "string", "LexiconNames": [ "string" ], "OutputFormat": "string", "SampleRate": "string", "SpeechMarkTypes": [ "string" ], "Text": "string", "TextType": "string", "VoiceId": "string" }

URI 请求参数

该请求不使用任何 URI 参数。

请求体

请求接受采用 JSON 格式的以下数据。

Engine

指定 Amazon Polly 在处理语音合成输入文本时使用的引擎(standardlong-form、、或generative)。neural提供您选择的语音支持的引擎。如果您不提供引擎,则默认选择标准引擎。如果标准引擎不支持所选语音,则会导致错误。有关 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

您希望服务在合成过程中应用的一个或多个发音词典名称的列表。仅当词典的语言与语音的语言相同时,才会应用词典。有关存储词典的信息,请参见PutLexicon

类型:字符串数组

数组成员:最多 5 项。

模式:[0-9A-Za-z]{1,20}

必需:否

OutputFormat

返回的输出将采用的编码格式。对于音频流,格式为 MP3、OGG Vorbis 或 PCM。对于语音标记,格式为 JSON。

当使用 PCM 时,返回的内容为有符号 16 位、1 个通道(单声道)、小端序格式的音频/PCM。

类型:字符串

有效值:json | mp3 | ogg_vorbis | pcm

必需:是

SampleRate

指定的音频频率,单位为 Hz。

对于 MP3 和 OGG Vorbis,有效值为“8000”、“16000”、“22050”和“24000”。标准语音的默认值为“22050”。神经语音的默认值为“24000”。长篇语音的默认值为“24000”。生成语音的默认值为 “24000”。

对于 PCM,有效值为“8000”和“16000”。默认值为“16000”。

类型:字符串

必需:否

SpeechMarkTypes

为输入文本返回的语音标记的类型。

类型:字符串数组

数组成员:最多 4 项。

有效值:sentence | ssml | viseme | word

必需:否

Text

输入要合成的文本。如果指定 ssmlTextType,请按照 SSML 格式输入文本。

类型:字符串

必需:是

TextType

指定输入文本是纯文本还是 SSML。默认值为纯文本。有关更多信息,请参阅使用 SSML

类型:字符串

有效值:ssml | text

必需:否

VoiceId

要用于合成的语音 ID。您可以通过调用DescribeVoices操作来获取可用语音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: ContentType x-amzn-RequestCharacters: RequestCharacters AudioStream

响应元素

如果此操作成功,则该服务将会发送回 HTTP 200 响应。

响应将返回以下 HTTP 标头。

ContentType

指定音频流的类型。这应该反映您的请求中的 OutputFormat 参数。

  • 如果您请求 mp3OutputFormat,则 ContentType 返回的是音频/MPEG。

  • 如果您请求 ogg_vorbisOutputFormat,则 ContentType 返回的是音频/OGG。

  • 如果您请求 pcmOutputFormat,则 ContentType 返回的有符号 16 位、1 个通道(单声道)、小端序格式的音频/PCM。

  • 如果您请求jsonOutputFormat,则ContentType返回的是应用程序/ x-json-stream。

RequestCharacters

合成的字符数。

响应将以下内容作为 HTTP 正文返回。

AudioStream

包含合成语音的流。

错误

EngineNotSupportedException

此引擎与您指定的语音不兼容。选择与引擎兼容的新语音,或者更换引擎并重新开始操作。

HTTP 状态代码:400

InvalidSampleRateException

指定的采样率无效。

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 的更多信息,请参阅以下内容: