本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
转录多声道音频
如果您的音频有两个声道,则可以使用频道标识来分别转录每个声道的语音。 Amazon Transcribe 目前不支持超过两个声道的音频。
在您的转录中,声道被分配了标签 ch_0 和 ch_1。
除了标准转录部分(transcripts 和 items)之外,启用声道识别的请求还包括一个 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、或 AWS SDKs;有关示例,请参阅以下内容:
-
在导航窗格中,选择转录作业,然后选择创建作业(右上角)。这将打开指定作业详细信息页面。
-
在指定作业详细信息页面上填写要包含的任何字段,然后选择下一步。此时您将会看到配置作业 - 可选页面。
在音频设置面板中,选择声道识别(在“音频识别类型”标题下)。
-
选择创建作业以运行您的转录作业。
此示例使用 start-transcription-jobStartTranscriptionJob。
aws transcribe start-transcription-job \ --regionus-west-2\ --transcription-job-namemy-first-transcription-job\ --media MediaFileUri=s3://amzn-s3-demo-bucket/my-input-files/my-media-file.flac\ --output-bucket-nameamzn-s3-demo-bucket\ --output-keymy-output-files/ \ --language-codeen-US\ --settings ChannelIdentification=true
以下是另一个使用start-transcription-job
aws transcribe start-transcription-job \ --regionus-west-2\ --cli-input-json file://my-first-transcription-job.json
my-first-transcription-job.json 文件包含以下请求正文。
{ "TranscriptionJobName": "my-first-transcription-job", "Media": { "MediaFileUri": "s3://amzn-s3-demo-bucket/my-input-files/my-media-file.flac" }, "OutputBucketName": "amzn-s3-demo-bucket", "OutputKey": "my-output-files/", "LanguageCode": "en-US", "Settings": { "ChannelIdentification": true } }
此示例使用 start_transcription_
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://amzn-s3-demo-bucket/my-input-files/my-media-file.flac" transcribe.start_transcription_job( TranscriptionJobName = job_name, Media = { 'MediaFileUri': job_uri }, OutputBucketName = 'amzn-s3-demo-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/2 或 WebSockets;有关示例,请参阅以下内容:
此示例创建了一个 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.StartStreamTranscriptionContent-Type: application/vnd.amazon.eventstream X-Amz-Content-Sha256:stringX-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=stringx-amzn-transcribe-language-code:en-USx-amzn-transcribe-media-encoding:flacx-amzn-transcribe-sample-rate:16000x-amzn-channel-identification: TRUE transfer-encoding: chunked
此示例创建了一个预签名 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