

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

# 使用自定义语言模型
<a name="custom-language-models-using"></a>

创建自定义语言模型后，您可以将其包含在转录请求中；有关示例，请参阅以下各节。

您在请求中包含的模型语言必须与您为媒体指定的语言代码相匹配。如果语言不匹配，则您的自定义语言模型不会应用于您的转录，也不会出现任何警告或错误。

## 在批量转录中使用自定义语言模型
<a name="custom-language-models-using-batch"></a>

要将自定义语言模型用于批量转录，请查看以下示例：

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

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

1. 在导航窗格中，选择**转录作业**，然后选择**创建作业**（右上角）。这将打开**指定作业详细信息**页面。

1. 在**作业设置**面板的**模型类型**下，选中**自定义语言模型**复选框。  
![Amazon Transcribe 控制台屏幕截图：“作业设置” 页面。](http://docs.aws.amazon.com/zh_cn/transcribe/latest/dg/images/clm-console.png)

   您还必须从下拉菜单中选择一种输入语言。  
![Amazon Transcribe 控制台屏幕截图：显示下拉语言菜单的 “作业设置” 页面。](http://docs.aws.amazon.com/zh_cn/transcribe/latest/dg/images/clm-console-language.png)

1. 在**自定义模型选择**下，从下拉菜单中选择现有的自定义语言模型或**创建新的**自定义语言模型。

   在输入**数据面板中添加输入**文件 Amazon S3 的位置。

1. 选择**下一步**以查看其它配置选项。

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

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

此示例使用带有`VocabularyName`子`ModelSettings`参数的[start-transcription-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transcribe/start-transcription-job.html)命令和参数。有关更多信息，请参阅[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_ModelSettings.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_ModelSettings.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}} \
--model-settings LanguageModelName={{my-first-language-model}}
```

以下是另一个使用[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-model-job}}.json
```

*my-first-model-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}}",
  "ModelSettings": {
        "LanguageModelName": "{{my-first-language-model}}"
   }
}
```

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

此示例使用 st [art\_transcription\_](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/transcribe.html#TranscribeService.Client.start_transcription_job) job 方法的`ModelSettings`参数来包含自定义语言模型。 适用于 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_ModelSettings.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_ModelSettings.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}}')
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}}', 
    ModelSettings = {
        'LanguageModelName': '{{my-first-language-model}}' 
   }
)

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-language-models-using-stream"></a>

要将自定义语言模型用于流式转录，请查看以下示例：

### AWS 管理控制台
<a name="model-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/model-stream2.png)

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

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

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

此示例创建了一个包含您自定义语言模型的 HTTP/2 请求。有关使用 HTTP/2 流式传输的更多信息 Amazon Transcribe，请参阅。[设置 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: {{20220208}}T{{235959}}Z
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-language-model-name: {{my-first-language-model}}
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="model-using-websocket"></a>

此示例创建了一个预签名 URL，该网址将您的自定义语言模型应用于 WebSocket 直播。为了便于阅读，已增加了换行符。有关将 WebSocket 直播与配合使用的更多信息 Amazon Transcribe，请参阅[设置直 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}}%2F{{20220208}}%2F{{us-west-2}}%2F{{transcribe}}%2Faws4_request
&X-Amz-Date={{20220208}}T{{235959}}Z
&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}}    
&language-model-name={{my-first-language-model}}
```

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