

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

# 转录医疗谈话
<a name="transcribe-medical-conversation"></a>

您可以使用 Medic Amazon Transcribe al 通过批量转录作业或实时直播来转录临床医生与患者之间的医疗对话。批量转录作业让您能够转录音频文件。为确保 Medic Amazon Transcribe al 以尽可能高的准确度生成转录结果，您必须在转录工作或直播中指定临床医生的医学专业。

您可以转录以下医学专业的临床医生与患者的就诊情况：
+ 心脏科 – 仅在流式转录中可用
+ 神经科 – 仅在流式转录中可用
+ 肿瘤科 – 仅在流式转录中可用
+ 全科 – 包括以下类型的医疗机构：
  + 家庭医疗
  + 内科
  + 妇产科 (OB-GYN)
  + 儿科
+ 泌尿外科 – 仅在流式转录中可用

您可以使用医学自定义词汇表来提高转录的准确性。有关医学自定义词汇表的信息，请参阅[使用医学自定义词汇表提高转录准确性](vocabulary-med.md)。

默认情况下，M Amazon Transcribe edical 会返回置信度最高的转录。如果您想将其配置为返回备选转录，请参阅[生成备选转录](alternative-med-transcriptions.md)。

有关数字和医学测量结果在转录输出中的显示方式的信息，请参阅[转录数值](how-numbers-med.md)和[转录医学术语和测量结果](how-measurements-med.md)。

**Topics**
+ [转录医疗对话的音频文件](batch-medical-conversation.md)
+ [在实时音频流中转录医疗谈话](streaming-medical-conversation.md)
+ [启用发言者划分](conversation-diarization-med.md)
+ [转录多声道音频](conversation-channel-id-med.md)

# 转录医疗对话的音频文件
<a name="batch-medical-conversation"></a>

使用批量转录作业转录医疗对话的音频文件。您可以用它来转录临床医生与患者的对话。您可以通过 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html) API 或 AWS 管理控制台来启动批量转录作业。

使用 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html) API 启动医疗转录作业时，您可以将 `PRIMARYCARE` 指定为 `Specialty` 参数的值。

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

**转录临床医生与患者的对话（AWS 管理控制台）**

**要使用转录临床医生与患者的对话，请创建转录作业，然后选择**对话**作为音频输入类型。 AWS 管理控制台 **

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

1. 在导航窗格的 “ Amazon Transcribe 医疗” 下，选择 “**转录作业**”。

1. 请选择**创建任务**。

1. 在**指定作业详细信息**页面上的**作业设置**下，指定以下设置。

   1. **名称** – 转录作业的名称。

   1. **音频输入类型** - **对话**

1. 对于其余字段，请指定音频文件的 Amazon S3 位置以及要存储转录作业输出的位置。

1. 选择**下一步**。

1. 选择**创建**。

## API
<a name="batch-med-conversation-api"></a>

**使用批量转录作业转录医疗谈话 (API)**
+ 对于 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html) API，请指定以下内容。

  1. 对于 `MedicalTranscriptionJobName`，请指定对于您 AWS 账户而言唯一的名称。

  1. 对于 `LanguageCode`，指定与音频文件中所用语言和词汇表筛选条件的语言对应的语言代码。

  1. 在 `Media` 对象的 `MediaFileUri` 参数中，指定要转录的音频文件的名称。

  1. 对于 `Specialty`，请将音频文件中说话的临床医生的医学专科指定为 `PRIMARYCARE`。

  1. 对于 `Type`，请指定 `CONVERSATION`。

  1. 对于 `OutputBucketName`，请指定要将转录结果存储到的 Amazon S3 存储桶。

  以下是一个请求示例，该请求使用 适用于 Python (Boto3) 的 AWS SDK 转录该`PRIMARYCARE`专业的临床医生和患者的医疗谈话。

  ```
  from __future__ import print_function
  import time
  import boto3
  transcribe = boto3.client('transcribe', 'us-west-2')
  job_name = "my-first-med-transcription-job"
  job_uri = "s3://amzn-s3-demo-bucket/my-input-files/my-audio-file.flac"
  transcribe.start_medical_transcription_job(
        MedicalTranscriptionJobName = job_name,
        Media = {
          'MediaFileUri': job_uri
        },
        OutputBucketName = 'amzn-s3-demo-bucket',
        OutputKey = 'output-files/',
        LanguageCode = 'en-US',
        Specialty = 'PRIMARYCARE',
        Type = 'CONVERSATION'
    )
  
  while True:
      status = transcribe.get_medical_transcription_job(MedicalTranscriptionJobName = job_name)
      if status['MedicalTranscriptionJob']['TranscriptionJobStatus'] in ['COMPLETED', 'FAILED']:
          break
      print("Not ready yet...")
      time.sleep(5)
  print(status)
  ```

