转录多声道音频 - Amazon Transcribe
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

转录多声道音频

如果你有一个有多个频道的音频文件或直播,你可以使用通道识别别转录来自每个频道的演讲。亚马逊 Transcribe Medical 分别转录来自每个频道的演讲。它将每个频道的单独转录合并到单个转录输出中。

使用频道识别来识别音频中的单独频道并转录来自每个频道的语音。在呼叫者和座席场景等情况下启用此功能。使用此选项可以在录音中或来自执行药物安全监控的联络中心的直播中区分呼叫者和代理。

您可以为批处理和实时流启用频道识别功能。下面的列表介绍如何为每种方法启用它。

转录多声道音频文件

当您转录音频文件时,Amazon Transcribe Medical 会返回项目对于每个频道。商品是转录的单词或标点符号。每个单词都有开始时间和结束时间。如果一个频道上的人在单独的频道上讲一个人,则每个频道的项目的开始时间和结束时间会重叠,而个人互相交谈。

默认情况下,您可以使用两个频道转录音频文件。如果你需要转录具有两个以上频道的文件,你可以请求增加配额。有关申请提高配额的信息,请参阅Amazon服务配额.

要在批量转录作业中转录多声道音频,请使用 Amazon Transcribe Medical 控制台或StartMedicalTranscriptionJobAPI。

要在批量转录作业中使用控制台启用频道识别功能,请启用音频识别,然后启用频道识别。频道识别是控制台中音频识别的一个子集。

转录多声道音频文件(控制台)

  1. 登录到Amazon Transcribe Medical.

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

  3. 选择创建任务

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

  5. 选择下一步

  6. 启用音频识别.

  7. 适用于音频识别类型,选择通道识别别.

  8. 选择 Create (创建)

转录多渠道音频文件 (API)

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

    1. 适用于TranscriptionJobName对于,请指定您的唯一性的名称Amazonaccount.

    2. 适用于LanguageCode,指定与音频文件中所用语言对应的语言代码。有效值为 en-US

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

    4. 对于Settings设置对象,设置ChannelIdentificationtrue.

以下是一个示例请求,使用Amazon SDK for Python (Boto3).

from __future__ import print_function import time import boto3 transcribe = boto3.client('transcribe') job_name = "your-transcription-job-name" job_uri = "the-Amazon-S3-object-URL-of-your-media-file" transcribe.start_medical_transcription_job( MedicalTranscriptionJobName=job_name, Media = {'MediaFileUri': job_uri}, MediaFormat = 'mp4', LanguageCode = 'en-US', OutputBucketName = 'DOC-EXAMPLE-BUCKET1', 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)

使用批量转录作业转录多声道音频文件 (Amazon CLI)

  • 运行以下代码。

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

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

    { "MedicalTranscriptionJobName": "multichannel-conversation-medical-transcription-job", "LanguageCode": "language-code", "Specialty": "PRIMARYCARE", "Type": "CONVERSATION", "OutputBucketName":"DOC-EXAMPLE-BUCKET", "Media": { "MediaFileUri": "s3://DOC-EXAMPLE-BUCKET/example-audio-file.extension" }, "Settings":{ "ChannelIdentification": true } }

    以下是响应。

    { "MedicalTranscriptionJob": { "MedicalTranscriptionJobName": "multichannel-conversation-medical-transcription-job", "TranscriptionJobStatus": "IN_PROGRESS", "LanguageCode": "language-code", "Media": { "MediaFileUri": "s3://DOC-EXAMPLE-BUCKET/example-audio-file.extension" }, "StartTime": "2020-09-20T23:46:44.081000+00:00", "CreationTime": "2020-09-20T23:46:44.053000+00:00", "Settings": { "ChannelIdentification": true }, "Specialty": "PRIMARYCARE", "Type": "CONVERSATION" } }

以下代码显示在两个通道上有对话的音频文件的转录输出。

{ "jobName": "job id", "accountId": "account id", "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。

默认情况下,您可以使用两个频道转录直播。如果你需要转录具有两个以上频道的直播,你可以请求增加配额。有关申请提高配额的信息,请参阅Amazon服务配额.

在 HTTP/2 流中转录多声道音频

转录HTTP/2 流中的多声道音频,请使用StartMedicalStreamTranscriptionAPI 并指定以下内容:

  • LanguageCode— 音频的语言代码。有效值为 en-US

  • MediaEncoding— 音频的编码。有效值包括 ogg-opusflacpcm

  • EnableChannelIdentificationtrue

  • NumberOfChannels— 流音频中通道的数量。

有关设置 HTTP/2 流以转录医疗对话的更多信息,请参阅流请求.

在 WebSocket 直播中转录多声道音频

要识别 WebSocket 流中的扬声器,请使用以下格式创建预签名 URL 并启动 WebSocket 请求。指定enable-channel-identification如同true以及流中的频道数number-of-channels. 预签名 URL 中包含在应用程序和 Amazon Transcribe Medical 之间建立双向通信所需的信息。

GET wss://transcribestreaming.region.amazonaws.com:8443/stream-transcription-websocket ?language-code=languageCode &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=Signature Version 4 credential scope &X-Amz-Date=date &X-Amz-Expires=time in seconds until expiration &X-Amz-Security-Token=security-token &X-Amz-Signature=Signature Version 4 signature &X-Amz-SignedHeaders=host &media-encoding=mediaEncoding &sample-rate=mediaSampleRateHertz &session-id=sessionId &enable-channel-identification=true &number-of-channels=number of channels in your audio stream

有关 WebSocket 请求的更多信息,请参阅创建预签名 URL.

多渠道串流输出

对于 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标志,指示语音所属的频道。