本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
SynthesizeSpeech 并 StartSpeechSynthesisStream 进行了比较
SynthesizeSpeech是一个请求-响应操作。您可以在单个请求中提供完整的文本,并在单个响应中接收完整的合成音频。它支持所有引擎(标准、神经、长格式、生成式)、包括语音标记在内的所有输出格式,并且每个请求的文本限制为 6,000 个总字符(其中计费字符不能超过 3,000 个)。一旦第一个字节可用,响应就会将音频流回去。当您预先准备好所有文本时,请使用此操作。
StartSpeechSynthesisStream是一种双向流媒体操作。它会打开一个 HTTP/2 连接,您可以通过该连接增量发送文本,并在合成时接收音频。由于文本是连续流式传输的,因此没有每个请求的文本限制。它需要生成引擎,并且不支持语音标记。当文本以增量方式到达,并且您希望在所有输入都可用之前开始音频输出时,请使用此操作。常见场景包括:
-
对话式 AI 和语音助手。大型语言模型以小块(标记)的形式生成响应文本。当每个文本块到达时将其转发到 Amazon Polly,这样用户就可以在模型仍在生成时听到语音。
-
Real-time 翻译。翻译系统逐段生成翻译后的文本。流式传输每个片段进行合成,无需等待完整翻译完成。
-
Long-form 内容超出 SynthesizeSpeech 限制。长度超过 6,000 个字符的文本可以连续流式传输,而无需拆分为多个请求或管理区块边界。
| 方面 | SynthesizeSpeech | StartSpeechSynthesisStream |
|---|---|---|
协议 |
Request-response |
双向事件流 () HTTP/2 |
文字传送 |
请求正文中的全文 |
通过 TextEvent 消息流式传输输入文本 |
音频传输 |
通过 HTTP 响应正文流式传输音频响应 |
通过 AudioEvent 消息流式传输音频响应 |
发动机支架 |
标准、神经、长形、生成式 |
仅限生成式 |
SSML 支持 |
是(所有引擎;支持的标签因引擎而异) |
是(仅限生成引擎标签) |
词典 |
支持 |
是 |
语音标记 |
是 |
否 |
文字限制 |
每个请求总共有 6,000 个字符(计费 3,000 个) |
每个 6,000 个字符(计费 3,000 个) TextEvent |
AWS CLI 支持 |
是 |
否(双向直播需要 SDK) |