本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
比較 SynthesizeSpeech 和 StartSpeechSynthesisStream
SynthesizeSpeech 是一種請求回應操作。您可以在單一請求中提供完整文字,並在單一回應中接收完整合成的音訊。它支援所有引擎 (標準、神經、長形、生成式)、包括語音標記在內的所有輸出格式,每個請求的文字限制為 6,000 個字元 (其中不超過 3,000 個字元)。回應會在第一個位元組可用時立即串流音訊。當您有所有可用的文字時,請使用此操作。
StartSpeechSynthesisStream 是一種雙向串流操作。它會開啟 HTTP/2 連線,您在其中遞增傳送文字,並在合成時接收音訊。由於文字會持續串流,因此沒有每個請求的文字限制。它需要生成式引擎,且不支援語音標記。當文字增量到達,且您希望音訊輸出在所有輸入可用之前開始,請使用此操作。常見案例包括:
-
對話式 AI 和語音助理。大型語言模型會以小區塊 (權杖) 產生回應文字。將每個文字區塊轉送到 Amazon Polly,讓使用者在模型仍在產生時聽到語音。
-
即時轉譯。轉譯系統會依區段產生翻譯的文字區段。串流每個區段以進行合成,無需等待完整轉譯完成。
-
超過 SynthesizeSpeech 限制的長格式內容。超過 6,000 個字元的文字可以持續串流,而無需分割為多個請求或管理區塊邊界。
| 面向 | SynthesizeSpeech | StartSpeechSynthesisStream |
|---|---|---|
通訊協定 |
請求-回應 |
雙向事件串流 (HTTP/2) |
文字交付 |
請求內文中的全文 |
透過 TextEvent 訊息串流輸入文字 |
音訊交付 |
透過 HTTP 回應內文串流音訊回應 |
透過 AudioEvent 訊息串流音訊回應 |
引擎支援 |
標準、神經、長形、生成式 |
僅限生成式 |
SSML 支援 |
是 (所有引擎;支援的標籤因引擎而異) |
是 (僅限生成引擎標籤) |
語彙 |
是 |
是 |
語音標記 |
是 |
否 |
文字限制 |
每個請求總計 6,000 個字元 (3,000 個計費) |
每個 TextEvent 總計 6,000 個字元 (3,000 個計費) |
AWS CLI 支援 |
是 |
否 (雙向串流需要 SDK) |