

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

# バッチ文字起こしジョブを使用した言語の識別
<a name="lang-id-batch"></a>

バッチ言語識別を使用して、メディアファイル内の 1 つまたは複数の言語を自動的に識別します。

メディアに 1 つの言語しか含まれていない場合は、[単一言語識別](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartTranscriptionJob.html#transcribe-StartTranscriptionJob-request-IdentifyLanguage)を有効にできます。これにより、メディアファイルで使用されている主要言語が識別され、その言語のみを使用してトランスクリプトが作成されます。

メディアに複数の言語が含まれている場合、[多言語識別](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartTranscriptionJob.html#transcribe-StartTranscriptionJob-request-IdentifyMultipleLanguages)を有効にできます。これにより、メディアファイルで使用されているすべての言語を識別し、識別された各言語を使用してトランスクリプトを作成できます。多言語のトランスクリプトが作成されることに注意してください。トランスクリプトの翻訳など Amazon Translate、他の サービスを使用できます。

サポートされている言語と関連する言語コードの完全なリストについては、「[サポートされている言語](supported-languages.md)」の表を参照してください。

最良の結果を得るには、メディアファイルに少なくとも 30 秒の音声が入っていることを確認します。

 AWS CLI、 AWS マネジメントコンソール、および AWS Python SDK の使用例については、「」を参照してください[バッチ文字起こしによる言語識別の使用](#lang-id-batch-examples)。

## 多言語音声の言語識別
<a name="lang-id-batch-multi-language"></a>

多言語識別は多言語のメディアファイルを対象としており、メディア内のすべての[サポートされている言語](supported-languages.md)を反映したトランスクリプトを提供します。つまり、会話の途中でスピーカーが言語を変更したり、各参加者が異なる言語を話したりしても、文字起こし出力は各言語を正しく検出して文字起こしします。たとえば、メディアに米国英語 (`en-US`) とヒンディー語 (`hi-IN`) を交互に話すバイリンガルのスピーカーがいる場合、多言語識別により、米国英語を `en-US` とし、ヒンディー語を `hi-IN` として識別して文字起こしすることができます。

これは、1 つの主要言語だけ使ってトランスクリプトを作成する単一言語識別とは異なります。この場合、主要言語ではない話し言葉はすべて正しく文字起こしされません。

**注記**  
現在、リダクションとカスタム言語モデルは多言語識別ではサポートされていません。

**注記**  
現在、多言語識別では、en-AB、en-AU、en-GB、en-IE、en-IN、en-NZ、en-US、en-WL、en-ZA、es-ES、es-US、fr-CA、fr-FR、zh-CN、zh-TW、pt-BR、pt-PT、de-CH、de-DE、af-ZA、ar-AE、da-DK、he-IL、hi-IN、id-ID、fa-IR、it-IT、ja-JP、ko-KR、ms-MY、nl-NL、ru-RU、ta-IN、te-IN、te-IN、th-TH、tr-TR をサポートしています。

多言語のトランスクリプトには、検出された言語の概要と、メディア内で各言語が話された合計時間が表示されます。例を示します。

```
"results": {
        "transcripts": [
            {
                "transcript": "welcome to Amazon transcribe. ये तो उदाहरण हैं क्या कैसे कर सकते हैं ।一つのファイルに複数の言語を書き写す"
            }
        ],

    ...

        "language_codes": [
            {
                "language_code": "en-US",
                "duration_in_seconds": 2.45
            },
            {
                "language_code": "hi-IN",
                "duration_in_seconds": 5.325
            },
            {
                "language_code": "ja-JP",
                "duration_in_seconds": 4.15
            }
        ]
}
```

## 言語識別の精度の向上
<a name="lang-id-batch-improve-accuracy"></a>

言語識別では、メディアに存在すると思われる言語のリスト含めるオプションがあります。言語オプション (`LanguageOptions`) を含めると Amazon Transcribe 、オーディオを正しい言語に一致させるときに指定した言語のみの使用に制限されるため、言語識別が高速化され、正しい言語ダイアレクトの割り当てに関連する精度が向上します。

言語コードを含める場合は、少なくとも 2 つ含める必要があります。含められる言語コードの数に制限はありませんが、効率と精度を最適化するために、2～5 つの言語コードを使用することをおすすめします。

**注記**  
リクエストに言語コードを含め、指定した言語コードが音声で識別される言語と一致しない場合、 は指定した言語コードから最も近い言語の一致 Amazon Transcribe を選択します。次に、その言語の文字起こしが作成されます。たとえば、メディアが米国英語 (`en-US`) で、 Amazon Transcribe 言語コード `zh-CN`、`fr-FR`、および を指定した場合`de-DE`、 Amazon Transcribe はメディアをドイツ語 (`de-DE`) に一致させ、ドイツ語の文字起こしを生成する可能性があります。言語コードと話し言葉が一致しないと、文字起こしが不正確になる可能性があるため、言語コードを含める際には注意が必要です。

## 言語識別と他の Amazon Transcribe 機能の組み合わせ
<a name="lang-id-batch-features"></a>

バッチ言語識別は、他の Amazon Transcribe 機能と組み合わせて使用できます。言語識別を他の機能と組み合わせる場合、それらの機能でサポートされている言語に制限されます。例えば、言語識別とコンテンツリダクションを併用する場合、編集が可能な言語は米国英語 (`en-US`) または米国スペイン語 (`es-US`) に限定されます。詳細については、「[サポートされている言語および言語固有の機能](supported-languages.md)」を参照してください。

**重要**  
コンテンツリダクションを有効にして自動言語識別を使用しているときに、音声に米国英語 (`en-US`) または英国スペイン語 (`es-US`) 以外の言語が含まれている場合は、米国英語または英国スペイン語のコンテンツのみがトランスクリプトで編集されます。他の言語は編集できず、警告やジョブの失敗のお知らせは表示されません。



**カスタム言語モデル、カスタム語彙、カスタム語彙フィルター**

言語識別リクエストに 1 つ以上のカスタム言語モデル、カスタム語彙、またはカスタム語彙フィルターを追加する場合は、[https://docs.aws.amazon.com/transcribe/latest/APIReference/API_LanguageIdSettings.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_LanguageIdSettings.html) パラメータを含める必要があります。次に、対応するカスタム言語モデル、カスタム語彙、カスタム語彙フィルターを使用して言語コードを指定できます。多言語識別はカスタム言語モデルをサポートしていないことに注意してください。

[https://docs.aws.amazon.com/transcribe/latest/APIReference/API_LanguageIdSettings.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_LanguageIdSettings.html) を使用する際には、正しい言語の方言が確実に識別されるように、`LanguageOptions` を含めることをおすすめします。たとえば、`en-US`カスタム語彙を指定しても、メディアで話されている言語が Amazon Transcribe であると判断した場合`en-AU`、カスタム語*彙は文字起こしに適用されません*。`LanguageOptions` を含め、`en-US` を英語の方言のみとして指定すると、カスタム語彙が文字起こしに適用され*ます*。

リクエストの [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_LanguageIdSettings.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_LanguageIdSettings.html) の例については、[バッチ文字起こしによる言語識別の使用](#lang-id-batch-examples) セクションの **AWS CLI** および **AWS SDK** ドロップダウンパネルの「オプション 2」を参照してください。

## バッチ文字起こしによる言語識別の使用
<a name="lang-id-batch-examples"></a>

バッチ文字起こしジョブで、**AWS マネジメントコンソール**、**AWS CLI**、または **AWS SDK** を使用して、自動言語識別を使用できます。例については、次を参照してください。

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

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

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

1. **ジョブの設定**パネルで、**言語設定**セクションを見つけ、[**自動言語識別**] または [**自動多言語識別**] を選択します。

   音声ファイルに含まれる言語がわかっている場合は、(「*言語を選択*」ドロップダウンボックスから) 複数の言語オプションを選択できます。言語オプションを提供することで、精度を向上させることができますが、必須ではありません。  
![\[Amazon Transcribe コンソールのスクリーンショット: 「ジョブの詳細を指定」ページの「ジョブ設定」ペイン。\]](http://docs.aws.amazon.com/ja_jp/transcribe/latest/dg/images/lang-id-batch1.png)

1. **ジョブの詳細を指定**ページに追加したいその他のフィールドに入力し、「**次へ**」を選択します。これにより、**ジョブの設定 - *オプション***ページへ移動します。  
![\[Amazon Transcribe コンソールのスクリーンショット: 「ジョブの設定」ページ。\]](http://docs.aws.amazon.com/ja_jp/transcribe/latest/dg/images/lang-id-configure-batch.png)

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

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

この例では、[start-transcription-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transcribe/start-transcription-job.html) コマンドと `IdentifyLanguage` パラメータを使用します。詳細については、「[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_LanguageIdSettings.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_LanguageIdSettings.html)」を参照してください。

**オプション 1**: `language-id-settings` パラメータを使用しない場合。リクエストにカスタム言語モデル、カスタム語彙、カスタム語彙フィルターを含め**ない**場合は、このオプションを使用してください。`language-options` はオプションですが、推奨されます。

```
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/ \    
--identify-language \  (or --identify-multiple-languages) \
--language-options "en-US" "hi-IN"
```

**オプション 2**: `language-id-settings` パラメータを使用する場合。リクエストにカスタム言語モデル、カスタム語彙、カスタム語彙フィルターを含**める**場合は、このオプションを使用してください。

```
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/ \
--identify-language \  (or --identify-multiple-languages)
--language-options "en-US" "hi-IN" \
--language-id-settings en-US=VocabularyName=my-en-US-vocabulary,en-US=VocabularyFilterName=my-en-US-vocabulary-filter,en-US=LanguageModelName=my-en-US-language-model,hi-IN=VocabularyName=my-hi-IN-vocabulary,hi-IN=VocabularyFilterName=my-hi-IN-vocabulary-filter
```

[start-transcription-job](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://filepath/my-first-language-id-job.json
```

ファイル *my-first-language-id-job.json* には、次のリクエストボディが含まれています。

**オプション 1**: `LanguageIdSettings` パラメータを使用しない場合。リクエストにカスタム言語モデル、カスタム語彙、カスタム語彙フィルターを含め**ない**場合は、このオプションを使用してください。`LanguageOptions` はオプションですが、推奨されます。

```
{
  "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/", 
  "IdentifyLanguage": true,  (or "IdentifyMultipleLanguages": true),
  "LanguageOptions": [
        "en-US", "hi-IN"  
  ]
}
```

**オプション 2**: `LanguageIdSettings` パラメータを使用する場合。リクエストにカスタム言語モデル、カスタム語彙、カスタム語彙フィルターを含**める**場合は、このオプションを使用してください。

```
{
   "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/", 
   "IdentifyLanguage": true,  (or "IdentifyMultipleLanguages": true)
   "LanguageOptions": [
        "en-US", "hi-IN"  
   ],
   "LanguageIdSettings": { 
         "en-US" : { 
            "LanguageModelName": "my-en-US-language-model",
            "VocabularyFilterName": "my-en-US-vocabulary-filter",
            "VocabularyName": "my-en-US-vocabulary"
         },
         "hi-IN": {
             "VocabularyName": "my-hi-IN-vocabulary",
             "VocabularyFilterName": "my-hi-IN-vocabulary-filter"
         }
    }
}
```

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

この例では、 を使用して AWS SDK for Python (Boto3) 、[start\$1transcription\$1job](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/transcribe.html#TranscribeService.Client.start_transcription_job) メソッドの `IdentifyLanguage`引数を使用してファイルの言語を識別します。詳細については、「[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_LanguageIdSettings.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_LanguageIdSettings.html)」を参照してください。

機能固有の例、シナリオ例、クロスサービス例など、 AWS SDKs[SDK を使用した Amazon Transcribe のコード例 AWS SDKs](service_code_examples.md)「」の章を参照してください。

**オプション 1**: `LanguageIdSettings` パラメータを使用しない場合。リクエストにカスタム言語モデル、カスタム語彙、カスタム語彙フィルターを含め**ない**場合は、このオプションを使用してください。`LanguageOptions` はオプションですが、推奨されます。

```
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/',
    MediaFormat = 'flac',
    IdentifyLanguage = True,  (or IdentifyMultipleLanguages = True),
    LanguageOptions = [
        'en-US', 'hi-IN'
    ]
)

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)
```

**オプション 2**: `LanguageIdSettings` パラメータを使用する場合。リクエストにカスタム言語モデル、カスタム語彙、カスタム語彙フィルターを含**める**場合は、このオプションを使用してください。

```
from __future__ import print_function
import time
import boto3
transcribe = boto3.client('transcribe')
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/', 
    MediaFormat='flac',
    IdentifyLanguage=True,  (or IdentifyMultipleLanguages=True)
    LanguageOptions = [
        'en-US', 'hi-IN'
    ],
    LanguageIdSettings={
        'en-US': {
            'VocabularyName': 'my-en-US-vocabulary',
            'VocabularyFilterName': 'my-en-US-vocabulary-filter',
            'LanguageModelName': 'my-en-US-language-model'
        },
        'hi-IN': {
            'VocabularyName': 'my-hi-IN-vocabulary',
            'VocabularyFilterName': 'my-hi-IN-vocabulary-filter'
        }   
    }
)

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)
```