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

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

转录多通道音频

如果您有包含多个信道的音频文件或流,您可以使用 信道识别 以转录来自这些信道中的每一个的语音。 Amazon Transcribe 从每个通道中识别语音,并在单独的转录中转录该语音。它将这些转录组合到单个转录输出中。

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

转录多通道音频文件

对于批量转录,每个通道都有由扬声器组成的语音 言外之意. 表达 是一种音频通道上的语音单位,通常用静默与其他表达隔开。如果一个通道上的一个声响与另一个通道上的声响重叠, Amazon Transcribe 按开始时间在转录中订购。输入音频中重叠的语句在转录输出中不重叠。

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

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

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

要在批处理转录作业中转录多通道音频,请使用 Amazon Transcribe 控制台或 StartTranscriptionJob.

要使用控制台在批处理转录作业中启用信道标识,请启用音频标识,然后启用信道标识。信道标识是控制台中音频标识的子集。

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

  1. 登录 AWS 管理控制台并通过 Amazon Transcribe 控制台打开 Amazon Transcribe 控制台。

  2. 在导航窗格中,位于 Amazon Transcribe,选择 转录作业.

  3. 选择创建作业

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

  5. 选择下一步

  6. 启用 音频识别.

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

  8. 选择创建

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

  • StartTranscriptionJob 操作,请指定以下。

    1. 对于 TranscriptionJobName,请指定在您的 AWS 账户中具有唯一性的名称。

    2. 对于 LanguageCode,请指定与媒体文件中所讲语言对应的语言代码。有关可用语言和相应的语言代码,请参阅 什么是 Amazon Transcribe?.

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

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

以下是使用 适用于 Python (Boto3) 的 AWS 软件开发工具包.

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_transcription_job( TranscriptionJobName=job_name, Media= {'MediaFileUri': job_uri}, MediaFormat= 'mp4', 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)

使用批处理转录作业转录多通道音频文件(AWS CLI)

  • 运行以下代码。

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

    以下是 example-start-command.json.

    { "TranscriptionJobName": "your-transcription-job-name", "LanguageCode": "en-US", "Media": { "MediaFileUri": "s3:///your-audio-file.mp4" }, "Settings":{ "ChannelIdentification":true }
    { "TranscriptionJobName": "your-transcription-job-name", "LanguageCode": "en-US", "Media": { "MediaFileUri": "s3:///your-audio-file" }, "Settings":{ "ChannelIdentification":true }

    以下是响应。

    { "TranscriptionJob": { "TranscriptionJobName": "your-transcription-job", "TranscriptionJobStatus": "IN_PROGRESS", "LanguageCode": "en-US", "Media": { "MediaFileUri": "s3:///your-audio-file" }, "StartTime": "2020-09-12T23:20:28.239000+00:00", "CreationTime": "2020-09-12T23:20:28.203000+00:00", "Settings": { "ChannelIdentification": true } } }

转录多通道音频流

您可以从HTTP/2或 WebSocket 使用 StartStreamTranscription 操作

默认情况下,您可以使用两个通道转录流。如果需要转录具有两个以上通道的流,可以请求增加配额。有关请求配额增加的信息,请参阅 AWS 服务配额.

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

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

  • LanguageCode -音频的语言代码。

  • MediaEncoding - pcm

  • EnableChannelIdentification - true

  • NumberOfChannels -流音频中的信道数量。

以下是HTTP/2请求的参数的语法。

POST /stream-transcription HTTP/2 x-amzn-transcribe-language-code: LanguageCode x-amzn-transcribe-sample-rate: MediaSampleRateHertz x-amzn-transcribe-media-encoding: MediaEncoding x-amzn-transcribe-session-id: SessionId x-amzn-transcribe-vocabulary-filter-name: VocabularyFilterName x-amzn-transcribe-vocabulary-filter-method: VocabularyFilterMethod x-amzn-transcribe-enable-channel-identification: EnableChannelIdentification x-amzn-transcribe-number-of-channels: NumberOfChannels Content-type: application/json { "AudioStream": { "AudioEvent": { "AudioChunk": blob } } }

在中转录多通道音频 WebSocket 流

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

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