

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# スピーカーパーティショニングを有効にする
<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. `MediaFileUri` オブジェクトの `Media` パラメータの場合、文字起こしを行う音声ファイルの名前を指定します。

  1. `Specialty` の場合、音声ファイルで話す臨床医の専門分野を指定します。

  1. `Type` の場合、`CONVERSATION` を指定します。

  1. には`OutputBucketName`、文字起こし結果を保存する Amazon S3 バケットを指定します。

  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>

**プライマリケアを実践している臨床医と患者との間の会話の音声ファイルを文字起こしする (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 マネジメントコンソール または ストリーミングリクエストを使用します。スピーカーパーティショニングは、ストリーミング内のスピーカーが 2～5 人の場合に最も効果的です。 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 リクエストを開始する場合、署名付き URL を使用します。URL には、アプリケーションと Amazon Transcribe Medical 間の双方向通信を設定するために必要な情報が含まれています。

## マイクで話されている音声のスピーカーパーティショニングを有効にする (AWS マネジメントコンソール)
<a name="conversation-diarization-console"></a>

を使用して AWS マネジメントコンソール 、臨床医と患者の会話のリアルタイムストリーム、またはマイクにリアルタイムで話されるディクテーションを開始できます。

1. [AWS マネジメントコンソール](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 ストリーミング内のスピーカーをパーティション化する場合、次の形式を使用して WebSocket リクエストをスタートするための署名付き URL を作成し、`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) を参照してください。