以下示例代码显示了临床医生与患者对话的转录结果。

```
{
    "jobName": "conversation-medical-transcription-job",
    "accountId": "111122223333",
    "results": {
        "transcripts": [
            {
                "transcript": "... come for a follow up visit today..."
            }
        ],
        "items": [
            {
            ...
                "start_time": "4.85",
                "end_time": "5.12",
                "alternatives": [
                    {
                        "confidence": "1.0",
                        "content": "come"
                    }
                ],
                "type": "pronunciation"
            },
            {
                "start_time": "5.12",
                "end_time": "5.29",
                "alternatives": [
                    {
                        "confidence": "1.0",
                        "content": "for"
                    }
                ],
                "type": "pronunciation"
            },
            {
                "start_time": "5.29",
                "end_time": "5.33",
                "alternatives": [
                    {
                        "confidence": "0.9955",
                        "content": "a"
                    }
                ],
                "type": "pronunciation"
            },
            {
                "start_time": "5.33",
                "end_time": "5.66",
                "alternatives": [
                    {
                        "confidence": "0.9754",
                        "content": "follow"
                    }
                ],
                "type": "pronunciation"
            },
            {
                "start_time": "5.66",
                "end_time": "5.75",
                "alternatives": [
                    {
                        "confidence": "0.9754",
                        "content": "up"
                    }
                ],
                "type": "pronunciation"
            },
            {
                "start_time": "5.75",
                "end_time": "6.02",
                "alternatives": [
                    {
                        "confidence": "1.0",
                        "content": "visit"
                    }
                ]
                ...
    },
    "status": "COMPLETED"
}
```

## AWS CLI
<a name="batch-med-conversation-cli"></a>

**使用批量转录作业转录医疗谈话 (AWS CLI)**
+ 运行以下代码。

  ```
                      
  aws transcribe start-medical-transcription-job \
  --region us-west-2 \
  --cli-input-json file://example-start-command.json
  ```

  以下代码显示了 `example-start-command.json` 的内容。

  ```
  {
        "MedicalTranscriptionJobName": "my-first-med-transcription-job",        
        "Media": {
            "MediaFileUri": "s3://amzn-s3-demo-bucket/my-input-files/my-audio-file.flac"
        },
        "OutputBucketName": "amzn-s3-demo-bucket",
        "OutputKey": "my-output-files/", 
        "LanguageCode": "en-US",
        "Specialty": "PRIMARYCARE",
        "Type": "CONVERSATION"
    }
  ```

# 在实时音频流中转录医疗谈话
<a name="streaming-medical-conversation"></a>

您可以使用 HTTP/2 或协议转录医疗对话的音频流。[WebSocket ](https://tools.ietf.org/html/rfc6455)有关如何使用 WebSocket 协议启动直播的信息，请参阅[设置直 WebSocket 播](streaming-setting-up.md#streaming-websocket)。要启动 HTTP/2 音频流，请使用 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalStreamTranscription.html) API。

您可以用下列医学专业来转录流音频：
+ 心脏科
+ 神经科
+ 肿瘤科
+ 全科
+ 泌尿外科

每个医学专科都包括许多类型的程序和预约。因此，临床医生会口述多种不同类型的笔记。使用以下示例作为指导，帮助您指定 WebSocket 请求的 `specialty` URI 参数的值或 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalStreamTranscription.html)API 的`Specialty`参数：
+ 对于电生理学或超声心动图咨询，请选择 `CARDIOLOGY`。
+ 对于肿瘤内科、肿瘤外科或放射肿瘤科咨询，请选择 `ONCOLOGY`。
+ 对于为中风（短暂性脑缺血发作或脑血管发作）的患者提供咨询的医生，请选择 `NEUROLOGY`。
+ 有关尿失禁的咨询，请选择 `UROLOGY`。
+ 对于年度体检或急诊，请选择 `PRIMARYCARE`。
+ 对于住院患者住院医生就诊，请选择 `PRIMARYCARE`。
+ 对于生育、输卵管结扎、宫内节育器插入或流产的咨询，请选择 `PRIMARYCARE`。

