建立長時間音訊檔案 - Amazon Polly

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立長時間音訊檔案

您可以使用 Amazon Polly 主控台,使用非同步合成來建立長語音,其功能與 相同 AWS CLI。如同其他所有的合成作業,這項作業也是在 Text-to-Speech (文字轉語音) 標籤完成。

Console

其他的非同步合成功能,也可透過主控台使用。S3 synthesis tasks (S3 合成作業) 標籤反映 ListSpeechSynthesisTasks 功能,會顯示儲存到 S3 儲存貯體的所有作業,並可讓您根據需要進行篩選。按一下特定的單一作業來顯示其詳細資訊 (代表 GetSpeechSynthesisTask 功能)。

使用 Amazon Polly 主控台合成大型文字
  1. 登入 AWS Management Console 並在 開啟 Amazon Polly 主控台https://console.aws.amazon.com/polly/

  2. 選擇 Text-to-Speech (文字轉換語音) 索引標籤。如果適當,請選取長表單作為引擎。

  3. SSML 開啟或關閉 時,請將文字輸入或貼到輸入方塊中。

  4. 為您的文字選擇語言、區域和語音。

  5. 選擇儲存至 S3

    注意

    如果文字長度超過即時SynthesizeSpeech操作的 3,000 個字元限制,則下載接聽選項都會變成灰色。

  6. 主控台會開啟表單,以便您可以選擇要存放輸出檔案的位置。

    1. 填入目的地 Amazon S3 儲存貯體的名稱。

    2. 或者,您可以填寫輸出的前綴金鑰。

      注意

      輸出 S3 儲存貯體必須可以寫入。

    3. 如果您想要在合成任務完成時收到通知,請提供選用SNS的主題識別符。

      注意

      SNS 必須開啟 供目前主控台使用者發佈,才能使用此選項。如需詳細資訊,請參閱 Amazon Simple Notification Service (SNS)

    4. 選擇儲存至 S3

擷取語音合成作業的相關資訊
  1. 在主控台中,選擇 S3 Synthesis Tasks (S3 合成作業) 標籤。

  2. 作業會依日期順序顯示。若要依狀態篩選任務,請選擇所有狀態,然後選擇要使用的狀態。

  3. 若要查看特定作業的詳細資訊,請選擇連結的 Task ID (作業 ID)

AWS CLI

Amazon Polly 非同步合成功能使用三個 SpeechSynthesisTask APIs 來使用大量文字:

  • StartSpeechSynthesisTask:開始執行新的合成作業。

  • GetSpeechSynthesisTask:針對先前提交的合成作業傳回詳細資訊。

  • ListSpeechSynthesisTasks:列出所有已提交的合成作業。

合成大量的文字 (StartSpeechSynthesisTask)

如果您想要建立一個音訊檔案,其大小超過您可以使用即時 SynthesizeSpeech 所建立的檔案時,請使用 StartSpeechSynthesisTask 作業。除了SynthesizeSpeech操作所需的引數之外, StartSpeechSynthesisTask也需要 Amazon S3 儲存貯體的名稱。還有其他兩個選用引數可供使用:如果您想要接收任務的狀態通知,則輸出檔案的金鑰字首和SNS主題ARN的 。

  • OutputS3BucketName:應上傳合成的 Amazon S3 儲存貯體名稱。此儲存貯體應與 Amazon Polly 服務位於相同的區域。此外,用於進行呼叫IAM的使用者應有權存取儲存貯體。[必要]

  • OutputS3KeyPrefix:輸出檔案的金鑰前綴。如果您想要將輸出語音檔案儲存在儲存貯體中的自訂目錄類似索引鍵中,請使用此參數。[選用]

  • SnsTopicArn:如果您想要接收任務狀態的通知,ARN要使用SNS的主題。本SNS主題應與 Amazon Polly 服務位於相同的區域。此外,用於進行呼叫IAM的使用者應有權存取主題。[選用]

例如,下列範例可用來在美國東部 (俄亥俄) 區域中執行 start-speech-synthesis-task AWS CLI 命令:

下列 AWS CLI 範例已針對 Unix、Linux 和 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-name your-bucket-name \ --output-s3-key-prefix optional/prefix/path/file \ --voice-id Joanna \ --text file://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 ,稍後會變更為 completedfailed。如果任務失敗,則在呼叫 GetSpeechSynthesisTask 或 ListSpeechSynthesisTasks 操作時將傳回錯誤訊息。

任務完成後,語音檔案將會出現於 OutputUri 中所指定的位置,以提供使用。

擷取語音合成作業的相關資訊

您可以利用 GetSpeechSynthesisTask 作業,來取得作業的相關資訊,例如錯誤和狀態等。若要這麼做,您會需要由 task-id 所傳回的 StartSpeechSynthesisTask

例如,下列範例可用來執行 get-speech-synthesis-task AWS CLI 命令:

aws polly get-speech-synthesis-task \ --region us-east-2 \ --endpoint-url "https:// polly.us-east-2.amazonaws.com/" \ --task-id task identifier

您也可以利用 ListSpeechSynthesisTasks 操作,來列出在目前區域中已執行所有語音合成作業的清單。

例如,下列範例可用來執行 list-speech-synthesis-tasks AWS CLI 命令:

aws polly list-speech-synthesis-tasks \ --region us-east-2 \ --endpoint-url "https:// polly.us-east-2.amazonaws.com/"