

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

# 使用批次轉錄作業進行語言識別
<a name="lang-id-batch"></a>

使用批次語言識別功能，自動識別媒體檔案中的語言。

如果您的媒體僅包含一種語言，您可以啟用[單一語言識別](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 管理主控台 AWS CLI和 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`。

這與單一語言識別不同，只使用一種優勢語言以建立轉錄。在這種情況下，任何不是優勢語言的口語語言都會被錯誤轉錄。

**注意**  
多語言識別目前不支援修訂和自訂語言模型。

**注意**  
目前支援多語言識別：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-RUta-IN、TH-IN、TH-IN、TH-IN 

多語言文字記錄提供偵測到的語言摘要，以及媒體中每種語言的總使用時間。範例如下：

```
"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 使用您在將音訊與正確語言配對時指定的語言，這可以加快語言識別速度並改善與指派正確語言方言相關聯的準確性。

如果您選擇包含語言代碼，則必須包含至少兩個。您可以包含的語言代碼數量沒有限制，但我們建議您使用二到五個，以達到最佳的效率和準確性。

**注意**  
如果您在請求中包含語言代碼，而且您提供的語言代碼不符合音訊中識別的語言，則 會從您指定的語言代碼 Amazon Transcribe 中選取最接近的語言代碼。然後，它會產生該語言的文字記錄。例如，如果您的媒體是美式英文 (`en-US`)`fr-FR`，而且您提供 Amazon Transcribe 語言代碼 `zh-CN`、 和 `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`) 以外的語言，則您的文字記錄中只會修訂美式英文或美式西班牙文內容。其他語言無法修訂，也且不回出現警告或工作失敗。



**自訂語言模型，自訂詞彙和自訂詞彙篩選**

如果您要在語言識別請求中新增一或多個自訂語言模型、自訂詞彙或自訂詞彙篩選，您必須加入 [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) 範例，請參閱 **AWS CLI** 和 [使用語言識別與批次轉錄](#lang-id-batch-examples) 一節中 **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/zh_tw/transcribe/latest/dg/images/lang-id-batch1.png)

1. 填入您要包含在**指定作業詳細資訊‭**頁面上的任何其他欄位，然後選擇**下一步**。這會引導您前往**設定工作 - *選擇性***頁面。  
![\[Amazon Transcribe 主控台螢幕擷取畫面：「設定任務」頁面。\]](http://docs.aws.amazon.com/zh_tw/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"
         }
    }
}
```

### 適用於 Python (Boto3) 的 AWS SDK
<a name="lang-id-python-batch"></a>

此範例使用 start[\$1transcription\$1job](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/transcribe.html#TranscribeService.Client.start_transcription_job) 方法的 `IdentifyLanguage` 引數 適用於 Python (Boto3) 的 AWS SDK ，來識別檔案的語言。如需詳細資訊，請參閱[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 的其他範例，包括功能特定、案例和跨服務範例，請參閱 [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)
```