

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 의료 대화 트랜스크립션
<a name="transcribe-medical-conversation"></a>

 Amazon Transcribe Medical을 사용하여 배치 트랜스크립션 작업 또는 실시간 스트림을 사용하여 임상의와 환자 간의 의료 대화를 트랜스크립션할 수 있습니다. 배치 트랜스크립션 작업을 사용하면 오디오 파일을 트랜스크립션할 수 있습니다. Amazon Transcribe Medical이 가능한 가장 높은 정확도로 트랜스크립션 결과를 생성하도록 하려면 트랜스크립션 작업 또는 스트림에 임상의의 의료 전문 분야를 지정해야 합니다.

다음 의료 전문 분야에 있는 임상의와 환자의 방문을 트랜스크립션할 수 있습니다.
+ 심장학 – 스트리밍 트랜스크립션으로만 사용 가능
+ 신경학 – 스트리밍 트랜스크립션으로만 사용 가능
+ 종양학 – 스트리밍 트랜스크립션으로만 사용 가능
+ 1차 의료 – 다음과 같은 유형의 의료 행위가 포함됩니다.
  + 가정의학
  + 내과학
  + 산부인과학
  + 소아과학
+ 비뇨기과 – 스트리밍 트랜스크립션으로만 사용 가능

사용자 지정 의학 어휘를 사용하여 트랜스크립션 정확도를 높일 수 있습니다. 사용자 지정 의학 어휘의 작동 방식에 대한 자세한 내용은 [사용자 지정 의학 어휘를 통한 트랜스크립션 정확도 향상](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 Management Console에서 배치 트랜스크립션 작업을 시작할 수 있습니다.

[https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html) API로 의료 트랜스크립션 작업을 시작하는 경우 `Specialty` 파라미터의 값으로 `PRIMARYCARE`를 지정합니다.

## AWS Management Console
<a name="batch-med-conversation-console"></a>

**임상의와 환자의 대화를 트랜스크립션하려면(AWS Management Console)**

 AWS Management Console 를 사용하여 임상의-환자 대화를 트랜스크립션하려면 트랜스크립션 작업을 생성하고 **오디오 입력 유형에** 대한 **대화를** 선택합니다.

1. [AWS Management Console](https://console.aws.amazon.com/transcribe/)에 로그인합니다.

1. 탐색 창의 Amazon Transcribe Medical에서 **트랜스크립션 작업을** 선택합니다.

1. **작업 생성**을 선택합니다.

1. **DB 세부 정보 지정** 페이지의 **작업 설정**에서 다음을 지정합니다.

   1. **이름** - 트랜스크립션 작업의 이름

   1. **오디오 입력 유형** – **대화**

1. 나머지 필드에는 오디오 파일의 Amazon S3 위치와 트랜스크립션 작업의 출력을 저장할 위치를 지정합니다.

1. **다음**을 선택합니다.

1. **생성(Create)**을 선택합니다.

## 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 버킷을 지정합니다.

  다음은 AWS SDK for Python (Boto3) 를 사용하여 `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를 사용하세요.

다음 의료 전문 분야의 스트리밍 오디오를 트랜스크립션할 수 있습니다.
+ 심장학
+ 신경학
+ 종양학
+ 1차 의료
+ 비뇨기과

각 의료 전문 분야에는 다양한 유형의 시술과 예약이 포함됩니다. 따라서 임상의는 다양한 유형의 메모를 작성합니다. 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 Management Console
<a name="streaming-medical-conversation-console"></a>

**스트리밍 의학 대화를 트랜스크립션하려면(AWS Management Console)**

 AWS Management Console 를 사용하여 실시간 스트림에서 임상의-환자 대화를 트랜스크립션하려면 의료 대화를 트랜스크립션하고 스트림을 시작하고 마이크에 말하기 시작하는 옵션을 선택합니다.

1. [AWS Management Console](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 Management Console을 사용하여 배치 트랜스크립션 작업을 활성화할 수 있습니다. 이를 통해 의사와 환자의 대화에서 화자별로 텍스트를 분할하고 트랜스크립션 출력에서 누가 무슨 말을 했는지 확인할 수 있습니다.

## AWS Management Console
<a name="conversation-diarization-batch-med-console"></a>

 AWS Management Console 를 사용하여 트랜스크립션 작업에서 화자 분할을 활성화하려면 오디오 식별을 활성화한 다음 화자 파티셔닝을 활성화합니다.

1. [AWS Management Console](https://console.aws.amazon.com/transcribe/)에 로그인합니다.

1. 탐색 창의 Amazon Transcribe Medical에서 **트랜스크립션 작업을** 선택합니다.

1. **작업 생성**을 선택합니다.

1. **작업 세부 정보 지정** 페이지에서 트랜스크립션 작업에 대한 정보를 제공합니다.

1. **다음**을 선택합니다.

1. **오디오 식별**을 활성화합니다.

1. **오디오 식별 유형**에서 **화자 파티셔닝**을 선택합니다.

1. **최대 화자 수**에는 오디오 파일에서 말하고 있다고 생각되는 최대 화자 수를 입력합니다.

1. **생성(Create)**을 선택합니다.

## 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. 에서 트랜스크립션 결과를 저장할 Amazon S3 버킷을 `OutputBucketName`지정합니다.

  1. `Settings` 객체에서 다음을 지정합니다.

     1. `ShowSpeakerLabels` – `true`.

     1. `MaxSpeakerLabels` - 오디오에서 말하는 것으로 생각되는 화자의 수를 나타내는 2에서 10 사이의 정수.

다음 요청은 AWS SDK for Python (Boto3) 를 사용하여 화자 파티셔닝이 활성화된 기본 의료 임상의 환자 대화의 배치 트랜스크립션 작업을 시작합니다.

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

**1차 의료를 담당하는 임상의와 환자 간의 대화를 녹음한 오디오 파일을 트랜스크립션하려면(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 Management Console 또는 스트리밍 요청을 사용합니다. 화자 파티셔닝은 스트림에서 2\$15명의 화자에게 가장 적합합니다. Amazon Transcribe Medical은 스트림에서 5명 이상의 화자를 분할할 수 있지만 해당 수를 초과하면 파티션의 정확도가 감소합니다.

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 Management Console)
<a name="conversation-diarization-console"></a>

 AWS Management Console 를 사용하여 임상의-환자 대화의 실시간 스트림 또는 마이크에 실시간으로 표현되는 구술을 시작할 수 있습니다.

1. [AWS Management Console](https://console.aws.amazon.com/transcribe/)에 로그인합니다.

1. 탐색 창의 Amazon Transcribe Medical에서 **실시간 트랜스크**립션을 선택합니다.

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 스트림에서 화자를 분할하려면 다음 형식을 사용하여 미리 서명된 URL을 만들고 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`**  
각 Items 객체에는 `Transcript` 필드의 값으로 트랜스크립션된 음성 세그먼트가 포함되어 있습니다.

WebSocket 요청에 대한 자세한 내용은 [WebSocket 스트림 설정](streaming-setting-up.md#streaming-websocket) 섹션을 참조하세요.

# 다중 채널 오디오 트랜스크립션
<a name="conversation-channel-id-med"></a>

여러 채널이 있는 오디오 파일 또는 스트림이 있는 경우 *채널 식별*을 사용하여 각 채널의 음성을 트랜스크립션할 수 있습니다. Amazon Transcribe Medical은 각 채널의 음성을 별도로 트랜스크립션합니다. 각 채널의 개별 트랜스크립션을 결합하여 단일 트랜스크립션 출력으로 만듭니다.

채널 식별을 사용하여 오디오의 개별 채널을 식별하고 각 채널의 음성을 트랜스크린션할 수 있습니다. 발신자와 에이전트가 나오는 시나리오 등의 상황에서 이 기능을 활성화하세요. 이 채널 식별를 사용하여 약물 안전성 모니터링을 수행하는 고객 센터의 녹음이나 스트림에서 발신자와 에이전트를 구별할 수 있습니다.

배치 프로세싱과 실시간 스트리밍 모두에 채널 식별을 활성화할 수 있습니다. 다음 목록은 각 방법에서 채널 식별을 활성화하는 방법을 설명합니다.
+ 배치 트랜스크립션 및 AWS Management Console [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은 각 채널의 *항목* 목록을 반환합니다. 항목은 트랜스크립션된 단어 또는 문장 부호입니다. 각 단어에는 시작 시간과 종료 시간이 있습니다. 한 채널에 있는 사람이 별도의 채널에 있는 사람과 동시에 말하는 경우, 각 채널에 있는 항목의 시작 시간과 종료 시간은 개인이 서로 말하는 동안 서로 겹칩니다.

기본적으로 두 채널로 오디오 파일을 트랜스크립션할 수 있습니다. 채널이 3개 이상인 파일을 트랜스크립션해야 하는 경우 할당량 증가를 요청할 수 있습니다. 할당량 증가 요청에 대한 자세한 내용은 [AWS 서비스 할당량](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)을 참조하세요.

배치 트랜스크립션 작업에서 다중 채널 오디오를 트랜스크립션하려면 AWS Management Console 또는 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalTranscriptionJob.html) API를 사용합니다.

### AWS Management Console
<a name="channel-id-batch-med-console"></a>

 AWS Management Console 를 사용하여 배치 트랜스크립션 작업에서 채널 식별을 활성화하려면 오디오 식별을 활성화한 다음 채널 식별을 활성화합니다. 채널 식별은에서 오디오 식별의 하위 집합입니다 AWS Management Console.

1. [AWS Management Console](https://console.aws.amazon.com/transcribe/)에 로그인합니다.

1. 탐색 창의 Amazon Transcribe Medical에서 **트랜스크립션 작업을** 선택합니다.

1. **작업 생성**을 선택합니다.

1. **작업 세부 정보 지정** 페이지에서 트랜스크립션 작업에 대한 정보를 제공합니다.

1. **다음**을 선택합니다.

1. **오디오 식별**을 활성화합니다.

1. **오디오 식별 유형**에서 **채널 식별**을 선택합니다.

1. **생성(Create)**을 선택합니다.

### 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`로 설정합니다.

다음은 AWS SDK for Python (Boto3)을 사용한 요청 예시입니다.

```
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 스트림의 개별 채널에서 오디오를 트랜스크립션할 수 있습니다.

기본적으로 두 채널로 스트림을 트랜스크립션할 수 있습니다. 채널이 3개 이상인 스트림을 트랜스크립팅해야 하는 경우 할당량 증가를 요청할 수 있습니다. 할당량 증가 요청에 대한 자세한 내용은 [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` 플래그가 있습니다.