

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

# 建立自訂語言模型
<a name="custom-language-models-create"></a>

建立自訂語言模型前，您必須：
+ 準備您的資料。資料必須以純文字格式儲存，且不能包含任何特殊字元。
+ 將資料上傳至 Amazon S3 儲存貯體。建議為訓練和調整資料建立個別的資料夾。
+ 請確定 Amazon Transcribe 可存取您的 Amazon S3 儲存貯體。您必須指定具有存取許可 IAM 的角色，才能使用您的資料。

## 準備您的資料
<a name="prepare-data"></a>

您可以將所有資料編譯在一個檔案中，也可以另存為多個檔案。請注意，如果您選擇包括調整資料，則必須將其儲存在與訓練資料不同的檔案中。

無論您進行培訓或調整資料所使用的文字檔案數量。上傳一個包含 100,000 個單字的檔案會產生與上傳 10 個檔案 (含 10,000 個單字) 相同的結果。以最方便的方式準備文字資料。

請確定您的所有資料檔案都符合以下條件：
+ 它們都使用與您要建立的模型相同的語言。例如，如果您想要建立以美式英文 (`en-US`) 轉錄音訊的自訂語言模型，則所有文字資料都必須使用美式英文。
+ 它們採用 UTF-8 編碼的純文字格式。
+ 它們不包含任何特殊字元或格式，例如 HTML 標記。
+ 訓練資料的合併大小上限為 2 GB，調整資料的大小上限為 200 MB。

如果不符合這些條件，您的模型會失敗。

## 上傳資料
<a name="upload-data"></a>

上傳資料前，請先為訓練資料建立新資料夾。如果使用調整資料，請建立獨立的資料夾

您的儲存貯體的 URI 可能如下所示：
+ `s3://amzn-s3-demo-bucket/my-model-training-data/`
+ `s3://amzn-s3-demo-bucket/my-model-tuning-data/`

將您的訓練和調整資料上傳至適當的儲存貯體。

您可以稍後將更多資料新增至這些儲存貯體。但是，如果這樣做，則需要使用新資料重新建立模型。現有模型無法使用新資料更新。

## 允許存取您的資料
<a name="data-permissions"></a>

若要建立自訂語言模型，您必須指定具有存取儲存 Amazon S3 貯體許可 IAM 的角色。如果您尚未擁有可存取您放置訓練資料的儲存 Amazon S3 貯體的角色，則必須建立一個。建立角色後，您可以連接政策以授與該角色權限。請勿將政策連接至使用者

如需範例政策，請參閱 [Amazon Transcribe 身分型政策範例](security_iam_id-based-policy-examples.md)。

若要了解如何建立新的 IAM 身分，請參閱[IAM 身分 （使用者、使用者群組和角色）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)。

若要了解政策的詳細資訊，請參閱：
+ [IAM的政策和許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)
+ [建立 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-start)
+ [AWS 資源的存取權管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/access)

## 建立您的自訂語言模型
<a name="create-custom-language-model"></a>

建立自訂語言模型時，您必須選擇基礎模型。有兩種基本模型選項：
+ `NarrowBand`：取樣率小於 16,000 Hz 的音訊，使用此選項。此模型類型通常用於以 8,000 Hz 記錄的電話對話。
+ `WideBand`：取樣率大於或等於 16,000 Hz 的音訊，使用此選項。

您可以使用 AWS 管理主控台 AWS CLI、 AWS SDKs.;請參閱下列範例：

### AWS 管理主控台
<a name="model-create-console"></a>

