

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

# 备选转录
<a name="alternatives"></a>

在Amazon Transcribe转录音频时，它会创建同一笔录的不同版本，并为每个版本分配置信度分数。在典型的转录中，您只能得到置信度最高的版本。

如果您开启备选转录，则会Amazon Transcribe返回可信度较低的其他成绩单版本。您最多可以选择返回 10 个备选转录。如果您指定的备选项数目多于Amazon Transcribe标识的备选项数，则仅返回实际的备选项数。

所有备选转录都位于同一个转录输出文件中，并以片段级别提供。片段是语音中的自然停顿定，如发言者变更或音频中的停顿。

备选转录仅适用于批量转录。

您的转录输出的结构如下。为了简洁起见，代码示例中的省略号 (*...*) 表示在哪里删除了内容。

1. 给定片段的完整最终转录。

   ```
   "results": {
       "language_code": "en-US",
       "transcripts": [
           {
               "transcript": "The amazon is the largest rainforest on the planet."
           }
       ],
   ```

1. 前面的 `transcript` 部分中每个单词的置信度分数。

   ```
   "items": [
       {
           "start_time": "1.15",
           "end_time": "1.35",
           "alternatives": [
               {
                   "confidence": "1.0",
                   "content": "The"
               }
           ],
           "type": "pronunciation"
       },
       {
           "start_time": "1.35",
           "end_time": "2.05",
           "alternatives": [
               {
                   "confidence": "1.0",
                   "content": "amazon"
               }
           ],
           "type": "pronunciation"
       },
   ```

1. 您的备选转录位于转录输出的 `segments` 部分。每个片段的备选转录按置信度分数降序排序。

   ```
   "segments": [
               {
                   "start_time": "1.04",
                   "end_time": "5.065",
                   "alternatives": [
                       {    
                   ...
                           "transcript": "The amazon is the largest rain forest on the planet.",
                           "items": [
                               {
                                "start_time": "1.15",
                                   "confidence": "1.0",
                                   "end_time": "1.35",
                                   "type": "pronunciation",
                                   "content": "The"
                               },
                               ...
                               {
                                   "start_time": "3.06",
                                   "confidence": "0.0037",
                                   "end_time": "3.38",
                                   "type": "pronunciation",
                                   "content": "rain"
                               },
                               {
                                   "start_time": "3.38",
                                   "confidence": "0.0037",
                                   "end_time": "3.96",
                                   "type": "pronunciation",
                                   "content": "forest"
                               },
   ```

1. 转录输出结尾部的状态。

   ```
   "status": "COMPLETED"
   }
   ```

## 请求备选转录
<a name="how-alternatives-how-to"></a>

您可以使用、或请求备用转录 **AWSSDKs**；有关**AWS CLI**示例 **AWS 管理控制台**，请参阅以下内容：

### AWS 管理控制台
<a name="alt-transcription-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/alt-transcription-configure-batch.png)

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

### AWS CLI
<a name="alt-transcription-cli"></a>

此示例使用[start-transcription-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transcribe/start-transcription-job.html)命令和`ShowAlternatives`参数。有关更多信息，请参阅[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#transcribe-Type-Settings-ShowAlternatives](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_Settings.html#transcribe-Type-Settings-ShowAlternatives)。

请注意，如果您在请求中包含 `ShowAlternatives=true`，则还必须包括 `MaxAlternatives`。

```
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 ShowAlternatives=true,MaxAlternatives=4
```

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

*my-first-alt-transcription-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": {
        "ShowAlternatives": true,
        "MaxAlternatives": 4
   }
}
```

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

以下示例使用 [star](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/transcribe.html#TranscribeService.Client.start_transcription_job) t\$1transcription\$1job 方法的`ShowAlternatives`参数来请求替代转录。适用于 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_Settings.html#transcribe-Type-Settings-ShowAlternatives](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_Settings.html#transcribe-Type-Settings-ShowAlternatives)。

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

请注意，如果您在请求中包含 `'ShowAlternatives':True`，则还必须包括 `MaxAlternatives`。

```
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 = {
        'ShowAlternatives':True, 
        'MaxAlternatives':4
    }
)

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