转录多声道音频 - Amazon Transcribe

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

转录多声道音频

如果您的音频文件或直播有多个频道,则可以使用频道识别来转录每个频道的语音。 Amazon TranscribeMedical 分别转录来自每个频道的语音。它将每个通道的单独转录合并为单个转录输出。

使用频道识别来识别音频中的各个频道,并转录每个频道的语音。在呼叫者和代理场景等情况下启用此功能。在进行药物安全监控的联络中心的录音或直播中,使用它来区分呼叫者和代理人。

您可以为批处理和实时流媒体启用信道识别。以下列表描述了如何为每种方法启用它。

转录多声道音频文件

当您转录音频文件时,MAmazon Transcribe edical 会返回每个频道的项目列表。项目是转录的单词或标点符号。每个单词都有开始时间和结束时间。如果一个频道上的某人代替另一个频道上的某人说话,则当这些人互相说话时,每个频道的项目的开始时间和结束时间会重叠。

默认情况下,您可以转录带有两个声道的音频文件。如果您需要转录包含两个以上频道的文件,则可以申请增加配额。有关请求增加配额的信息,请参阅AWS 服务配额

要在批量转录作业中转录多声道音频,请使用AWS Management Console或 StartMedicalTranscriptionJobAPI。

要使用在AWS Management Console批量转录作业中启用频道识别,您需要先启用音频识别,然后再启用频道识别。信道识别是中音频识别的子集AWS Management Console。

  1. 登录到 AWS Management Console

  2. 在导航窗格中的 MedicalinceratiAmazon Transcribe onshots 下,选择 Tran cap

  3. 请选择 Create job (创建任务)

  4. 指定作业详细信息页面上,提供有关您的转录作业的信息。

  5. 选择下一步

  6. 启用音频识别

  7. 对于音频识别类型,选择频道识别

  8. 选择创建

转录多声道音频文件 (API)
  • 对于 StartMedicalTranscriptionJobAPI,指定以下内容。

    1. 对于TranscriptionJobName,请指定一个专属于您的名称AWS 账户。

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

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

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

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

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

转录多声道音频流

您可以使用 StartMedicalStreamTranscriptionAPI 在 HTTP/2 或 WebSocket直播中转录来自不同频道的音频。

默认情况下,您可以转录带有两个频道的直播。如果您需要转录包含两个以上频道的直播,则可以申请增加配额。有关请求增加配额的信息,请参阅AWS服务配额

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

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

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

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

  • EnableChannelIdentificationtrue

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

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

在 WebSocket 流中转录多声道音频

要对 WebSocket 直播中的发言者进行分区,请使用以下格式创建预签名 URI 并启动 WebSocket 请求。enable-channel-identification将您的直播中的频道数指定为truenumber-of-channels。预签名的 URI 包含在应用程序和 MAmazon Transcribe edical 之间建立双向通信所需的信息。

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标志,指示该语音属于哪个频道。