1. 登入 [AWS 管理主控台](https://console.aws.amazon.com/transcribe/)。

1. 在導覽窗格中，選擇**自訂語言模型**。這會開啟 **自訂語言模型** 頁面，您可以在其中檢視現有的自訂語言模型或訓練新的自訂語言模型。

1. 若要訓練新模型，選擇 **訓練模型**。  
![\[Amazon Transcribe 主控台螢幕擷取畫面：「自訂語言模型」頁面。\]](http://docs.aws.amazon.com/zh_tw/transcribe/latest/dg/images/clm-create-console.png)

   此會引導您前往 **訓練模型** 頁面。新增名稱、指定語言，然後選擇您要用於模型的基礎模型。然後，將路徑新增至訓練，並選擇性新增調整資料。您必須包含具有存取資料許可 IAM 的角色。  
![\[Amazon Transcribe 主控台螢幕擷取畫面：「訓練模型」頁面。\]](http://docs.aws.amazon.com/zh_tw/transcribe/latest/dg/images/clm-train-console.png)

1. 完成所有欄位後，選擇頁面底部的 **訓練模型**。

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

此範例使用 [create-language-model](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transcribe/create-language-model.html) 指令。如需詳細資訊，請參閱 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_CreateLanguageModel.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_CreateLanguageModel.html) 和 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_LanguageModel.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_LanguageModel.html)。

```
aws transcribe create-language-model \ 
--base-model-name NarrowBand \ 
--model-name my-first-language-model \ 
--input-data-config S3Uri=s3://amzn-s3-demo-bucket/my-clm-training-data/,TuningDataS3Uri=s3://amzn-s3-demo-bucket/my-clm-tuning-data/,DataAccessRoleArn=arn:aws:iam::111122223333:role/ExampleRole \
--language-code en-US
```

這是使用 [create-language-model](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transcribe/start-transcription-job.html) 指令的另一個範例，以及建立自訂語言模型的請求主文。

```
aws transcribe create-language-model \
--cli-input-json file://filepath/my-first-language-model.json
```

檔案 *my-first-language-model.json* 包含以下請求主文。

```
{
  "BaseModelName": "NarrowBand",
  "ModelName": "my-first-language-model",
  "InputDataConfig": {
         "S3Uri": "s3://amzn-s3-demo-bucket/my-clm-training-data/",
         "TuningDataS3Uri"="s3://amzn-s3-demo-bucket/my-clm-tuning-data/",
         "DataAccessRoleArn": "arn:aws:iam::111122223333:role/ExampleRole"
    },
  "LanguageCode": "en-US"  
}
```

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

此範例使用 適用於 Python (Boto3) 的 AWS SDK 來使用 [create\$1language\$1model](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/transcribe.html#TranscribeService.Client.create_language_model) 方法建立 CLM。如需詳細資訊，請參閱 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_CreateLanguageModel.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_CreateLanguageModel.html) 和 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_LanguageModel.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_LanguageModel.html)。

如需使用 AWS SDKs 的其他範例，包括功能特定、案例和跨服務範例，請參閱 [Amazon Transcribe AWS SDKs的程式碼範例](service_code_examples.md)章節。

```
from __future__ import print_function
import time
import boto3
transcribe = boto3.client('transcribe', 'us-west-2')
model_name = 'my-first-language-model',
transcribe.create_language_model(
    LanguageCode = 'en-US', 
    BaseModelName = 'NarrowBand',
    ModelName = model_name,
    InputDataConfig = {
        'S3Uri':'s3://amzn-s3-demo-bucket/my-clm-training-data/',
        'TuningDataS3Uri':'s3://amzn-s3-demo-bucket/my-clm-tuning-data/',
        'DataAccessRoleArn':'arn:aws:iam::111122223333:role/ExampleRole'
    }
)

while True:
    status = transcribe.get_language_model(ModelName = model_name)
    if status['LanguageModel']['ModelStatus'] in ['COMPLETED', 'FAILED']:
        break
    print("Not ready yet...")
    time.sleep(5)
print(status)
```

## 更新您的自訂語言模型
<a name="update-custom-language-model"></a>

Amazon Transcribe 會持續更新適用於自訂語言模型的基本模型。為了從這些更新中受益，我們建議每 6 到 12 個月訓練新的自訂語言模型一次。

若要查看您的自訂語言模型是否使用最新的基礎模型，請使用 AWS CLI 或 AWS SDK 執行[https://docs.aws.amazon.com/transcribe/latest/APIReference/API_DescribeLanguageModel.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_DescribeLanguageModel.html)請求，然後在回應中尋找 `UpgradeAvailability` 欄位。

如果 `UpgradeAvailability` 是 `true`，則表示您的模型未執行最新版本的基礎模型。若要在自訂語言模型中使用最新的基礎模型，您必須建立新的自訂語言模型。自訂語言模型無法升級。