マルチチャネルの音声文字起こし - Amazon Transcribe

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

マルチチャネルの音声文字起こし

複数のチャネルを持つ音声ファイルまたはストリーミングがある場合は、チャネル識別を使用して、それらの各チャンネルの音声を文字起こしすることができます。 Amazon TranscribeMedical は各チャネルから別々に音声を文字起こします。各チャンネルの個別のトランプスクリプトを単一の文字起こし出力に結合します。

チャネル識別を使用して、音声内の個別のチャネルを特定し、各チャネルの音声の文字起こしを行います。発信者およびエージェントのシナリオなどの状況でこれを有効にします。これを使用して、薬物安全モニタリングを実行するコンタクトセンターからの録音またはストリーミング内のエージェントと発信者を区別します。

バッチ処理とリアルタイムストリーミングの両方でチャネル識別を有効にできます。次のリストは、メソッドごとに有効にする方法を説明しています。

マルチチャネルの音声ファイルの文字起こし

音声ファイルの文字起こしを行うと、Amazon Transcribe Medical は各チャネルごとにアイテムのリストを返します。アイテムは、文字起こしされた単語または句読点です。各単語には、開始時刻と終了時刻があります。あるチャンネルの人が別のチャンネルで話しかけると、各チャンネルのアイテムの開始時間と終了時刻が重なり、個人が互いに話しかけ合っています。

デフォルトでは、2 つのチャネルで音声ファイルを文字起こしできます。2 つ以上のチャネルを持つファイルを文字起こしする必要がある場合は、クォータの引き上げをリクエストできます。クォータ引き上げのリクエストの詳細については、を参照してくださいAWS サービス。

バッチ文字起こしジョブでマルチチャネル音声を文字起こしする場合、AWS Management Consoleまたは StartMedicalTranscriptionJobAPI を使用します。

AWS Management Consoleバッチ文字起こしジョブでチャネル識別を有効にするには、オーディオ識別を有効にしてからチャネル識別を有効にします。チャネル識別は、AWS Management Consoleの音声識別のサブセットです。

  1. AWS Management Consoleにサインインします。

  2. ナビゲーションペインのAmazon Transcribe Medical で、[文字起こしジョブ] を選択します。

  3. [Create job (ジョブの作成)] を選択します。

  4. [ジョブの詳細を指定する] ページで、文字起こしジョブに関する情報を入力します。

  5. [Next] (次へ) を選択します。

  6. [オーディオ識別] を有効にします。

  7. オーディオ識別タイプ では、[チャネルの識別] を選択します。

  8. [作成] を選択します。

マルチチャネルの音声ファイルの文字起こし (API)
  • StartMedicalTranscriptionJob API では、以下のものを指定します。

    1. TranscriptionJobName として、AWS アカウント で一意の名前を指定します。

    2. LanguageCode の場合、音声ファイル内で話されている言語に対応する言語コードです。有効値は en-US です。

    3. MediaFileUri オブジェクトの Media パラメータの場合、文字起こしを行うメディアファイルの名前を指定します。

    4. Settings オブジェクトの場合、ChannelIdentificationtrue にセットします。

以下は、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://DOC-EXAMPLE-BUCKET/my-input-files/my-media-file.flac" transcribe.start_medical_transcription_job( MedicalTranscriptionJobName = job_name, Media = { 'MediaFileUri': job_uri }, OutputBucketName = 'DOC-EXAMPLE-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)
  • 以下の コードを実行します。

    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://DOC-EXAMPLE-BUCKET/my-input-files/my-audio-file.flac" }, "OutputBucketName": "DOC-EXAMPLE-BUCKET", "OutputKey": "my-output-files/", "LanguageCode": "en-US", "Specialty": "PRIMARYCARE", "Type": "CONVERSATION", "Settings":{ "ChannelIdentification": true } }

次のコードは、2 つのチャネルで会話がある音声ファイルの文字起こし出力を示しています。

{ "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" }, ... ] } }

マルチチャネルの音声ストリーミングの文字起こし

HTTP/2 WebSocket またはストリーミングで、別々のチャネルから音声を文字起こしするには、StartMedicalStreamTranscriptionAPIを使用します。

デフォルトでは、2 つのチャネルでストリーミングを文字起こしできます。2 つ以上のチャネルを持つストリーミングを文字起こしする必要がある場合、クォータの引き上げをリクエストできます。クォータ増加の要求の詳細については、「AWS のサービスクォータ」を参照してください。

HTTP/2 ストリーミングでのマルチチャネル音声の文字起こし

HTTP/2 ストリーミング内のマルチチャネル音声を文字起こしする場合、StartMedicalStreamTranscriptionAPI を選択し、以下を指定します。

  • LanguageCode - 音声の言語コードです。有効値は en-US です。

  • MediaEncoding - 音声のエンコーディングです。有効値は、ogg-opusflacpcm です。

  • EnableChannelIdentificationtrue

  • NumberOfChannels - ストリーミング音声のチャネル数です。

医療関係の会話を文字起こしするための HTTP/2 ストリーミングの設定の詳細については、HTTP/2 ストリームの設定 を参照してください。

WebSocket ストリーミング内のマルチチャネル音声を文字起こしする文字起こしする文字起こし

WebSocket ストリーミング内のパーティション化のパーティション化の有効化を行う場合、次の形式を使用して署名付き URI を作成し、 WebSocket リクエストを開始します。enable-channel-identificationtrue に、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 リファレンスにあります。すべてのAWS API オペレーションに共通するパラメータは、「共通パラメータ」セクションに記載されています。

WebSocket リクエストの詳細については、を参照してください WebSocket ストリームのセットアップ

マルチチャネルストリーミング出力

ストリーミングトランスクリプションの出力は、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 フラグがあります。