转录多声道音频 - Amazon Transcribe

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

转录多声道音频

如果您的音频有两个通道,则可以使用频道识别来分别转录每个频道的语音。 Amazon Transcribe目前不支持超过两个声道的音频。

在您的脚本中,会为频道分配标签ch_0ch_1

除了标准脚本部分transcriptsitems)外,启用频道识别的请求还包括一个channel_labels部分。本部分包含按频道分组的每句话语或标点符号及其相关的频道标签、时间戳和置信度分数。

"channel_labels": { "channels": [ { "channel_label": "ch_0", "items": [ { "channel_label": "ch_0", "start_time": "4.86", "end_time": "5.01", "alternatives": [ { "confidence": "1.0", "content": "I've" } ], "type": "pronunciation" }, ... "channel_label": "ch_1", "items": [ { "channel_label": "ch_1", "start_time": "8.5", "end_time": "8.89", "alternatives": [ { "confidence": "1.0", "content": "Sorry" } ], "type": "pronunciation" }, ... "number_of_channels": 2 },

请注意,如果一个频道上的某个人与另一个频道上的某个人同时说话,则当这些人互相发言时,每个频道的时间戳会重叠。

要查看带有频道标识的完整示例脚本,请参阅声道识别输出示例(批量转录)

在批量转录中使用信道识别

要识别批量转录中的频道,可以使用AWS Management ConsoleAWS CLI、或 AWSSDK;有关示例,请参阅以下内容:

  1. 登录到 AWS Management Console

  2. 在导航窗格中,选择转录作业,然后选择创建作业(右上角)。这将打开 “指定作业详细信息” 页面。

    Amazon Transcribe控制台 “指定任务详细信息” 页面。在 “作业设置” 面板中,您可以为转录Job 指定名称、选择模型类型并指定语言设置。
  3. 在 “指定作业详细信息” 页面上填写要包含的所有字段,然后选择下一步。这将带您进入配置作业-可选页面。

    音频设置面板中,选择频道识别(在 “音频识别类型” 标题下)。

    Amazon Transcribe控制台 “配置作业” 页面。在 “音频设置” 面板中,您可以启用频道识别。
  4. 选择 “创建作业” 以运行转录作业。

此示例使用 start-transcription-job。有关更多信息,请参阅StartTranscriptionJob

aws transcribe start-transcription-job \ --region us-west-2 \ --transcription-job-name my-first-transcription-job \ --media MediaFileUri=s3://DOC-EXAMPLE-BUCKET/my-input-files/my-media-file.flac \ --output-bucket-name DOC-EXAMPLE-BUCKET \ --output-key my-output-files/ \ --language-code en-US \ --settings ChannelIdentification=true

这是使用start-transcription-job命令的另一个示例,以及一个支持通过该任务进行信道识别的请求正文。

aws transcribe start-transcription-job \ --region us-west-2 \ --cli-input-json file://my-first-transcription-job.json

my-first-transcription-job.json 文件包含以下请求正文。

{ "TranscriptionJobName": "my-first-transcription-job", "Media": { "MediaFileUri": "s3://DOC-EXAMPLE-BUCKET/my-input-files/my-media-file.flac" }, "OutputBucketName": "DOC-EXAMPLE-BUCKET", "OutputKey": "my-output-files/", "LanguageCode": "en-US", "Settings": { "ChannelIdentification": true } }

此示例使用 start_transcription_job 方法识别频道。AWS SDK for Python (Boto3)有关更多信息,请参阅StartTranscriptionJob

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://DOC-EXAMPLE-BUCKET/my-input-files/my-media-file.flac" transcribe.start_transcription_job( TranscriptionJobName = job_name, Media = { 'MediaFileUri': job_uri }, OutputBucketName = 'DOC-EXAMPLE-BUCKET', OutputKey = 'my-output-files/', LanguageCode = 'en-US', Settings = { 'ChannelIdentification':True } ) while True: status = transcribe.get_transcription_job(TranscriptionJobName = job_name) if status['TranscriptionJob']['TranscriptionJobStatus'] in ['COMPLETED', 'FAILED']: break print("Not ready yet...") time.sleep(5) print(status)

在流媒体转录中使用频道识别

要识别流媒体转录中的频道,可以使用 HTTP/2WebSockets;有关示例,请参见以下内容:

此示例创建了一个 HTTP/2 请求,用于在转录输出中分隔频道。有关使用 HTTP/2 流式传输的更多信息Amazon Transcribe,请参阅设置 HTTP /2 直播。有关特定参数和标题的更多详细信息Amazon Transcribe,请参阅StartStreamTranscription

POST /stream-transcription HTTP/2 host: transcribestreaming.us-west-2.amazonaws.com X-Amz-Target: com.amazonaws.transcribe.Transcribe.StartStreamTranscription Content-Type: application/vnd.amazon.eventstream X-Amz-Content-Sha256: string X-Amz-Date: 20220208T235959Z Authorization: AWS4-HMAC-SHA256 Credential=access-key/20220208/us-west-2/transcribe/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date;x-amz-target;x-amz-security-token, Signature=string x-amzn-transcribe-language-code: en-US x-amzn-transcribe-media-encoding: flac x-amzn-transcribe-sample-rate: 16000 x-amzn-channel-identification: TRUE transfer-encoding: chunked

参数定义可以在 API 参考中找到;所有AWS API 操作的通用参数列在 “通用参数” 部分中。

此示例创建了一个预签名 URL,用于分隔转录输出中的频道。为了便于阅读,已增加了换行符。有关将 WebSocket 直播与一起使用的更多信息Amazon Transcribe,请参阅设置直 WebSocket 播。有关参数的更多详细信息,请参阅StartStreamTranscription

GET wss://transcribestreaming.us-west-2.amazonaws.com:8443/stream-transcription-websocket? &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=string &X-Amz-SignedHeaders=content-type%3Bhost%3Bx-amz-date &language-code=en-US &specialty=PRIMARYCARE &type=DICTATION &media-encoding=flac &sample-rate=16000 &channel-identification=TRUE

参数定义可以在 API 参考中找到;所有AWS API 操作的通用参数列在 “通用参数” 部分中。