

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 轉錄醫療對話
<a name="transcribe-medical-conversation"></a>

您可以使用 Amazon Transcribe Medical，使用批次轉錄任務或即時串流來轉錄臨床醫生和患者之間的醫療對話。批次轉錄作業可讓您轉錄音訊檔案。為了確保 Amazon Transcribe Medical 以最高的準確性產生轉錄結果，您必須在轉錄任務或串流中指定臨床醫生的醫療專科。

您可以透過以下醫療專業，轉錄臨床醫生和患者問診：
+ 心臟科 — 僅適用於串流轉錄
+ 神經病學 — 僅適用於串流轉錄
+ 腫瘤學 — 僅適用於串流轉錄
+ 初級護理 — 包括以下類型的醫療實務：
  + 家庭醫學
  + 內科
  + 婦產科 (OB-GYN)
  + 小兒科
+ 泌尿外科 — 僅適用於串流轉錄

您可以使用醫學自訂詞彙以提高轉錄準確性。如需醫療自訂詞彙運作方式的資訊，請參閱 [使用醫學自訂詞彙提高轉錄準確性](vocabulary-med.md)。

根據預設， Amazon Transcribe Medical 會傳回可信度最高的轉錄。如果您想要設定為傳回替代轉錄，請參閱 [產生替代轉錄](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 Medical 下，選擇**轉錄任務**。

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`。
+ 對於生產、輸卵管結紮、IUD 插入或墮胎的諮詢，請選擇 `PRIMARYCARE`。

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

**轉錄串流醫療對話 (AWS 管理主控台)**

若要使用 AWS 管理主控台 在即時串流中轉錄臨床醫生與患者對話，請選擇轉錄醫療對話、啟動串流，以及開始對麥克風說話的選項。

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

1. 在導覽窗格的 Amazon Transcribe Medical 下，選擇**即時轉錄**。

1. 搜尋**對話**。

1. 對於**醫療專科**，請選擇臨床醫生的專科。

1. 選擇**開始串流**。

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

如需建立預先簽署 URI 的詳細資訊，請參閱 [設定 WebSocket 串流](streaming-setting-up.md#streaming-websocket)。

# 啟用發言者分隔
<a name="conversation-diarization-med"></a>

若要在 Amazon Transcribe Medical 中啟用發言者分割，請使用*發言者日記*。這讓您可以查看在轉錄輸出中患者說的內容以及臨床醫生說的內容。

當您啟用發言者日記時， Amazon Transcribe Medical 會使用每個發言者的唯一識別符來標記每個發言者*表達用語*。*表達用語*是語音單位，通常會以靜音區分其他表達用語。在批次轉錄中，臨床醫生的表達用語會收到 `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 Medical 下，選擇**轉錄任務**。

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 管理主控台 或串流請求。發言者分隔最適合兩個至五個發言者的串流。雖然 Amazon Transcribe Medical 可以在串流中分割超過五個發言者，但如果超過該數字，則分割區的準確性會降低。

若要開始 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 串流中的發言者，請使用下列格式以建立預先簽署的 URI，開始 WebSocket 請求並設定 `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`**  
每個項目物件都包含轉錄的語音區段作為 `Transcript` 欄位的值。

如需 WebSocket 請求的詳細資訊，請參閱 [設定 WebSocket 串流](streaming-setting-up.md#streaming-websocket)。

# 轉錄多聲道音訊
<a name="conversation-channel-id-med"></a>

如果您的音訊檔案或串流有多個頻道，您可以使用*頻道識別*來轉錄每個頻道的語音。 Amazon Transcribe Medical 會分別轉錄每個頻道的語音。它將每個聲道的獨立轉錄與單一轉錄輸出結合。

使用聲道識別以識別音訊中不同的聲道，並從每個聲道轉錄語音。在通話者和客服人員案例等情況下啟用此功能。使用此功能可區分通話者與執行藥物安全監控的聯絡中心的錄音或串流中的客服人員。

您可以為批次處理和即時串流，啟用聲道識別。下列清單描述如何為每個方法啟用。
+ 批次轉錄 – AWS 管理主控台 和 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html) API
+ 串流轉錄 — 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) API

## 轉錄多聲道音訊檔案
<a name="conversation-channel-id-med-batch"></a>

當您轉錄音訊檔案時， Amazon Transcribe Medical 會傳回每個頻道*的項目*清單。項目是轉錄的單字或標點符號。每個單字都有開始時間和結束時間。如果聲道上的使用者與不同聲道上的某個人說話，則每個聲道項目的開始時間和結束時間會重疊，且個人彼此交談時間也會重疊。

依預設，您可以轉錄有兩個聲道的音訊檔案。如果您需要轉錄有兩個以上聲道的檔案，可以要求提高配額。如需請求提高配額的詳細資訊，請參閱 [AWS 服務 配額](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)。

若要在批次轉錄任務中轉錄多聲道音訊，請使用 AWS 管理主控台 或 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html) API。

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

若要使用 AWS 管理主控台 在批次轉錄任務中啟用頻道識別，您可以啟用音訊識別，然後啟用頻道識別。頻道識別是 中音訊識別的子集 AWS 管理主控台。

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

1. 在導覽窗格的 Amazon Transcribe Medical 下，選擇**轉錄任務**。

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>

您可以使用 [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 從 HTTP/2 或 WebSocket 串流中的不同聲道轉錄音訊。

依預設，您可以使用兩個聲道轉錄串流。如果您需要轉錄有兩個以上聲道的串流，可以要求提高配額。如需請求提高配額的詳細資訊，請參閱 [AWS Service Quotas](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` 標記，指出該語音所屬的聲道。