识别扬声器并在音频文件中标记语音 - Amazon Transcribe
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

识别扬声器并在音频文件中标记语音

您可以在批量转录作业中使用StartMedicalTranscriptionJobAPI 或 Amazon Transcribe 医疗控制台。这使您能够识别临床医生与患者对话中的演讲者,并确定谁在转录输出中说了什么。

要在转录作业中启用发言者分辨(控制台)

要在转录作业中使用控制台启用扬声器分辨功能,请启用音频识别,然后启用扬声器识别。

  1. 登录到Amazon Transcribe Medical.

  2. 在导航窗格中的 Amazon Transcribe Medical 下,选择转录作业.

  3. 选择创建任务

  4. 在存储库的指定作业细节页面中,提供有关你的转录作业的信息。

  5. 选择下一步

  6. 启用音频识别.

  7. 适用于音频识别类型,选择识别发言者.

  8. 适用于最大发言者数量中,输入您认为在音频文件中发言的最大扬声器数量。为获得最佳效果,请将您要求识别的发言者数量与输入音频中的发言者数量相匹配。如果您指定的值小于输入音频中的扬声器数量,则最相似的发音扬声器的转录文本将归因于扬声器标签。

  9. 选择 Create (创建)

使用批量转录作业 (API) 识别音频文件中的扬声器

  • 对于StartMedicalTranscriptionJobAPI,指定以下内容。

    1. 适用于MedicalTranscriptionJobName,指定在您的Amazon Web Services 账户.

    2. 适用于LanguageCode,指定与音频文件中所用语言对应的语言代码。

    3. 对于MediaFileUri的参数Media对象中,指定要转录的音频文件的名称。

    4. 适用于Specialty中,指定在音频文件中讲话的临床医生的医疗专业。

    5. 对于 Type,请指定 CONVERSATION

    6. 适用于OutputBucketName中,指定 Amazon Simple Storage Service (Amazon S3) 存储桶来存储转录结果。

    7. 对于Settings对象,请指定以下内容。

      1. ShowSpeakerLabelstrue.

      2. MaxSpeakerLabels— 介于 2 到 10 之间的整数,表示您认为音频中讲的扬声器数量。为获得最佳效果,请将您要求识别的发言者数量与输入音频中的发言者数量相匹配。如果您指定的值小于输入音频中的扬声器数量,则最相似的发音扬声器的转录文本将归因于同一扬声器标签。

以下请求使用Amazon SDK for Python (Boto3)开始启用扬声器识别功能的初级医疗临床医生患者对话的批量转录工作。

from __future__ import print_function import time import boto3 transcribe = boto3.client('transcribe') job_name = "example-diarization-transcription" job_uri = "https://DOC-EXAMPLE-BUCKET1.s3-Region.amazonaws.com/example-file.mp4" transcribe.start_medical_transcription_job( MedicalTranscriptionJobName=job_name, Media = {'MediaFileUri': job_uri}, LanguageCode = 'en-US', Specialty = 'PRIMARYCARE', Type = 'CONVERSATION', OutputBucketName = 'DOC-EXAMPLE-BUCKET2', 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": "account ID", "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" }

在音频文件中转录从事初级保健的临床医生和患者之间的对话的音频文件,并确定每个人在转录输出中所说的内容(Amazon CLI)

  • 运行以下代码。

    aws transcribe start-transcription-job \ –-cli-input-json file://example-start-command.json

    以下代码显示的是example-start-command.json.

    { "MedicalTranscriptionJobName": "speaker-id-conversation-medical-transcription-job", "LanguageCode": "language-code", "Specialty": "PRIMARYCARE", "Type": "CONVERSATION", "OutputBucketName":"DOC-EXAMPLE-BUCKET", "Media": { "MediaFileUri": "s3://DOC-EXAMPLE-BUCKET/your-audio-file.extension" }, "Settings":{ "ShowSpeakerLabels": true, "MaxSpeakerLabels": 2 } }

    以下是运行前面的 CLI 命令的响应。

    { "MedicalTranscriptionJobName": "speaker-id-conversation-medical-transcription-job", "LanguageCode": "en-US", "Specialty": "PRIMARYCARE", "Type": "CONVERSATION", "OutputBucketName":"DOC-EXAMPLE-BUCKET1", "Media": { "MediaFileUri": "s3://DOC-EXAMPLE-BUCKET1/example-file.extension" }, "Settings":{ "ShowSpeakerLabels": true, "MaxSpeakerLabels": 2 } }