Amazon Transcribe 是一种自动语音识别 (ASR) 服务,有助于 AWS 客户轻松地在其应用程序中添加语音转文本功能。
在本教程中,将学习如何使用 Amazon Transcribe 的自动内容审查功能为转录增加隐私保护。
Transcribe 的一个常用使用场景是自动转录客户通话(呼叫中心、电话营销等),为下游分析和自然语言处理任务(如情绪分析)构建数据集。在这些情况下,可能需要删除个人身份信息 (PII),以保护隐私并遵守当地法律法规。此外,在组织内部,根据团队成员的不同访问级别和查看权限,您可能会选择性地将某些转录数据共享给他们。大规模地精确删除敏感文本内容是非常困难的,因为手动操作不仅繁琐、容易出错而且耗时。好在 Amazon Transcripte 支持自动从转录中删除 PII。
您可以通过 AWS 管理控制台或 API 使用自动内容审查功能。本教程将介绍每种方法。
在本教程中,您将学习如何:
- 将要转录的音频文件上传到 Amazon S3
- 创建并启动 Amazon Transcribe 作业
- 清除教程资源
- 查看代码以使用 API 完成教程任务
完成本教程所需的费用不到 1 美元。
注意:自动内容审查目前只支持美式英语转录,这是一项高级功能,在 Amazon Transcribe 目前运行的所有 AWS 区域中都可以使用。
关于本教程 | |
---|---|
时间 | 10 分钟 |
费用 | 低于 1 美元 |
使用场景 | 机器学习 |
产品 | Amazon Transcribe |
受众 | 开发人员 |
级别 | 中级 |
上次更新时间 | 2021 年 2 月 11 日 |
步骤 1. 将要转录的音频文件上传到 Amazon S3
完成以下步骤,创建 Amazon S3 存储桶并上传示例转录音频文件。可以从此处下载示例音频文件:content-redaction-sample.wav
如果您想使用自己的音频文件,建议使用无损格式(如 FLAC 或 WAV),采用 PCM 16 位编码;并且对于低保真度音频使用 8000 Hz 采样率,对于高保真度音频使用 16000 Hz 采样率。Amazon Transcribe 还支持 MP3、MP4、Ogg、WebM 和 AMR 格式。
注意:有关更多信息,请参见 Amazon Transcribe 文档中的 Amazon Transcribe 的工作原理。
a. 登录 Amazon S3 控制台,然后点击 Create bucket(创建存储桶)。
注意:也可以使用一个现有的 S3 存储桶。
b. 在 Create bucket(创建存储桶)页面上的 Bucket name(存储桶名称)字段中,输入唯一的存储桶名称。对于 Region(区域),选择可以使用 Amazon Transcribe 的区域。将其余设置保留为默认值,然后点击 Create bucket(创建存储桶)。
c. 在 Buckets(存储桶)列表中,选择您新创建的存储桶。(或者,在存储桶创建提示横幅中点击 View details(查看详细信息)。)
e. 在 Upload(上传)页面上的 Files and folders(文件和文件夹)部分中,点击 Add files(添加文件)。然后,浏览并打开 content-redaction-sample.wav 文件。
注意:确保您已经先将 content-redaction-sample.wav 文件下载到本地硬盘。
步骤 2. 创建 Amazon Transcribe 转录作业
在此步骤中,将在 Amazon Transcribe 控制台中创建转录作业。Amazon Transcribe 将分析包含语音的音频文件,并使用先进的机器学习技术将语音数据转录为文本。Amazon Transcribe 的自动内容审查功能会自动删除转录结果中的敏感个人身份信息 (PII)。它会将转录文本中每个已识别的 PII 信息替换为 [PII] 标签。
完成以下步骤,启动具有自动内容审查功能的转录作业。
c. 在 Specify job details(指定作业详细信息)页面上,指定以下内容:
- 在 Job settings(作业设置)框中,对于 Name(名称),输入 tutorial-transcription-job。
- 在 Input data(输入数据)部分中,粘贴步骤 1i 中的 S3 URI。(如果您没有 S3 URI,请点击 Browse S3(浏览 S3),然后从您的 S3 存储桶中找到 content-redaction-sample.wav 文件)。
- 在 Output data(输出数据)部分中,选择 Service-managed S3 bucket(服务托管的 S3 存储桶)。
然后,点击 Next(下一步)。
Step 3. Clean up
在此步骤中,将终止在本实验中使用的资源。
重要说明:终止未积极使用的资源可以降低成本,也是一种最佳实践。不终止您的资源将会向您的账户收费。
删除转录作业:
- 打开 Amazon Transcribe 控制台。
- 在左侧导航栏中,点击 Transcription jobs(转录作业)。
- 选择 tutorial-transcription-job,然后点击 Delete(删除)。
- 点击 Delete(删除)进行确认。
删除音频文件和 S3 存储桶:
- 打开 S3 控制台。
- 选择在本教程中创建的 S3 存储桶,然后点击 Empty(清空)。输入 permanently delete,然后点击 Empty(清空)。点击 Exit(退出)。
- 选择在本教程中创建的 S3 存储桶,然后点击 Delete(删除)。输入存储桶的名称,然后点击 Delete bucket(删除存储桶)。
Step 4. Review code for Amazon Transcribe API
此步骤将介绍如何使用编程/API 方式完成步骤 1 和步骤 2。以下脚本使用适用于 Python 的 AWS SDK (Boto) 启动转录作业并获取作业结果。
查看以下脚本,详细了解如何使用 Amazon Transibe API 创建具有自动内容编辑功能的转录作业。
注意:有关更多信息,请参见 Amazon Transcribe 文档中的开始使用 API。
启动转录作业
以下脚本将启动具有内容审查功能的转录作业,并在转录完成后输出作业元数据。
该脚本使用 start_transcription_job() 方法启动一个异步作业,将语音转录为文本。作为方法调用的一部分,需要提供有关作业的一些信息,包括作业名称、S3 存储桶位置、音频文件的对象键、语言代码和可选配置。在此代码示例中,可选配置包括 PII 的内容审查。
要了解有关特定于 Amazon Transcribe 的 boto3 方法的更多信息,请参见 Boto3 文档中的 TranscribeService。
import boto3
import time
transcribe = boto3.client('transcribe')
job_name = "<Job Name>"
audio_file = "s3://<bucket-name>/<object-key of the audio file to be transcribed>"
transcribe.start_transcription_job(
TranscriptionJobName=job_name,
Media={'MediaFileUri': audio_file},
LanguageCode='en-US',
ContentRedaction={
'RedactionType': 'PII',
'RedactionOutput': 'redacted_and_unredacted'
}
)
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)
if status['TranscriptionJob']['TranscriptionJobStatus'] == 'COMPLETED':
print("Full Transcript available at -> "+status['TranscriptionJob']['Transcript']['TranscriptFileUri'])
print("Redacted Transcript available at -> "+status['TranscriptionJob']['Transcript']['RedactedTranscriptFileUri'])
else:
print("Transciption Job Failed.")
以下代码展示转录作业脚本的示例输出。
Not ready yet...
Not ready yet...
Not ready yet...
Full Transcript available at -> https://s3.<region>.amazonaws.com/aws-transcribe-<region>/<account>/<job-name>/asrOutput.json
Redacted Transcript available at -> https://s3.<region>.amazonaws.com/aws-transcribe-<region>/<account>/<job-name>/asrOutputRedacted.json
查看作业输出
输出会生成指向两个转录文件的链接(这两个文件与您通过 Amazon Transcribe 控制台创建转录作业时生成的文件相同)。转录文本是 JSON 文件,包含有关 Amazon Transcribe 转录输出的数据和元数据。
- asrOutput.json:此文件包含完整转录文本。
- asrOutputRedacted.json:此文件包含经过编辑的转录文本。
这些文件的内容都已格式化,可提供关于语音中出现的每个发音/标点符号的信息。您可以在您开发的应用程序中以任何方式使用这些 JSON 数据。
查看审查内容
{
"start_time":"13.96",
"end_time":"20.05",
"alternatives":[
{
"content":"[PII]",
"redactions":[
{
"confidence":"1.0"
}
]
}
],
"type":"pronunciation"
}
但是,非 PII 发音/标点符号如下所示:
{
"start_time":"26.97",
"end_time":"27.19",
"alternatives":[
{
"confidence":"1.0",
"content":"card"
}
],
"type":"pronunciation"
}
这些字段的目的是尽可能多地提供在语音中检测到的发音/标点符号相关信息。请注意,在经过审查的转录文本中,Amazon Transcribe 将归类为 PII 的发音标记为 "content":"[PII]"。然而,在未经审查的转录文本中,相同的发音标记为 "content":"4444333321111"。
推荐的后续步骤
了解更多
阅读《Amazon Transcribe 开发人员指南》,了解更多关于 Amazon Transcribe 的信息。
了解 Amazon Transcribe Medical
有关更多信息,请参见 Amazon Transcribe Medical 页面。