

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

# 转录多声道音频
<a name="channel-id"></a>

如果您的音频有两个声道，则可以使用频道识别来分别转录每个声道的语音。 Amazon Transcribe 目前不支持超过两个声道的音频。

在您的转录中，声道被分配了标签 `ch_0` 和 `ch_1`。

除了[标准转录部分](how-input.md#how-it-works-output)（`transcripts` 和 `items`）之外，启用声道识别的请求还包括一个 `channel_labels` 部分。本节包含按声道分组的每个言语或标点符号，以及与之相关的声道标签、时间戳和置信度分数。

```
"channel_labels": {
    "channels": [
        {
            "channel_label": "ch_0",
            "items": [                                      
                {
                    "channel_label": "ch_0",
                    "start_time": "4.86",
                    "end_time": "5.01",
                    "alternatives": [
                        {
                            "confidence": "1.0",
                            "content": "I've"
                        }
                    ],
                    "type": "pronunciation"
                },
                {{...}}               
            "channel_label": "ch_1",
            "items": [
                {
                    "channel_label": "ch_1",
                    "start_time": "8.5",
                    "end_time": "8.89",
                    "alternatives": [
                        {
                            "confidence": "1.0",
                            "content": "Sorry"
                        }
                    ],
                    "type": "pronunciation"
                },
                {{...}}
            "number_of_channels": 2
        },
```

如果一个声道上的某个人与另一个声道上的一个人同时说话，则当这些人互相交谈时，每个声道的时间戳会重叠。

要查看带有声道识别的完整示例转录，请参阅[声道识别输出示例（批量转录）](channel-id-output-batch.md)。

## 在批量转录中使用声道识别
<a name="channel-id-batch"></a>

要识别批量转录中的声道，可以使用 **AWS 管理控制台**、**AWS CLI** 或 **AWS SDK**；有关示例，请参阅以下内容：

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

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

### AWS CLI
<a name="channel-id-cli"></a>

此示例使用 [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)。

```
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 ChannelIdentification=true
```

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

*my-first-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": {
        "ChannelIdentification": true
    }
}
```

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

此示例使用 [start\_transcription\_](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/transcribe.html#TranscribeService.Client.start_transcription_job) job 方法来识别频道。 适用于 Python (Boto3) 的 AWS SDK 有关更多信息，请参阅 [StartTranscriptionJob](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartTranscriptionJob.html)。

```
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 = {
        'ChannelIdentification':True
    }
)

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="channel-id-stream"></a>

要识别直播转录中的频道，您可以使用**HTTP/2**或 **WebSockets**；有关示例，请参阅以下内容：

### HTTP/2 直播
<a name="channel-id-http2"></a>

此示例创建了一个 HTTP/2 请求，用于分隔转录输出中的频道。有关使用 HTTP/2 直播功能的更多信息 Amazon Transcribe，请参阅[设置直 HTTP/2 播](streaming-setting-up.md#streaming-http2)。有关特定于 Amazon Transcribe的参数和标题的更多详细信息，请参阅 [StartStreamTranscription](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-channel-identification: TRUE
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="channel-id-websocket"></a>

此示例创建了一个预签名 URL，用于区分转录输出中的声道。为了便于阅读，已增加了换行符。有关将 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
&specialty={{PRIMARYCARE}}
&type={{DICTATION}}
&media-encoding={{flac}}
&sample-rate={{16000}}    
&channel-identification=TRUE
```

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