

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ビデオ字幕の作成
<a name="subtitles"></a>

Amazon Transcribe は、ビデオ字幕として使用する WebVTT (\$1.vtt) および subRip(\$1.srt) 出力をサポートしています。バッチビデオ文字起こしジョブを設定するときに、1 つまたは両方のファイルタイプを選択できます。字幕機能を使用すると、選択した文字起こしファイルと通常の文字起こしファイル (追加情報を含む) が生成されます。字幕と文字起こしファイルは、同じ出力先に出力されます。

字幕は、テキストが話されると同時に表示され、自然な一時停止があるか、スピーカーが話しかけるまで表示され続けます。文字起こしリクエストで字幕を有効にしても、音声に会話が含まれていない場合、字幕ファイルは作成されないことに注意してください。

**重要**  
Amazon Transcribe では、字幕出力にはデフォルトの開始インデックス `0` が使用されますが、これは広く使用されている `1` の値とは異なります。`1` の開始インデックスが必要な場合は、AWS マネジメントコンソール で指定するか、[https://docs.aws.amazon.com/transcribe/latest/APIReference/API_Subtitles.html#transcribe-Type-Subtitles-OutputStartIndex](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_Subtitles.html#transcribe-Type-Subtitles-OutputStartIndex) パラメータを使用して API リクエスト内で指定できます。

誤った開始インデックスを使用すると、他のサービスとの互換性エラーが発生する可能性があるため、字幕を作成する前に、どの開始インデックスが必要かを確認してください。どの値を使うべきかわからない場合は、`1` を選択することをおすすめします。詳細については、「[https://docs.aws.amazon.com/transcribe/latest/APIReference/API_Subtitles.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_Subtitles.html)」を参照してください。

字幕でサポートされる機能は次のとおりです。
+ **コンテンツのリダクション** — 編集されたコンテンツは、字幕と通常の文字起こし出力ファイルで「`PII`」として反映されます。音声は変更されません。
+ **語彙フィルター** — 字幕ファイルは文字起こしファイルから生成されるため、標準の文字起こし出力でフィルタリングした単語も字幕でフィルタリングされます。フィルタされたコンテンツは文字起こしと字幕ファイルに空白 または `***` として表示されます。音声は変更されません。
+ **話者ダイアライゼーション** — 特定の字幕セグメントに複数のスピーカーがある場合、ダッシュを使用して各スピーカーを区別します。これは WebVTT 形式と subRip 形式の両方に適用されます。次に例を示します。
  + — 人によって話されるテキスト 1
  + — 人によって話されるテキスト 2

字幕ファイルは、文字起こし出力と同じ Amazon S3 の場所に保存されます。

字幕作成のビデオチュートリアルについては、以下を参照してください。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/PZdfXGggcH4/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/PZdfXGggcH4)


## 字幕ファイルの生成
<a name="subtitles-how-to"></a>

**AWS マネジメントコンソール**、**AWS CLI**、または **AWS SDK** を使用して字幕ファイルを作成できます。次の例を参照してください。

### AWS マネジメントコンソール
<a name="subtitles-console"></a>

1. にサインインします。。[AWS マネジメントコンソール](https://console.aws.amazon.com/transcribe/)

1. ナビゲーションペインで、[**文字起こしジョブ**] を選択後、[**ジョブの作成**] (右上) を選択します。これにより、「**ジョブの詳細を指定**」ページが開きます。字幕オプションは、**出力データ** パネルにあります。

1. 字幕ファイルに必要な形式を選択し、開始インデックスの値を選択します。Amazon Transcribe のデフォルトは `0` ですが、`1` のほうがより広く使用されていることに注意してください。どの値を使うべきかわからない場合は、他のサービスとの互換性が向上する可能性があるため、`1` を選択することをおすすめします。  
![\[Amazon Transcribe コンソールのスクリーンショット: 「ジョブの詳細を指定」ページの「出力データ」ペイン。\]](http://docs.aws.amazon.com/ja_jp/transcribe/latest/dg/images/subtitles-startindex.png)

1. **ジョブの詳細を指定**ページに追加したいその他のフィールドに入力し、「**次へ**」を選択します。これにより、**ジョブの設定 - *オプション*ページ**へ移動します。

1. **[ジョブの作成]** を選択して、文字起こしジョブを実行します。

### AWS CLI
<a name="subtitles-cli"></a>

この例では、[start-transcription-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transcribe/start-transcription-job.html) コマンドと `Subtitles` パラメータを使用します。詳細については、「[https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartTranscriptionJob.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartTranscriptionJob.html)」および「[https://docs.aws.amazon.com/transcribe/latest/APIReference/API_Subtitles.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_Subtitles.html)」を参照してください。

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

別の例として、[文字起こしジョブの開始](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transcribe/start-transcription-job.html) コマンド、およびそのジョブに字幕を追加するリクエストボディを使用します。

```
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://amzn-s3-demo-bucket/my-input-files/my-media-file.flac"
  },
  "OutputBucketName": "amzn-s3-demo-bucket",
  "OutputKey": "my-output-files/", 
  "LanguageCode": "en-US",
  "Subtitles": {
        "Formats": [
            "vtt","srt"
        ],             
        "OutputStartIndex": 1
   }
}
```

### AWS SDK for Python (Boto3)
<a name="subtitles-python-batch"></a>

この例では、[transstart\$1transcription\$1job](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/transcribe.html#TranscribeService.Client.start_transcription_job) メソッドの AWS SDK for Python (Boto3) 引数で、`Subtitles` を使用して字幕を追加します。詳細については、「[https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartTranscriptionJob.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartTranscriptionJob.html)」および「[https://docs.aws.amazon.com/transcribe/latest/APIReference/API_Subtitles.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_Subtitles.html)」を参照してください。

特徴固有の例、シナリオ例、クロスサービスの例など、AWS SDK を使用するその他の例については、[SDK を使用した Amazon Transcribe のコード例 AWS SDKs](service_code_examples.md) 章を参照してください。

```
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://amzn-s3-demo-bucket/my-input-files/my-media-file.flac"
transcribe.start_transcription_job(
    TranscriptionJobName = job_name,
    Media = {
        'MediaFileUri': job_uri
    },
    OutputBucketName = 'amzn-s3-demo-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)
```