

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

# 使用表格创建自定义词汇表
<a name="custom-vocabulary-create-table"></a>

使用表格格式是创建自定义词汇表的首选方式。词汇表表格必须由四列 (Phrase, SoundsLike, IPA, and DisplayAs) 组成，可以按任意顺序排列：


| Phrase | SoundsLike | IPA | DisplayAs | 
| --- | --- | --- | --- | 
| 必需。表格中的每一行都必须在此列中包含一个条目。<br />请勿在此列中使用空格。<br />如果您的条目包含多个单词，请用连字符 (-) 分隔每个单词。例如，**Andorra-la-Vella** 或 **Los-Angeles**。<br />对于首字母缩略词，任何发音的字母都必须用句点分隔。尾部句点也需要发音。如果您的首字母缩略词是复数，则必须在首字母缩略词和“s”之间使用连字符。例如，“CLI”是 **C.L.I.**（不是 **C.L.I**），“ABC”是 **A.B.C.-s**（不是 **A.B.C-s**）。<br />如果您的短语由单词和首字母缩略词组成，则这两个部分必须用连字符分隔。例如，“DynamoDB”是 **Dynamo-D.B.**。<br />请勿在此列中包含数字；数值必须拼写出来。例如，“VX02Q”是 **V.X.-zero-two-Q.**。 | `SoundsLike` 不再支持自定义词汇表。请将该列留空。该列中的所有值都会被忽略。我们将来不会再支持该列。 | `IPA` 不再支持自定义词汇表。请将该列留空。该列中的所有值都会被忽略。我们将来不会再支持该列。 | 可选。此列中的行可以留空。<br />您可以在此列中使用空格。<br />定义您希望条目在转录输出中显示的方式。例如，`Phrase` 列中的 **Andorra-la-Vella** 在 `DisplayAs` 列中是 **Andorra la Vella**。<br />如果此列中的某行为空，则 Amazon Transcribe 使用该`Phrase`列的内容来确定输出。<br />您可以在此列中包含数字 (`0-9`)。 | 

创建表格时需要注意的事项：
+ 您的表必须包含全部四个列标头 (Phrase, SoundsLike, IPA, and DisplayAs)。`Phrase` 列的每一行都必须包含一个条目。我们不再支持通过 `IPA` 和 `SoundsLike` 提供发音输入的功能，您可以将该列留空。这些列中的所有值都会被忽略。
+ 每列必须以 TAB 或逗号 (,) 分隔；这适用于自定义词汇表文件中的每一行。如果一行包含空列，则仍必须为每列包含一个分隔符（TAB 或逗号）。
+ 只允许在 `IPA` 和 `DisplayAs` 列中使用空格。不要使用空格分隔列。
+ `IPA` 和 `SoundsLike` 不再支持自定义词汇表。请将该列留空。这些列中的所有值都会被忽略。我们将来不会再支持该列。
+ `DisplayAs` 列支持符号和特殊字符（例如，C\+\+）。所有其它列都支持您的语言的[字符集](charsets.md)页面上所列的字符。
+ 该`Phrase`列具有以下格式规则：
  + 不能以句点 (`.`)、撇号 () 或连字符 (`'`) 开头。`-`例如，**-hello**和**.test**无效。
  + 不能以撇号 (`'`) 或连字符 () 结尾。`-`例如，**hello-**和**world'**无效。
  + 不能包含重复的连字符 (`--`)、重复的句点 (`..`) 或重复的撇号 ()。`''`例如，**well--known**和**can''t**无效。
  + 句点只能用于表示首字母缩略词（由句点分隔的单个字母，例如**A.B.C.**）。句点不能出现在两个或更多连续的非特殊字符（例如，**AB.C**无效）之后，也不能跟着三个或更多连续的非特殊字符（例如，**A.BCD**无效）。
  + 仅支持您的语言字符[集中列出的字](charsets.md)符。
