本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
转录多声道音频
如果您的音频文件或直播有多个频道,则可以使用频道识别来转录每个频道的语音。 Amazon TranscribeMedical 分别转录来自每个频道的语音。它将每个通道的单独转录合并为单个转录输出。
使用频道识别来识别音频中的各个频道,并转录每个频道的语音。在呼叫者和代理场景等情况下启用此功能。在进行药物安全监控的联络中心的录音或直播中,使用它来区分呼叫者和代理人。
您可以为批处理和实时流媒体启用信道识别。以下列表描述了如何为每种方法启用它。
-
Batch 转录AWS Management Console和
StartMedicalTranscriptionJob
API -
流媒体转录 — WebSocket 流媒体和
StartMedicalStreamTranscription
API
转录多声道音频文件
当您转录音频文件时,MAmazon Transcribe edical 会返回每个频道的项目列表。项目是转录的单词或标点符号。每个单词都有开始时间和结束时间。如果一个频道上的某人代替另一个频道上的某人说话,则当这些人互相说话时,每个频道的项目的开始时间和结束时间会重叠。
默认情况下,您可以转录带有两个声道的音频文件。如果您需要转录包含两个以上频道的文件,则可以申请增加配额。有关请求增加配额的信息,请参阅AWS 服务配额。
要在批量转录作业中转录多声道音频,请使用AWS Management Console或 StartMedicalTranscriptionJob
API。
要使用在AWS Management Console批量转录作业中启用频道识别,您需要先启用音频识别,然后再启用频道识别。信道识别是中音频识别的子集AWS Management Console。
-
在导航窗格中的 MedicalinceratiAmazon Transcribe onshots 下,选择 Tran cap
-
请选择 Create job (创建任务)。
-
在指定作业详细信息页面上,提供有关您的转录作业的信息。
-
选择下一步。
-
启用音频识别。
-
对于音频识别类型,选择频道识别。
-
选择创建。
转录多声道音频文件 (API)
-
对于
StartMedicalTranscriptionJob
API,指定以下内容。-
对于
TranscriptionJobName
,请指定一个专属于您的名称AWS 账户。 -
对于
LanguageCode
,指定与音频文件中所说的语言相对应的语言代码。有效值为en-US
。 -
对于
Media
对象的MediaFileUri
参数,指定要转录的媒体文件的名称。 -
对于
Settings
对象,设置ChannelIdentification
为true
。
-
以下是使用请求的示例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"
},
...
]
}
}
转录多声道音频流
您可以使用 StartMedicalStreamTranscription
API 在 HTTP/2 或 WebSocket直播中转录来自不同频道的音频。
默认情况下,您可以转录带有两个频道的直播。如果您需要转录包含两个以上频道的直播,则可以申请增加配额。有关请求增加配额的信息,请参阅AWS服务配额。
在 HTTP/2 流中转录多声道音频
要转录 HTTP/2 流中的多声道音频,请使用 StartMedicalStreamTranscriptionAPI 并指定以下内容:
-
LanguageCode
— 音频的语言代码。有效值为en-US
。 -
MediaEncoding
— 音频的编码。有效值包括ogg-opus
、flac
和pcm
。 -
EnableChannelIdentification
–true
-
NumberOfChannels
— 流音频中包含的通道数量。
有关设置 HTTP/2 流以转录医疗对话的更多信息,请参阅设置 HTTP /2 直播。
在 WebSocket 流中转录多声道音频
要对 WebSocket 直播中的发言者进行分区,请使用以下格式创建预签名 URI 并启动 WebSocket 请求。enable-channel-identification
将您的直播中的频道数指定为true
number-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
标志,指示该语音属于哪个频道。