

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

# 使用自定义词汇表过滤器
<a name="vocabulary-filter-using"></a>

创建自定义词汇表过滤器后，您可以将其包含在转录请求中；有关示例，请参阅以下章节。

您在请求中包含的自定义词汇表过滤器的语言必须与您为媒体指定的语言代码相匹配。如果您使用语言识别并指定多个语言选项，则可以为每种指定语言添加一个自定义词汇表过滤器。如果您的自定义词汇过滤器的语言与音频中识别的语言不匹配，则您的过滤器不会应用于您的转录，并且不会出现任何警告或错误。

## 在批量转录中使用自定义词汇表过滤器
<a name="custom-vocabulary-using-batch"></a>

要将自定义词汇表过滤器用于批量转录，请查看以下示例：

### AWS 管理控制台
<a name="vocab-filter-using-console-batch"></a>

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

1. 在导航窗格中，选择**转录作业**，然后选择**创建作业**（右上角）。这将打开**指定作业详细信息**页面。  
![\[Amazon Transcribe 控制台屏幕截图：“指定作业设置”页面。\]](http://docs.aws.amazon.com/zh_cn/transcribe/latest/dg/images/console-batch-job-details-1.png)

   为您的作业命名并指定您的输入媒体。（可选）包括任何其它字段，然后选择**下一步**。

1. 在**配置作业**页面的**内容移除**面板中，开启**词汇表过滤**。  
![\[Amazon Transcribe 控制台屏幕截图：“配置作业”页面。\]](http://docs.aws.amazon.com/zh_cn/transcribe/latest/dg/images/console-batch-configure-job-vocab-filter.png)

1. 从下拉菜单中选择您的自定义词汇表过滤器，然后指定过滤方法。  
![\[Amazon Transcribe 控制台屏幕截图：词汇表过滤器选择选项。\]](http://docs.aws.amazon.com/zh_cn/transcribe/latest/dg/images/console-batch-vocab-filter-method.png)

1. 选择**创建作业**以运行您的转录作业。

### AWS CLI
<a name="vocab-filter-using-cli"></a>

此示例使用 [start-transcription-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transcribe/start-transcription-job.html) 命令和 `Settings` 参数及 `VocabularyFilterName` 和 `VocabularyFilterMethod` 子参数。有关更多信息，请参阅 [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_Settings.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_Settings.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 \
--settings VocabularyFilterName=my-first-vocabulary-filter,VocabularyFilterMethod=mask
```

以下是另一个使用 [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://my-first-vocabulary-filter-job.json
```

*my-first-vocabulary-filter-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",
  "Settings": {
        "VocabularyFilterName": "my-first-vocabulary-filter",
        "VocabularyFilterMethod": "mask"
   }
}
```

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

此示例使用 适用于 Python (Boto3) 的 AWS SDK 通过 [start\$1transcription\$1job](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/transcribe.html#TranscribeService.Client.start_transcription_job) 方法的 `Settings` 参数来包含自定义词汇表过滤器。有关更多信息，请参阅 [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_Settings.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_Settings.html)。

有关使用 AWS 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', 
    Settings = {
        'VocabularyFilterName': 'my-first-vocabulary-filter',
        'VocabularyFilterMethod': 'mask' 
   }
)

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

## 在流式转录中使用自定义词汇表过滤器
<a name="custom-vocabulary-using-stream"></a>

要将自定义词汇表过滤器用于流式转录，请查看以下示例：

### AWS 管理控制台
<a name="vocab-filter-using-console-stream"></a>

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

1. 在导航窗格中，选择 **Real-time transcription (实时转录)**。向下滚动到**内容移除设置**，如果该字段已最小化，则将其展开。  
![\[Amazon Transcribe 控制台屏幕截图：“实时转录”页面。\]](http://docs.aws.amazon.com/zh_cn/transcribe/latest/dg/images/stream-main.png)

1. 开启**词汇表过滤**。从下拉菜单中选择自定义词汇表过滤器，然后指定过滤方法。  
![\[Amazon Transcribe 控制台屏幕截图：展开的“内容移除设置”窗格。\]](http://docs.aws.amazon.com/zh_cn/transcribe/latest/dg/images/vocab-filter-stream.png)

   添加您希望应用于流式转录的所有其它设置。

1. 您现在已准备就绪，可以转录音频流了。选择**开始流式转录**并开始讲话。要结束口述，请选择**停止流式转录**。

### HTTP/2 音频流
<a name="vocab-filter-using-http2"></a>

此示例创建了一个 HTTP/2 请求，其中包含您的自定义词汇表过滤器和过滤方法。有关结合 Amazon Transcribe 使用 HTTP/2 流式转录的更多信息，请参阅[设置 HTTP/2 音频流](streaming-setting-up.md#streaming-http2)。有关特定于 Amazon Transcribe 的参数和标题的更多详细信息，请参阅 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartStreamTranscription.html)。

```
POST /stream-transcription HTTP/2
host: transcribestreaming.us-west-2.amazonaws.com
X-Amz-Target: com.amazonaws.transcribe.Transcribe.StartStreamTranscription
Content-Type: application/vnd.amazon.eventstream
X-Amz-Content-Sha256: string
X-Amz-Date: 20220208T235959Z
Authorization: AWS4-HMAC-SHA256 Credential=access-key/20220208/us-west-2/transcribe/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date;x-amz-target;x-amz-security-token, Signature=string
x-amzn-transcribe-language-code: en-US
x-amzn-transcribe-media-encoding: flac
x-amzn-transcribe-sample-rate: 16000      
x-amzn-transcribe-vocabulary-filter-name: my-first-vocabulary-filter
x-amzn-transcribe-vocabulary-filter-method: mask
transfer-encoding: chunked
```

参数定义可在 [API 参考](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_Reference.html)中找到；所有 AWS API 操作的通用参数列在[常见参数](https://docs.aws.amazon.com/transcribe/latest/APIReference/CommonParameters.html)部分中。

### WebSocket 音频流
<a name="vocab-filter-using-websocket"></a>

此示例创建了一个预签名 URL，用于将您的自定义词汇表过滤器应用于 WebSocket 音频流。为了便于阅读，已增加了换行符。有关结合 Amazon Transcribe 使用 WebSocket 音频流的更多信息，请参阅[设置直 WebSocket 播](streaming-setting-up.md#streaming-websocket)。有关参数的更多详细信息，请参阅 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartStreamTranscription.html)。

```
GET wss://transcribestreaming.us-west-2.amazonaws.com:8443/stream-transcription-websocket?
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Credential=AKIAIOSFODNN7EXAMPLE%2F20220208%2Fus-west-2%2Ftranscribe%2Faws4_request
&X-Amz-Date=20220208T235959Z
&X-Amz-Expires=300
&X-Amz-Security-Token=security-token
&X-Amz-Signature=string
&X-Amz-SignedHeaders=content-type%3Bhost%3Bx-amz-date
&language-code=en-US
&media-encoding=flac
&sample-rate=16000    
&vocabulary-filter-name=my-first-vocabulary-filter
&vocabulary-filter-method=mask
```

参数定义可在 [API 参考](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_Reference.html)中找到；所有 AWS API 操作的通用参数列在[常见参数](https://docs.aws.amazon.com/transcribe/latest/APIReference/CommonParameters.html)部分中。