## AWS 管理控制台
<a name="streaming-medical-conversation-console"></a>

**转录流式转录医疗谈话（AWS 管理控制台）**

要使用在 AWS 管理控制台 实时直播中转录临床医生与患者的对话，请选择转录医疗对话的选项，开始直播，然后开始对着麦克风说话。

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

1. 在导航窗格的 “ Amazon Transcribe 医疗” 下，选择 “**实时转录**”。

1. 选择**对话**。

1. 对于**医学专科**，请选择临床医生的专科。

1. 选择 **Start streaming（开始流式传输）**。

1. 对着麦克风说话。

## 在 HTTP/2 音频流中转录医疗谈话
<a name="http2-med-conversation-streaming"></a>

以下是 HTTP/2 请求的参数的语法。

要转录医疗对话的 HTTP/2 音频流，请使用 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalStreamTranscription.html)API 并指定以下内容：
+ `LanguageCode` – 语言代码。有效值为 `en-US`
+ `MediaEncoding` – 用于输入音频的编码。有效值包括 `pcm`、`ogg-opus` 和 `flac`。
+ `Specialty` – 医疗专业人员的专科。
+ `Type` – `CONVERSATION`

要提高实时音频流中特定术语的转录准确性，请使用自定义词汇表。要启用自定义词汇表，请将 `VocabularyName` 参数的值设置为要使用的自定义词汇表的名称。有关更多信息，请参阅 [使用医学自定义词汇表提高转录准确性](vocabulary-med.md)。

要标记来自不同发言者的语音，请将 `ShowSpeakerLabel` 参数设置为 `true`。有关更多信息，请参阅 [启用发言者划分](conversation-diarization-med.md)。

