关于 amazon-transcribe
amazon-transcribe 是用于在 AWS 工作流中规划、运行、审核和排查 Amazon Transcribe 的技能。它区分批量、流式、Call Analytics 和 Medical 用途,并强调数据托管、语言支持及人工审核。
主要功能
- 01批量与实时转录规划
- 02Call Analytics 与 Medical 的适用边界
- 03说话人分离与声道识别
- 04词汇表和语言识别指引
- 05脱敏与 AWS 治理考量
适用场景
- 01为 S3 媒体文件生成字幕
- 02规划实时字幕或流式转录
- 03分析客户服务通话录音
- 04审核说话人标签和敏感内容脱敏
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ calesthio/ generative-media-skills --skill amazon-transcribe安装后在 Claude Code 中输入/amazon-transcribe确认已加载。
附带文件EVAL.md
详细介绍
Amazon Transcribe
当 Agent 需要在受 AWS 管控的工作流中规划、运行、审核或排查 Amazon Transcribe(作为语音转文本服务)时,使用此技能。应优先将 Amazon Transcribe 视为 AWS 托管选项:当媒体已存储在 S3 中、组织需要 IAM/KMS/CloudTrail 治理、需要从批处理文件生成字幕,或需要让实时转录内容通过 AWS 流式端点传输时,它最具优势。
不要将此技能用于泛泛的“最佳转录模型”排名。应根据实际任务,对比准确度、延迟、成本、语言覆盖范围和数据托管要求。对于医疗保健、呼叫中心分析和敏感音频,在做出选择前,应将常规 Transcribe 路径与 Medical 和 Call Analytics 产品区分开来。
除非某行另有说明,以下事实均已根据 AWS 文档于 2026-07-10 核实。
选择合适的 Amazon Transcribe 服务
已记录的事实:Amazon Transcribe 是一项自动语音识别服务,可将音频转换为文本。它支持对媒体文件运行异步批处理任务,也支持对实时音频进行流式处理。来源:什么是 Amazon Transcribe、流式音频、StartTranscriptionJob API。
请参考以下决策指南:
- 批量转录:适用于 Amazon S3 中的文件、离线转录、字幕、播客/视频积压内容、档案、质量审核,以及可以等待任务完成的工作流。批处理要求在调用
StartTranscriptionJob之前先将媒体文件存放在 S3 中。 - 流式转录:适用于实时字幕、通话助手、会议、语音输入,或需要低延迟部分/最终转录结果的场景。流式处理使用双向 HTTP/2 或 WebSockets,并要求指定语言或启用语言识别、媒体编码和采样率。来源:StartStreamTranscription API。
- Call Analytics:仅适用于媒体内容为客户与客服人员之间或销售/支持通话,且所需输出包含轮次输出、情感、打断、非通话时长、语速、类别、摘要或行动项等通话专属洞察的场景。不要将其用作通用字幕处理路径。来源:Call Analytics、通话后输出。
- Medical:仅适用于医疗相关语音,例如临床医生口述、远程医疗,或临床医生与患者的对话。Amazon Transcribe Medical 支持批处理和流式处理,仅支持美式英语(
en-US);AWS 表示它不能替代专业医疗建议、诊断或治疗,患者护理场景必须由受过培训的人员审核。来源:Amazon Transcribe Medical。
生产环境启发式建议:对于剪辑后的媒体和字幕交付物,优先使用批处理,除非用户明确需要实时文本。对于每位说话人的音频分别录制在独立声道上的双人录音,优先使用声道识别而非说话人分离。对于说话人未知的单声道音频,使用说话人分离,并计划由人工补充说话人姓名。
输入和输出契约
已记录的事实:
- 批量输入格式包括 AMR、FLAC、M4A、MP3、MP4、Ogg、WebM 和 WAV;流式格式包括 FLAC、Ogg Opus 和 PCM 编码。AWS 建议尽可能使用 FLAC 或采用 PCM 16 位编码的 WAV 等无损格式。来源:数据输入和输出。
- Amazon Transcribe 支持单声道和双声道媒体。标准 Transcribe 不支持超过两个声道的媒体。来源:数据输入和输出、声道识别。
- 批量转录输出为 JSON。JSON 包含段落级转录文本和条目级数据;至少,单词条目包含开始时间、结束时间和置信度分数。来源:数据输入和输出。
- 批量视频字幕输出支持 WebVTT(
.vtt)和 SubRip(.srt)。请求生成字幕时,AWS 会在同一目标位置生成字幕文件和常规 JSON 转录文件。来源:创建视频字幕。
生产经验法则:
- 上传前规范化生产音频:提取用于生成字幕的最终混音;只有在不需要声道识别时才进行下混;在不影响剪辑的情况下删除较长的静音,并保留用于生成字幕的原始音频副本。
- 将 JSON 转录文本作为质量检查和下游对齐的事实来源。将 AWS 生成的 SRT/VTT 视为起点;交付前检查换行、阅读速度、标点、品牌术语、说话人变化以及字幕与镜头切换的冲突。
- 为了确保字幕无障碍,应单独安排编辑环节,补充
[music]、[laughter]或有意义的音效等非语音信息。Amazon Transcribe 提供的是语音转文本功能,并非完整的人工字幕编写系统。
对生产至关重要的功能边界
说话人标签与声道识别
已记录的事实:
- 说话人分离会划分说话人,并可将最多 30 位不同说话人标记为
spk_0至spk_29;批量和流式转录均支持此功能。来源:划分说话人。 - 声道识别会分别转录双声道音频,并将声道标记为
ch_0和ch_1;Amazon Transcribe 不支持超过两个声道。来源:转录多声道音频。
生产经验法则:
- 对于呼叫中心立体声音频、采访者/受访者分轨,或每位说话人一侧都有稳定独立声道的文件,请使用声道识别。
- 对于单声道会议、论坛讨论、播客或摄像机录制的音频,请使用说话人分离,但不要承诺识别出真实姓名。建立映射流程:
spk_0 = host、spk_1 = guest,并在说话人轮次变化后核实映射。 - 除非当前 API 文档明确支持所选请求类型的确切组合,否则不要同时启用声道识别和说话人分离。如果既需要知道“哪个声道?”,又需要知道“哪个人?”,请拆分工作流或进行人工后处理。
自定义词汇、自定义语言模型和词汇过滤器
文档记录的事实:
- 自定义词汇可提高对特定词语的识别准确度,例如品牌名称、缩略词、专有名词和领域术语。所有支持的语言均可使用自定义词汇,但只能使用该语言支持的字符集中的字符。来源:自定义词汇。
- AWS 表示,表格格式是首选的自定义词汇格式。表格包含
Phrase、SoundsLike、IPA和DisplayAs;Phrase为必填项,且不得包含空格。来源:使用表格创建自定义词汇。 - 自定义词汇过滤器会使用选定的方法修改完全匹配的词语,可应用于批处理和流式请求。来源:词汇过滤。
- 将语言识别与自定义词汇、自定义语言模型或词汇过滤器结合使用时,每种语言都必须设置
LanguageIdSettings;多语言识别不支持自定义语言模型。来源:批处理语言识别。
生产经验法则:
- 如果需求是“请正确识别这个词”,请使用自定义词汇;如果需求是“出现这个确切词语时,请屏蔽、删除或标记”,请使用词汇过滤器。
- 对于符合品牌安全要求的字幕,自定义词汇和词汇过滤器解决的是不同问题。产品名称应加入词汇;脏话或禁用词应加入词汇过滤器。
- 在首次生产任务前,根据脚本、嘉宾姓名、产品名称、缩略词、特殊拼写和营销活动用语构建词汇。重新运行一段有代表性的短音频样本,确认它确实有帮助,而非造成负面影响。
- 对于多语言或方言不明确的媒体内容,请尽可能限制
LanguageOptions。AWS 警告,不匹配的语言选项可能导致转录不准确;方言不匹配也可能导致无法应用特定语言的自定义设置。
语言识别
文档记录的事实:
- 批处理支持自动语言识别和自动多语言识别。来源:批处理语言识别。
- 可通过控制台、HTTP/2 或 WebSockets,在流式处理时进行自动语言识别。来源:流式语言识别。
- 支持的语言和特定语言功能各不相同;AWS 建议用户在继续操作前,确认所需功能是否支持目标语言。来源:支持的语言和特定语言功能。
生产经验法则:
- 如果用户知道使用的语言,请明确指定。只有在语言确实未知,或工作流必须接受多种语言时,才使用语言识别。
- 对于受监管内容的脱敏,不要依赖宽泛的自动语言检测,除非脱敏功能支持所有可能使用的语言。AWS 说明,将语言识别与内容脱敏结合使用时,只会对支持脱敏的语言进行脱敏;对于不支持的语言,可能不会生成警告或错误。
PII、PHI、脱敏和毒性检测
有文档记录的事实:
- 流式 PII 脱敏会将每个识别出的 PII 实例替换为
[PII]。来源:实时流中的 PII 脱敏。 - 批量语言识别与内容脱敏存在一项关键限制:如果音频包含受支持的脱敏语言之外的其他语言,则只会脱敏受支持语言的内容,其他语言不会被脱敏,也不会发出警告或导致任务失败。来源:批量语言识别。
- Toxicity Detection 可识别并分类语音中的有害内容,类别包括性骚扰、仇恨言论、威胁、虐待、亵渎、侮辱和露骨内容;AWS 表示该功能会使用音频和文本线索。此功能仅适用于美国英语(
en-US)的批量转录。AWS 控制台工作流还指出,可在启用 Toxicity Detection 的同时启用 PII 脱敏,但其他列出的选项不受支持。来源:检测有害言论、使用有害言论检测。 - 根据 AWS 文档,Amazon Transcribe Medical 符合 HIPAA 资格,但用于患者护理的 Medical 输出必须由经过培训的医疗专业人员审核。来源:Amazon Transcribe Medical、Amazon Transcribe 常见问题。
生产环境启发式建议:
- 将 PII/PHI 脱敏视为安全辅助措施,而非法律保证。对于公开发布、法律取证、医疗记录、人力资源、未成年人、执法或金融用途,应将输出交由人工进行隐私审核。
- 切勿在任务名称、标签、自由填写字段或外部 URL 中放入敏感数据。AWS 警告,这些字段可能会出现在账单或诊断日志中。来源:数据保护。
- 对于毒性检测,未经人工政策审核,不要将类别置信度直接转化为审核决定。应将其用作标记层,并保留上下文。
AWS 托管、安全性和权限
已记录的事实:
- 批处理作业使用 S3 存储输入音频和输出转录文本。如果指定自己的输出存储桶,转录文本会一直保留在该存储桶中,直到你将其删除。来源:数据输入和输出。
- Amazon Transcribe 支持使用 S3 托管密钥或 AWS KMS 密钥进行静态加密,并使用 TLS 加密传输中的数据。来源:数据加密。
- AWS 的责任共担模型适用:AWS 负责保护基础设施,客户负责内容控制、安全配置和服务管理。AWS 建议遵循 IAM 最小权限原则、启用 MFA 和 TLS、记录 CloudTrail 日志、使用加密,并通过 Macie 发现 S3 中的敏感数据。来源:数据保护。
- 默认情况下,AWS 文档指出,Amazon Transcribe 会存储并使用经过处理的语音输入来开发和改进服务;客户可以通过 AWS Organizations AI 服务退出策略选择退出。来源:选择退出。
- Amazon Transcribe 使用的 IAM 角色需要 S3 访问权限;如果使用 KMS,还需要相关 KMS 密钥权限。AWS 提供了适用于 S3 输入
GetObject/ListBucket、输出PutObject、KMS 权限,以及使用aws:SourceArn和aws:SourceAccount防止混淆代理问题的策略。来源:基于身份的策略示例。 - Amazon Transcribe 支持基于身份的策略、策略操作/资源/条件键、临时凭证和服务角色;但不支持基于资源的策略、ACL 或服务关联角色。来源:Amazon Transcribe 如何与 IAM 配合使用。
生产环境检查清单:
- 上传前确认 AWS 账户、区域和数据驻留要求。
- 对受监管或需长期保留的转录文本,使用客户自有的 S3 存储桶;在保留期限、生命周期管理或可审计性很重要时,避免使用服务托管的输出。
- 启用存储桶加密;如果客户需要控制密钥策略或 KMS 审计跟踪,请选择 SSE-KMS。
- 仅授予所需操作:
transcribe:StartTranscriptionJob、transcribe:GetTranscriptionJob、按需使用的transcribe:ListTranscriptionJobs、对输入前缀的 S3 读取权限、对输出前缀的 S3 写入权限,以及仅在必要时授予 KMS 解密/加密/生成数据密钥权限。 - 为原始媒体、JSON、SRT/VTT、临时衍生文件以及已编辑/未编辑的版本配置 CloudTrail 和生命周期删除。
- 如果隐私政策要求不将内容用于改进 AI 服务,请在处理敏感音频前确认 AWS Organizations 退出策略。
配额、定价和区域可用性
已核实的动态信息,核实日期:2026-07-10:
- 标准 Transcribe 配额包括:最长音频文件时长为 28,800 秒,音频文件大小上限为 2 GB,最短音频时长为 500 ms,支持双声道声道识别,最多 25 个并发标准流式会话,最多 250 个并发标准转录作业,总计 100 个词汇表、100 个词汇筛选器,以及 90 天的作业记录保留期限。许多配额可调整,但有些不可调整。来源:Amazon Transcribe endpoints and quotas。
- Call Analytics 批量配额有所不同:Call Analytics 批量作业的最长音频时长为 14,400 秒,文件大小上限为 500 MB。来源:Amazon Transcribe endpoints and quotas。
- AWS 定价因区域而异,并且会随时间变化。公开定价示例中,美国东部(弗吉尼亚北部)区域的标准流式转录价格为每分钟
$0.01,批量转录为每分钟$0.006;Call Analytics、内容脱敏、Medical 和附加功能则单独定价。来源:Amazon Transcribe pricing。 - 区域可用性因 API 和产品而异。在确定生产区域前,务必查看 AWS General Reference 和产品专属的区域表。来源:endpoints and quotas、Medical region availability、Call Analytics region availability。
生产环境经验法则:
- 按音频时长而非文件大小估算费用。估算时应计入重新运行的费用:一次样本处理、一次最终处理,以及可能的脱敏/字幕重新处理。
- 批量处理大量文件前,应在目标区域查询 Service Quotas,并设计带重试和退避机制的队列,以应对节流。
- 对于大量字幕任务,只有在确有必要控制工作流时,才按自然边界预先分割长视频;避免在讲话中途分割,因为这可能影响标点和上下文。
示例:已剪辑视频的批量字幕作业
示例目标:为已上传到 S3 的最终视频创建英文字幕和 JSON 转录文本。作业需要使用产品名称的自定义词汇表,不需要说话人分离,输出应存放在客户自有的 S3 前缀中。
import time
import boto3
region = "us-west-2"
job_name = "launch-video-captions-20260710"
input_uri = "s3://example-prod-media/final/launch-video.wav"
output_bucket = "example-prod-transcripts"
output_key = "captions/launch-video/"
transcribe = boto3.client("transcribe", region_name=region)
transcribe.start_transcription_job(
TranscriptionJobName=job_name,
Media={"MediaFileUri": input_uri},
OutputBucketName=output_bucket,
OutputKey=output_key,
LanguageCode="en-US",
Settings={
"VocabularyName": "launch-product-terms-en-us"
},
Subtitles={
"Formats": ["srt", "vtt"],
"OutputStartIndex": 1
},
Tags=[
{"Key": "project", "Value": "launch-video"},
{"Key": "data-class", "Value": "public-after-review"}
],
)
while True:
job = transcribe.get_transcription_job(TranscriptionJobName=job_name)
status = job["TranscriptionJob"]["TranscriptionJobStatus"]
if status in ("COMPLETED", "FAILED"):
break
time.sleep(15)
print(status)
print(job["TranscriptionJob"])
采用这种结构的原因:
- 字幕是离线交付内容,因此使用批量处理。
- 同时请求 SRT、VTT 和完整的 JSON 转录文本。
- 产品和品牌的拼写很重要,因此使用自定义词汇表。
- 不使用说话人分离,因为说话人标签会给常规字幕增加干扰,除非剪辑确实需要标注说话人。
交付前检查:
- 根据脚本和词汇表核对产品名称。
- 检查标点、句子切分、换行、阅读速度,以及场景切换处的同步情况。
- 如果目标平台或无障碍标准有要求,手动添加编辑性非语音字幕。
- 确认 S3 输入音频和转录文本输出的保留及删除政策。
示例:呼叫中心立体声转录方案选择
示例意图:转录录制的客服通话,其中坐席位于左声道,客户位于右声道。产品团队需要可供搜索和质量保证使用的文本,而非情感分析或自动通话摘要。
推荐方案:
- 使用标准批量 Transcribe,并启用
ChannelIdentification,而非 Call Analytics。 - 如果已知语言,则设置
LanguageCode;只有在通话可能使用多种语言时,才使用语言识别。 - 使用自定义词汇表处理产品名称,并使用自定义词汇过滤器屏蔽或标记必须处理的词语。
- 在转录文本中保留声道标签,并根据录音系统的声道约定映射
ch_0/ch_1。 - 只有在用户需要通话类别、情感分析、通话时长指标、打断情况或生成式通话摘要时,才升级到 Call Analytics。
原因:
- 声道识别专为双声道音频设计,可避免猜测说话人轮次。
- Call Analytics 成本更高,而且针对特定产品;将其用于普通转录可能会产生不必要的成本和治理范围。
示例:实时流式传输限制
示例意图:为内部活动添加实时字幕。
方案:
- 通过 HTTP/2 或 WebSocket 使用流式 Transcribe。
- 输入采用受支持流式格式的实时音频:FLAC、Ogg Opus 或 PCM。
- 如果已知语言,则提供语言代码;否则使用流式语言识别。
- 使用部分结果显示屏幕上的临时字幕,并使用最终结果记录日志。
- 如果活动结束后才发布字幕,则通过批量方式重新转录最终录音并编辑字幕,而不是仅依赖实时输出。
生产经验法则:实时字幕优先优化延迟,而非完美的编辑质量。对于公开录音,应在事后对最终混音音频进行批量转录,并执行字幕质量检查。
生产质量检查标准
发布前,检查每份重要转录文本:
- 准确性:至少抽查开场部分、术语密集部分、人名、数字、首字母缩略词、重叠语音和低信噪比部分。
- 时间:根据最终媒体而非草稿导出文件核实开始和结束时间。
- 说话人处理:确认
spk_*或ch_*标签对最终用户是否有意义;只有在有证据后,才将通用标签替换为姓名。 - 字幕:检查行长、阅读速度、分段、镜头切换时间、遗漏的非语音音频,以及平台格式要求。
- 脱敏:在安全的审核环境中对比未脱敏和已脱敏输出;核实个人身份信息(PII)/受保护健康信息(PHI)类别及不支持语言的风险。
- 保管:核实 S3 存储桶、前缀、加密、KMS 密钥、生命周期、IAM 角色、CloudTrail 和 AI 服务退出要求。
- 成本:记录区域、时长、功能附加项、重新运行次数,以及是否适用 Call Analytics/Medical 定价。