組建影片字幕 - Amazon Transcribe

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

組建影片字幕

Amazon Transcribe支援用作視訊字幕的 WebVTT (*.vtt) 和 SubRip (*.srt) 輸出。您可以在設定批次視訊轉錄工作時,選取一種或兩種檔案類型。使用字幕功能時,系統會產生您選擇的字幕檔案和一般的成績單檔案 (包含其他資訊)。字幕和轉錄文件輸出到相同的目的地。

字幕會在朗讀文字的同時顯示,並保持可見,直到自然暫停或揚聲器完成通話為止。請注意,如果您在轉錄要求中啟用字幕,而您的音訊不包含語音,則不會建立字幕檔案。

重要

Amazon Transcribe字幕輸出使用的0預設起始索引,這與使用較廣泛的值不同1。如果您需要的開始索引1,您可以使用OutputStartIndex參數在AWS Management Console或 API 請求中指定此索引。

使用不正確的開始索引可能會導致與其他服務的相容性錯誤,因此在建立字幕之前,請務必確認您需要的起始索引。如果您不確定要使用哪個值,我們建議您選擇1。如需詳細Subtitles資訊,請參閱。

支持字幕的功能:

  • 內容編輯 — 任何經過編輯的內容在字幕和一般成績單輸出檔案中都會反映為 PII「」。音頻不會改變。

  • 詞彙過濾器 — 字幕文件是從轉錄文件生成的,因此您在標準轉錄輸出中過濾的任何單詞也會在字幕中過濾。篩選後的內容會顯示為空白字元,或***在您的成績單和字幕檔案中顯示。音頻不會改變。

  • 揚聲器日記 — 如果給定的字幕段中有多個揚聲器,則使用破折號來區分每個揚聲器。這同時適用於 WebVTT 和SubRip格式;例如:

    • --人 1 說的文字

    • --人 2 說的文字

字幕文件存儲在與轉錄輸出相同的Amazon S3位置。

如需建立字幕的影片逐步解說,請參閱:

產生字幕檔

您可以使用AWS Management ConsoleAWS CLIAWSSDK 建立字幕檔案;請參閱下列範例:

  1. 登入 AWS Management Console

  2. 在功能窗格中,選擇「轉錄工作」,然後選取「建立工作」(右上角)。這會開啟 [指定工作詳細資訊] 頁面。字幕選項位於「輸出資料」面板中。

  3. 選擇字幕檔案所需的格式,然後為開始索引選擇一個值。請注意,Amazon Transcribe預設值為0,但1使用更廣泛。如果您不確定要使用哪個值,我們建議您選擇1,因為這樣可能會改善與其他服務的相容性。

    Amazon Transcribe控制台屏幕截圖:「指定作業詳細信息」頁面上的「輸出數據」窗格。
  4. 填入您要包含在 [指定工作詳細資訊] 頁面上的任何其他欄位,然後選取 [下一步]。這會帶您前往 [設定工作-選擇性] 頁面

  5. 選取 [建立工作] 以執行轉錄工作。

此範例使用指start-transcription-job令和Subtitles參數。如需詳細資訊,請參閱 StartTranscriptionJobSubtitles

aws transcribe start-transcription-job \ --region us-west-2 \ --transcription-job-name my-first-transcription-job \ --media MediaFileUri=s3://DOC-EXAMPLE-BUCKET/my-input-files/my-media-file.flac \ --output-bucket-name DOC-EXAMPLE-BUCKET \ --output-key my-output-files/ \ --language-code en-US \ --subtitles Formats=vtt,srt,OutputStartIndex=1

這是另一個使用start-transcription-job命令的示例,以及為該工作添加字幕的請求主體。

aws transcribe start-transcription-job \ --region us-west-2 \ --cli-input-json file://my-first-subtitle-job.json

該文件 my-first-subtitle-job.json 包含以下請求主體。

{ "TranscriptionJobName": "my-first-transcription-job", "Media": { "MediaFileUri": "s3://DOC-EXAMPLE-BUCKET/my-input-files/my-media-file.flac" }, "OutputBucketName": "DOC-EXAMPLE-BUCKET", "OutputKey": "my-output-files/", "LanguageCode": "en-US", "Subtitles": { "Formats": [ "vtt","srt" ], "OutputStartIndex": 1 } }

此範例會AWS SDK for Python (Boto3)使用使用Subtitles引數來新增字幕。如需詳細資訊,請參閱 StartTranscriptionJobSubtitles

如需使用 AWS SDK 的其他範例,包括特定功能、案例和跨服務範例,請參閱本章。使用 SDK 進行 Amazon Transcribe 的代碼示例 AWS

from __future__ import print_function import time import boto3 transcribe = boto3.client('transcribe', 'us-west-2') job_name = "my-first-transcription-job" job_uri = "s3://DOC-EXAMPLE-BUCKET/my-input-files/my-media-file.flac" transcribe.start_transcription_job( TranscriptionJobName = job_name, Media = { 'MediaFileUri': job_uri }, OutputBucketName = 'DOC-EXAMPLE-BUCKET', OutputKey = 'my-output-files/', LanguageCode = 'en-US', Subtitles = { 'Formats': [ 'vtt','srt' ], 'OutputStartIndex': 1 } ) while True: status = transcribe.get_transcription_job(TranscriptionJobName = job_name) if status['TranscriptionJob']['TranscriptionJobStatus'] in ['COMPLETED', 'FAILED']: break print("Not ready yet...") time.sleep(5) print(status)