有关设置 HTTP/2 音频流以转录医疗对话的更多信息，请参阅[设置 HTTP/2 音频流](streaming-setting-up.md#streaming-http2)。

## 在直播中转录医疗谈话 WebSocket
<a name="transcribe-medical-conversation-websocket"></a>

您可以使用 WebSocket 请求来转录医疗谈话。当你发出 WebSocket 请求时，你会创建一个预签名 URI。此 URI 包含在应用程序和 Amazon Transcribe Medical 之间建立音频流所需的信息。有关创建 WebSocket 请求的更多信息，请参阅[设置直 WebSocket 播](streaming-setting-up.md#streaming-websocket)。

使用以下模板来创建您的预签名 URI。

```
GET wss://transcribestreaming.us-west-2.amazonaws.com:8443/medical-stream-transcription-websocket
?language-code=languageCode
&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=Signature Version 4 signature 
&X-Amz-SignedHeaders=host
&media-encoding=flac
&sample-rate=16000
&session-id=sessionId
&specialty=medicalSpecialty
&type=CONVERSATION
&vocabulary-name=vocabularyName
&show-speaker-label=boolean
```

要提高实时音频流中特定术语的转录准确性，请使用自定义词汇表。要启用自定义词汇表，请将 `vocabulary-name` 的值设置为要使用的自定义词汇表的名称。有关更多信息，请参阅 [使用医学自定义词汇表提高转录准确性](vocabulary-med.md)。

要标记来自不同发言者的语音，请将 `show-speaker-label` 参数设置为 `true`。有关更多信息，请参阅 [启用发言者划分](conversation-diarization-med.md)。

有关创建预签名的更多信息 URIs，请参阅[设置直 WebSocket 播](streaming-setting-up.md#streaming-websocket)。

# 启用发言者划分
<a name="conversation-diarization-med"></a>

要在 “ Amazon Transcribe 医疗” 中启用扬声器分区，请使用*扬声器日记法*。该功能使您能够在转录输出中看到患者所说的话和临床医生所说的话。

当你启用说话者日记功能时，M Amazon Transcribe edical 会用每个*说*话者的唯一标识符来标记每个说话者的话。*言语*是一种语音单位，通常用静默与其它言语隔开。在批量转录中，临床医生的言语可能会收到一个 `spk_0` 标签，而患者可能会收到一个 `spk_1` 标签。

如果一位发言者的言语与另一位发言者的言语重叠， Amazon Transcribe Medical 会按具体的开始时间在转录中对其进行排序。在输入音频中重叠的表达不会在转录输出中重叠。

当您使用批量转录作业或在实时音频流转录音频文件时，您可以启用发言者分类功能。

**Topics**
+ [在批量转录中启用发言者划分](conversation-diarization-batch-med.md)
+ [在实时音频流中启用发言者划分](conversation-diarization-streaming-med.md)

# 在批量转录中启用发言者划分
<a name="conversation-diarization-batch-med"></a>

您可以使用 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html) API 或 AWS 管理控制台，在批量转录作业中启用发言者划分。该功能使您能够在临床医生与患者对话中对每位说话者的文本进行划分，并确定谁在转录输出中说了什么。

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

要在转录作业中 AWS 管理控制台 使用启用说话者日记功能，请先启用音频识别，然后启用说话者分区。

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

1. 在导航窗格的 “ Amazon Transcribe 医疗” 下，选择 “**转录作业**”。

1. 请选择**创建任务**。

1. 在**指定作业详细信息**页面上，提供有关您的转录作业的信息。

1. 选择**下一步**。

1. 启用**音频识别**。

1. 对于**音频识别类型**，请选择**发言者划分**。

1. 在**发言者人数上限**中，输入您认为将在音频文件中发言的最大发言者数量。

1. 选择**创建**。

## API
<a name="conversation-diarization-batch-med-api"></a>

**使用批量转录作业启用发言者划分 (API)**
+ 对于 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html) API，请指定以下内容。

  1. 对于 `MedicalTranscriptionJobName`，请指定在您 AWS 账户中是唯一的名称。

  1. 对于 `LanguageCode`，指定与音频文件中所用语言对应的语言代码。

  1. 在 `Media` 对象的 `MediaFileUri` 参数中，指定要转录的音频文件的名称。

  1. 对于 `Specialty`，请指定音频文件中说话的临床医生的医学专科。

  1. 对于 `Type`，请指定 `CONVERSATION`。

  1. 对于`OutputBucketName`，请指定用于 Amazon S3 存储转录结果的存储桶。

  1. 对于 `Settings` 对象，指定以下内容。

     1. `ShowSpeakerLabels` – `true`.

     1. `MaxSpeakerLabels` – 介于 2 和 10 之间的整数，表示音频中您认为在说话的发言者数量。

以下请求使用启动初级保健临床医生患者对话的批量转录作业，同时启用了说话者分区。 适用于 Python (Boto3) 的 AWS SDK 

```
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_medical_transcription_job(
    MedicalTranscriptionJobName = job_name,
    Media={
        'MediaFileUri': job_uri
    },
    OutputBucketName = 'amzn-s3-demo-bucket',
    OutputKey = 'my-output-files/', 
    LanguageCode = 'en-US',
    Specialty = 'PRIMARYCARE',
    Type = 'CONVERSATION',
    OutputBucketName = 'amzn-s3-demo-bucket',
Settings = {'ShowSpeakerLabels': True,
         'MaxSpeakerLabels': 2
         }
         )
while True:
    status = transcribe.get_medical_transcription_job(MedicalTranscriptionJobName = job_name)
    if status['MedicalTranscriptionJob']['TranscriptionJobStatus'] in ['COMPLETED', 'FAILED']:
        break
    print("Not ready yet...")
    time.sleep(5)
print(status)
```

以下示例代码显示了启用发言者划分情况下的转录作业的转录结果。

```
{
    "jobName": "job ID",
    "accountId": "111122223333",
    "results": {
        "transcripts": [
            {
                "transcript": "Professional answer."
            }
        ],
        "speaker_labels": {
            "speakers": 1,
            "segments": [
                {
                    "start_time": "0.000000",
                    "speaker_label": "spk_0",
                    "end_time": "1.430",
                    "items": [
                        {
                            "start_time": "0.100",
                            "speaker_label": "spk_0",
                            "end_time": "0.690"
                        },
                        {
                            "start_time": "0.690",
                            "speaker_label": "spk_0",
                            "end_time": "1.210"
                        }
                    ]
                }
            ]
        },
        "items": [
            {
                "start_time": "0.100",
                "end_time": "0.690",
                "alternatives": [
                    {
                        "confidence": "0.8162",
                        "content": "Professional"
                    }
                ],
                "type": "pronunciation"
            },
            {
                "start_time": "0.690",
                "end_time": "1.210",
                "alternatives": [
                    {
                        "confidence": "0.9939",
                        "content": "answer"
                    }
                ],
                "type": "pronunciation"
            },
            {
                "alternatives": [
                    {
                        "content": "."
                    }
                ],
                "type": "punctuation"
            }
        ]
    },
    "status": "COMPLETED"
}
```

## AWS CLI
<a name="diarization-batch-cli"></a>

**转录全科临床医生与患者之间对话的音频文件 (AWS CLI)**
+ 运行以下代码。

  ```
                      
  aws transcribe start-transcription-job \
  --region us-west-2 \
  --cli-input-json file://example-start-command.json
  ```

  以下代码显示了 `example-start-command.json` 的内容。

  ```
  {
      "MedicalTranscriptionJobName": "my-first-med-transcription-job",       
       "Media": {
            "MediaFileUri": "s3://amzn-s3-demo-bucket/my-input-files/my-audio-file.flac"
        },
        "OutputBucketName": "amzn-s3-demo-bucket",
        "OutputKey": "my-output-files/", 
        "LanguageCode": "en-US",
        "Specialty": "PRIMARYCARE",
        "Type": "CONVERSATION",
        "Settings":{
            "ShowSpeakerLabels": true,
            "MaxSpeakerLabels": 2
          }
  }
  ```

# 在实时音频流中启用发言者划分
<a name="conversation-diarization-streaming-med"></a>

要对发言者进行分区并在实时流中标记他们的语音，请使用 AWS 管理控制台 或直播请求。发言者划分最适合流式转录中有两到五个发言者。尽管 M Amazon Transcribe edical 可以在一个直播中对五个以上的扬声器进行分区，但如果超过该数字，分区的准确性就会降低。

要启动 HTTP/2 请求，请使用 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalStreamTranscription.html) API。要启动 WebSocket 请求，请使用预签名 URI。URI 包含在应用程序和 Amazon Transcribe Medical 之间建立双向通信所需的信息。

