创建视频字幕 - Amazon Transcribe

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

创建视频字幕

Amazon Transcribe支持 WebVTT (*.vtt) 和 SubRip (*.srt) 输出用作视频字幕。设置批量视频转录作业时,您可以选择一种或两种文件类型。使用字幕功能时,将生成您选择的字幕文件和常规脚本文件(包含其他信息)。字幕和转录文件输出到同一个目的地。

字幕在朗读文字的同时显示,在自然暂停或说话者说完话之前,字幕一直可见。请注意,如果您在转录请求中启用字幕且音频不包含语音,则不会创建字幕文件。

重要

Amazon Transcribe字幕输出使用默认0的起始索引,这与更广泛使用的值不同1。如果您需要的起始索引为1,则可以在AWS Management Console或 API 请求中使用OutputStartIndex参数指定此索引。

使用不正确的起始索引可能会导致与其他服务的兼容性错误,因此在创建字幕之前,请务必验证所需的起始索引。如果您不确定要使用哪个值,我们建议您选择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 } }

此示例使用 start_transcription_ job 方法的Subtitles参数来添加字幕。AWS SDK for Python (Boto3)有关更多信息,请参阅 StartTranscriptionJobSubtitles

有关使用 AWS SDK 的其他示例,包括特定功能、场景和跨服务示例,请参阅本章。使用 Amazon Transcribe 的代码示例 AWS SDKs

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)