+ 如果要在 `Phrase` 列中包含数值，则必须将其拼写出来。仅 `DisplayAs` 列支持数字 (`0-9`)。
+ 必须将表格另存为纯文本 (\*.txt) 文件。同时支持`LF`和`CRLF`行尾。
+ 您必须将自定义词汇文件上传到 Amazon S3 存储桶中并使用它进行处理，[https://docs.aws.amazon.com/transcribe/latest/APIReference/API_CreateVocabulary.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_CreateVocabulary.html)然后才能将其包含在转录请求中。有关说明，请参阅 [创建自定义词汇表表格](#custom-vocabulary-create-table-examples)。

**注意**  
输入首字母缩略词，或者其字母应以用点 (**A.B.C.**) 隔开的单个字母的形式单独发音的其它单词。要输入首字母缩略词的复数形式（如“ABCs”），请用连字符 (**A.B.C.-s**) 将“s”与首字母缩略词隔开。您可以使用大写或小写字母定义首字母缩略词。并非所有语言都支持首字母缩略词；请参阅[支持的语言和特定语言的特征](supported-languages.md)。

以下是自定义词汇表表格示例（其中 **[TAB]** 表示制表符）：

```
Phrase[TAB]SoundsLike[TAB]IPA[TAB]DisplayAs
Los-Angeles[TAB][TAB][TAB]Los Angeles
Eva-Maria[TAB][TAB][TAB]
A.B.C.-s[TAB][TAB][TAB]ABCs
Amazon-dot-com[TAB][TAB][TAB]Amazon.com
C.L.I.[TAB][TAB][TAB]CLI
Andorra-la-Vella[TAB][TAB][TAB]Andorra la Vella
Dynamo-D.B.[TAB][TAB][TAB]DynamoDB
V.X.-zero-two[TAB][TAB][TAB]VX02
V.X.-zero-two-Q.[TAB][TAB][TAB]VX02Q
```

为了清晰起见，以下是列对齐的同一张表格。**请勿**在自定义词汇表表格中的列之间添加空格；您的表格应该像前面的示例一样看上去未对齐。

```
Phrase          [TAB]SoundsLike          [TAB]IPA                [TAB]DisplayAs  
Los-Angeles     [TAB]                    [TAB]                   [TAB]Los Angeles   
Eva-Maria       [TAB]                    [TAB]                   [TAB]
A.B.C.-s        [TAB]                    [TAB]                   [TAB]ABCs  
amazon-dot-com  [TAB]                    [TAB]                   [TAB]amazon.com
C.L.I.          [TAB]                    [TAB]                   [TAB]CLI   
Andorra-la-Vella[TAB]                    [TAB]                   [TAB]Andorra la Vella
Dynamo-D.B.     [TAB]                    [TAB]                   [TAB]DynamoDB
V.X.-zero-two   [TAB]                    [TAB]                   [TAB]VX02
V.X.-zero-two-Q.[TAB]                    [TAB]                   [TAB]VX02Q
```

## 创建自定义词汇表表格
<a name="custom-vocabulary-create-table-examples"></a>

要处理用于的自定义词汇表 Amazon Transcribe，请参阅以下示例：

### AWS 管理控制台
<a name="vocab-create-table-console"></a>

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

1. 在导航窗格中，选择**自定义词汇表**。此时将会打开**自定义词汇表**页面，您可以在该页面中查看现有词汇表或创建新词汇表。

1. 选择**创建词汇表**。  
![Amazon Transcribe 控制台屏幕截图：“自定义词汇表” 页面。](http://docs.aws.amazon.com/zh_cn/transcribe/latest/dg/images/vocab-create-console.png)

   这会将您带至**创建词汇表**页面。为新的自定义词汇表输入名称。

   在此，您有三种选择：

   1. 从您的计算机上传 txt 或 csv 文件。

      您可以从头开始创建自定义词汇表，也可以下载模板来帮助您入门。然后，您的词汇表将自动填充到**查看和编辑词汇表**窗格中。  
![Amazon Transcribe 控制台屏幕截图：“创建和导入词汇” 页面。](http://docs.aws.amazon.com/zh_cn/transcribe/latest/dg/images/vocab-create-console-upload.png)

   1. 从某个 Amazon S3 位置导入 txt 或 csv 文件。

      您可以从头开始创建自定义词汇表，也可以下载模板来帮助您入门。将完成的词汇表文件上传到 Amazon S3 存储桶，并在请求中指定其 URI。然后，您的词汇表将自动填充到**查看和编辑词汇表**窗格中。  
![Amazon Transcribe 控制台屏幕截图：“创建和导入词汇” 页面。](http://docs.aws.amazon.com/zh_cn/transcribe/latest/dg/images/vocab-create-console-s3.png)

   1. 在控制台中手动创建词汇表。

      滚动到**查看和编辑词汇表**窗格并选择**添加 10 行**。现在，您可以手动输入术语。  
![Amazon Transcribe 控制台屏幕截图：“创建和导入词汇” 页面。](http://docs.aws.amazon.com/zh_cn/transcribe/latest/dg/images/vocab-create-console-manual.png)

1. 您可以在**查看和编辑词汇表**窗格中编辑您的词汇表。要进行更改，请单击要修改的条目。  
![Amazon Transcribe 控制台屏幕截图：“创建和编辑词汇表” 窗格。](http://docs.aws.amazon.com/zh_cn/transcribe/latest/dg/images/vocab-create-edit2.png)

   如果您遇到错误，会收到一条详细的错误消息，这样您就可以在处理词汇表之前更正所有问题。请注意，如果您在选择**创建词汇表**之前没有更正所有错误，则您的词汇表请求将失败。  
![Amazon Transcribe 控制台屏幕截图：“创建和编辑词汇表” 窗格。](http://docs.aws.amazon.com/zh_cn/transcribe/latest/dg/images/vocab-create-edit3.png)

   选择对勾标记 (✓) 保存您的更改，或选择“X”放弃更改。

1. 您也可以为自定义词汇表添加标签。完成所有字段并对自己的词汇表感到满意后，请选择页面底部的**创建词汇表**。此时您将看到**自定义词汇表**页面，您可以在该页面中查看自定义词汇表的状态。当状态从“待处理”变为“就绪”时，您的自定义词汇表就可以用于转录了。  
![Amazon Transcribe 控制台屏幕截图：自定义词汇表在处理时处于待处理状态。](http://docs.aws.amazon.com/zh_cn/transcribe/latest/dg/images/vocab-create-console-pending.png)

1. 如果状态更改为“失败”，请选择您的自定义词汇表的名称以进入其信息页面。  
![Amazon Transcribe 控制台屏幕截图：“自定义词汇” 页面显示一个词汇已完成，一个词汇显示为失败。](http://docs.aws.amazon.com/zh_cn/transcribe/latest/dg/images/vocab-create-console-failed.png)

   本页顶部有一个**失败原因**横幅，提供了有关您的自定义词汇表失败原因的信息。请更正文本文件中的错误，然后重试。  
![Amazon Transcribe 控制台屏幕截图：词汇表的信息页面显示失败原因。](http://docs.aws.amazon.com/zh_cn/transcribe/latest/dg/images/vocab-create-console-failed2.png)

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

此示例结合表格格式的词汇表文件使用 [create-vocabulary](https://docs.aws.amazon.com/cli/latest/reference/transcribe/create-vocabulary.html) 命令。有关更多信息，请参阅 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_CreateVocabulary.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_CreateVocabulary.html)。

要在转录作业中使用现有的自定义词汇，请在调用[https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartTranscriptionJob.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartTranscriptionJob.html)操作时`VocabularyName`在[https://docs.aws.amazon.com/transcribe/latest/APIReference/API_Settings.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_Settings.html)字段中设置，或者从下 AWS 管理控制台拉列表中选择自定义词汇。

```
aws transcribe create-vocabulary \ 
--vocabulary-name {{my-first-vocabulary}} \ 
--vocabulary-file-uri s3://{{amzn-s3-demo-bucket}}/{{my-vocabularies}}/{{my-vocabulary-file}}.txt \
--language-code {{en-US}}
```

以下是另一个使用 [create-vocabulary](https://docs.aws.amazon.com/cli/latest/reference/transcribe/create-vocabulary.html) 命令的示例，以及创建自定义词汇表的请求正文。

```
aws transcribe create-vocabulary \
--cli-input-json file://{{filepath}}/{{my-first-vocab-table}}.json
```

*my-first-vocab-table.json* 文件包含以下请求正文。

```
{
  "VocabularyName": "{{my-first-vocabulary}}",
  "VocabularyFileUri": "s3://{{amzn-s3-demo-bucket}}/{{my-vocabularies}}/{{my-vocabulary-table}}.txt",
  "LanguageCode": "{{en-US}}"
}
```

`VocabularyState` 从 `PENDING` 变为 `READY` 后，您的自定义词汇表就可以用于转录了。要查看自定义词汇表的当前状态，请运行：

```
aws transcribe get-vocabulary \
--vocabulary-name {{my-first-vocabulary}}
```

### 适用于 Python (Boto3) 的 AWS SDK
<a name="vocab-create-table-python-batch"></a>

此示例使用 c [reate\_vorquary 方法从表中创建自定义词汇](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/transcribe.html#TranscribeService.Client.create_vocabulary)表。 适用于 Python (Boto3) 的 AWS SDK 有关更多信息，请参阅 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_CreateVocabulary.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_CreateVocabulary.html)。

要在转录作业中使用现有的自定义词汇，请在调用[https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartTranscriptionJob.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartTranscriptionJob.html)操作时`VocabularyName`在[https://docs.aws.amazon.com/transcribe/latest/APIReference/API_Settings.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_Settings.html)字段中设置，或者从下 AWS 管理控制台拉列表中选择自定义词汇。

有关使用 AWS 软件开发工具包的其他示例，包括特定功能、场景和跨服务示例，请参阅本章。[使用 Amazon Transcribe 的代码示例 AWS 软件开发工具包](service_code_examples.md)

```
from __future__ import print_function
import time
import boto3
transcribe = boto3.client('transcribe', '{{us-west-2}}')
vocab_name = "{{my-first-vocabulary}}"
response = transcribe.create_vocabulary(
    LanguageCode = '{{en-US}}',
    VocabularyName = vocab_name,
    VocabularyFileUri = 's3://{{amzn-s3-demo-bucket}}/{{my-vocabularies}}/{{my-vocabulary-table}}.txt'
)

while True:
    status = transcribe.get_vocabulary(VocabularyName = vocab_name)
    if status['VocabularyState'] in ['READY', 'FAILED']:
        break
    print("Not ready yet...")
    time.sleep(5)
print(status)
```

**注意**  
如果您为自定义词汇文件创建新的 Amazon S3 存储桶，请确保[https://docs.aws.amazon.com/transcribe/latest/APIReference/API_CreateVocabulary.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_CreateVocabulary.html)发出请求的 IAM 角色有权访问此存储桶。如果角色不具备相应的权限，则请求将失败。您可以选择在请求中添加`DataAccessRoleArn`参数来指定 IAM 角色。有关 IAM 角色和策略的更多信息 Amazon Transcribe，请参阅[Amazon Transcribe 基于身份的策略示例](security_iam_id-based-policy-examples.md)。