## 在对着麦克风说话的音频中启用发言者划分（AWS 管理控制台）
<a name="conversation-diarization-console"></a>

您可以使用开始实时直播临床医生与患者的对话，或者开始对着麦克风实时说出的听写。 AWS 管理控制台 

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

1. 在导航窗格中，为 “ Amazon Transcribe 医疗” 选择 “**实时转录**”。

1. 对于**音频输入类型**，选择要转录的医疗语音类型。

1. 对于**其它设置**，请选择**发言者划分**。

1. 选择**开始流式转录**以开始转录您的实时音频。

1. 对着麦克风说话。

## 在 HTTP/2 音频流中启用发言者划分
<a name="conversation-diarization-med-http2"></a>

要在医疗对话的 HTTP/2 音频流中启用发言者划分，请使用 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalStreamTranscription.html) API 并指定以下内容：
+ 对于 `LanguageCode`，指定与流式转录中所用语言对应的语言代码。有效值为 `en-US`。
+ 对于 `MediaSampleHertz`，请指定音频的采样率。
+ 对于 `Specialty`，指定提供者的医学专科。
+ `ShowSpeakerLabel` – `true`

有关设置 HTTP/2 音频流以转录医疗对话的更多信息，请参阅[设置 HTTP/2 音频流](streaming-setting-up.md#streaming-http2)。

## 在请求中启用扬声器分区 WebSocket
<a name="conversation-diarization-med-websocket"></a>

要使用 API 对 WebSocket 直播中的演讲者进行分区，请使用以下格式创建用于启动 WebSocket 请求的预签名 URI 并将其设置`show-speaker-label`为`true`。

```
GET wss://transcribestreaming.us-west-2.amazonaws.com:8443/medical-stream-transcription-websocket
?language-code=languageCode
&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=Signature Version 4 signature 
&X-Amz-SignedHeaders=host
&media-encoding=flac
&sample-rate=16000
&session-id=sessionId
&specialty=medicalSpecialty
&type=CONVERSATION
&vocabulary-name=vocabularyName
&show-speaker-label=boolean
```

以下代码显示了流式转录请求的截断示例响应。

```
{
  "Transcript": {
    "Results": [
      {
        "Alternatives": [
          {
            "Items": [
              {
                "Confidence": 0.97,
                "Content": "From",
                "EndTime": 18.98,
                "Speaker": "0",
                "StartTime": 18.74,
                "Type": "pronunciation",
                "VocabularyFilterMatch": false
              },
              {
                "Confidence": 1,
                "Content": "the",
                "EndTime": 19.31,
                "Speaker": "0",
                "StartTime": 19,
                "Type": "pronunciation",
                "VocabularyFilterMatch": false
              },
              {
                "Confidence": 1,
                "Content": "last",
                "EndTime": 19.86,
                "Speaker": "0",
                "StartTime": 19.32,
                "Type": "pronunciation",
                "VocabularyFilterMatch": false
              },
             ...
              {
                "Confidence": 1,
                "Content": "chronic",
                "EndTime": 22.55,
                "Speaker": "0",
                "StartTime": 21.97,
                "Type": "pronunciation",
                "VocabularyFilterMatch": false
              },
              ...
                "Confidence": 1,
                "Content": "fatigue",
                "EndTime": 24.42,
                "Speaker": "0",
                "StartTime": 23.95,
                "Type": "pronunciation",
                "VocabularyFilterMatch": false
              },
              {
                "EndTime": 25.22,
                "StartTime": 25.22,
                "Type": "speaker-change",
                "VocabularyFilterMatch": false
              },
              {
                "Confidence": 0.99,
                "Content": "True",
                "EndTime": 25.63,
                "Speaker": "1",
                "StartTime": 25.22,
                "Type": "pronunciation",
                "VocabularyFilterMatch": false
              },
              {
                "Content": ".",
                "EndTime": 25.63,
                "StartTime": 25.63,
                "Type": "punctuation",
                "VocabularyFilterMatch": false
              }
            ],
            "Transcript": "From the last note she still has mild sleep deprivation and chronic fatigue True."
          }
        ],
        "EndTime": 25.63,
        "IsPartial": false,
        "ResultId": "XXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX",
        "StartTime": 18.74
      }
    ]
  }
}
```

Amazon Transcribe Medical 会根据自然的语音片段（例如说话者的变化或音频的暂停）来中断传入的音频流。转录将逐步返回到您的应用程序，每个响应包含更多转录的语音，直到整个片段被转录。前面的代码是完全转录的语音片段的截断示例。只有完全转录的语音片段才会显示发言者标签。

以下列表显示了流式转录输出中对象和参数的组织结构。

**`Transcript`**  
每个语音段都有自己的 `Transcript` 对象。

**`Results`**  
每个 `Transcript` 对象都有自己的 `Results` 对象。此对象包含 `isPartial` 字段。当其值为 `false` 时，返回的结果就是针对整个语音片段的。

**`Alternatives`**  
每个 `Results` 对象都有一个 `Alternatives` 对象。

**`Items`**  
每个 `Alternatives` 对象都有自己的 `Items` 对象，其中包含有关转录输出中每个单词和标点符号的信息。启用扬声器分区后，每个单词都有一个用于`Speaker`标注完全转录的语音片段的标签。 Amazon Transcribe Medical 使用此标签为直播中的每个发言者分配一个唯一的整数。值为 `speaker-change` 的 `Type` 参数表示一个人已停止说话，另一个人即将开始说话。

**`Transcript`**  
每个 Items 对象都包含一个转录的语音片段作为 `Transcript` 字段的值。

有关 WebSocket 请求的更多信息，请参阅[设置直 WebSocket 播](streaming-setting-up.md#streaming-websocket)。

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

如果您的音频文件或视频流具有多个频道，则可以使用*频道识别*来转录每个频道的语音。 Amazon Transcribe Medical 分别转录每个频道的演讲。它将每个声道的单独转录合并为一个转录输出。

使用声道识别来识别音频中的不同声道，并转录每个声道的语音。在来电者和座席场景等场景中启用此功能。使用它来区分执行药物安全监控的联络中心的录音或音频流中的来电者和座席。

您可以为批量转录和实时流式转录启用声道识别。以下列表描述了如何为每种方法启用该功能。
+ Batch 转录 — AWS 管理控制台 和 API [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html)
+ 直播转录 — WebSocket 直播和 API [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalStreamTranscription.html)

## 转录多声道音频文件
<a name="conversation-channel-id-med-batch"></a>

当您转录音频文件时，M Amazon Transcribe edical 会返回每个频道的*项目*列表。项目是转录的单词或标点符号。每个单词都有开始时间和结束时间。如果一个声道上的某个人与另一个声道上的一个人交谈，则当这些人互相交谈时，每个声道的项目的开始时间和结束时间会重叠。

默认情况下，您可以转录包含两个声道的音频文件。如果您需要转录的文件具有超过两个声道，则可以申请增加配额。有关请求增加配额的更多信息，请参阅 [AWS 服务 配额](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)。

要在批量转录作业中转录多声道音频，请使用 AWS 管理控制台 或 API。[https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html)

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

要在 AWS 管理控制台 批量转录作业中使用启用频道识别，请先启用音频识别，然后启用频道识别。频道识别是中音频识别的一个子集 AWS 管理控制台。

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

1. 在导航窗格的 “ Amazon Transcribe 医疗” 下，选择 “**转录作业**”。

1. 请选择**创建任务**。

1. 在**指定作业详细信息**页面上，提供有关您的转录作业的信息。

1. 选择**下一步**。

1. 启用**音频识别**。

1. 对于**音频识别类型**，请选择**声道识别**。

1. 选择**创建**。

### API
<a name="channel-id-batch-med-api"></a>

**转录多声道音频文件 (API)**
+ 对于 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html) API，请指定以下内容。

  1. 对于 `TranscriptionJobName`，请指定对于您 AWS 账户而言唯一的名称。

  1. 对于 `LanguageCode`，指定与音频文件中所用语言对应的语言代码。有效值为 `en-US`。

  1. 对于 `Media` 对象的 `MediaFileUri` 参数，指定要转录的媒体文件的名称。

  1. 对于`Settings` 对象，将 `ChannelIdentification` 设置为 `true`。

以下是一个使用 适用于 Python (Boto3) 的 AWS SDK的示例请求。

```
from __future__ import print_function
import time
import boto3
transcribe = boto3.client('transcribe', 'us-west-2')
job_name = "my-first-transcription-job"
job_name = "my-first-med-transcription-job"
job_uri = "s3://amzn-s3-demo-bucket/my-input-files/my-media-file.flac"
transcribe.start_medical_transcription_job(
      MedicalTranscriptionJobName = job_name,
      Media = {
        'MediaFileUri': job_uri
      },
      OutputBucketName = 'amzn-s3-demo-bucket',
      OutputKey = 'output-files/',
      LanguageCode = 'en-US',
      Specialty = 'PRIMARYCARE',
      Type = 'CONVERSATION',
      Settings = {
        'ChannelIdentification': True
      }
)
while True:
    status = transcribe.get_transcription_job(MedicalTranscriptionJobName = job_name)
    if status['MedicalTranscriptionJob']['TranscriptionJobStatus'] in ['COMPLETED', 'FAILED']:
        break
    print("Not ready yet...")
    time.sleep(5)
print(status)
```

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

**使用批量转录作业转录多声道音频文件（AWS CLI）**
+ 运行以下代码。

  ```
                      
  aws transcribe start-medical-transcription-job \
  --region us-west-2 \
  --cli-input-json file://example-start-command.json
  ```

  以下是 `example-start-command.json` 的代码。

  ```
  {
        "MedicalTranscriptionJobName": "my-first-med-transcription-job",        
        "Media": {
            "MediaFileUri": "s3://amzn-s3-demo-bucket/my-input-files/my-audio-file.flac"
        },
        "OutputBucketName": "amzn-s3-demo-bucket",
        "OutputKey": "my-output-files/", 
        "LanguageCode": "en-US",
        "Specialty": "PRIMARYCARE",
        "Type": "CONVERSATION",
  
          "Settings":{
            "ChannelIdentification": true
          }
  }
  ```

以下代码显示了在两个声道上进行对话的音频文件的转录输出。

```
{
  "jobName": "job id",
  "accountId": "111122223333",
  "results": {
    "transcripts": [
      {
        "transcript": "When you try ... It seems to ..."
      }
    ],
    "channel_labels": {
      "channels": [
        {
          "channel_label": "ch_0",
          "items": [
            {
              "start_time": "12.282",
              "end_time": "12.592",
              "alternatives": [
                {
                  "confidence": "1.0000",
                  "content": "When"
                }
              ],
              "type": "pronunciation"
            },
            {
              "start_time": "12.592",
              "end_time": "12.692",
              "alternatives": [
                {
                  "confidence": "0.8787",
                  "content": "you"
                }
              ],
              "type": "pronunciation"
            },
            {
              "start_time": "12.702",
              "end_time": "13.252",
              "alternatives": [
                {
                  "confidence": "0.8318",
                  "content": "try"
                }
              ],
              "type": "pronunciation"
            },
            ...
         ]
      },
      {
          "channel_label": "ch_1",
          "items": [
            {
              "start_time": "12.379",
              "end_time": "12.589",
              "alternatives": [
                {
                  "confidence": "0.5645",
                  "content": "It"
                }
              ],
              "type": "pronunciation"
            },
            {
              "start_time": "12.599",
              "end_time": "12.659",
              "alternatives": [
                {
                  "confidence": "0.2907",
                  "content": "seems"
                }
              ],
              "type": "pronunciation"
            },
            {
              "start_time": "12.669",
              "end_time": "13.029",
              "alternatives": [
                {
                  "confidence": "0.2497",
                  "content": "to"
                }
              ],
              "type": "pronunciation"
            },
            ...
        ]
    }
}
```

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

您可以使用 API 在 HTTP/2 或 WebSocket直播中转录来自不同频道的音频。[https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalStreamTranscription.html)

默认情况下，您可以转录包含两个声道的音频流。如果您需要转录的音频流具有超过两个声道，则可以申请增加配额。有关请求增加配额的信息，请参阅 [AWS 服务配额](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)。

### 在 HTTP/2 音频流中转录多声道音频
<a name="conversation-channel-id-http2"></a>

要转录 HTTP/2 流中的多声道音频，请使用 [StartMedicalStreamTranscription](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalStreamTranscription.html)API 并指定以下内容：
+ `LanguageCode` – 音频的语言代码。有效值为 `en-US`。
+ `MediaEncoding` – 音频的编码。有效值包括 `ogg-opus`、`flac` 和 `pcm`。
+ `EnableChannelIdentification` – `true`
+ `NumberOfChannels` – 流式音频中的声道数量。

有关设置 HTTP/2 音频流以转录医疗对话的更多信息，请参阅[设置 HTTP/2 音频流](streaming-setting-up.md#streaming-http2)。

### 在直播中转录多声道音频 WebSocket
<a name="channel-id-med-websocket"></a>

要对 WebSocket 直播中的演讲者进行分区，请使用以下格式创建预签名 URI 并启动 WebSocket 请求。将 `enable-channel-identification` 指定为 `true`，并在 `number-of-channels` 中指定您音频流中的声道数量。预签名 URI 包含在您的应用程序和 Amazon Transcribe Medical 之间建立双向通信所需的信息。

```
GET wss://transcribestreaming.us-west-2.amazonaws.com:8443/medical-stream-transcription-websocket
?language-code=languageCode
&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=Signature Version 4 signature
&X-Amz-SignedHeaders=host
&media-encoding=flac
&sample-rate=16000
&session-id=sessionId
&enable-channel-identification=true
&number-of-channels=2
```

参数定义可在 [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 请求的更多信息，请参阅[设置直 WebSocket 播](streaming-setting-up.md#streaming-websocket)。

### 多声道流式输出
<a name="streaming-med-output"></a>

HTTP/2 和请求的流式转录输出相同。 WebSocket下面是一个示例输出。

```
{
    "resultId": "XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX",
    "startTime": 0.11,
    "endTime": 0.66,
    "isPartial": false,
    "alternatives": [
        {
            "transcript": "Left.",
            "items": [
                {
                    "startTime": 0.11,
                    "endTime": 0.45,
                    "type": "pronunciation",
                    "content": "Left",
                    "vocabularyFilterMatch": false
                },
                {
                    "startTime": 0.45,
                    "endTime": 0.45,
                    "type": "punctuation",
                    "content": ".",
                    "vocabularyFilterMatch": false
                }
            ]
        }
    ],
    "channelId": "ch_0"
}
```

对于每个语音片段，都有一个 `channelId` 标志，用于指示语音属于哪个声道。