mcpField
A
amazon-transcribe

amazon-transcribe

github.com/calesthio创意与媒体219100 次安装15 周前更新
代码仓库

关于 amazon-transcribe

amazon-transcribe 是用于在 AWS 工作流中规划、运行、审核和排查 Amazon Transcribe 的技能。它区分批量、流式、Call Analytics 和 Medical 用途,并强调数据托管、语言支持及人工审核。

主要功能

  1. 01批量与实时转录规划
  2. 02Call Analytics 与 Medical 的适用边界
  3. 03说话人分离与声道识别
  4. 04词汇表和语言识别指引
  5. 05脱敏与 AWS 治理考量

适用场景

  1. 01为 S3 媒体文件生成字幕
  2. 02规划实时字幕或流式转录
  3. 03分析客户服务通话录音
  4. 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 配合使用。

生产环境检查清单:

  1. 上传前确认 AWS 账户、区域和数据驻留要求。
  2. 对受监管或需长期保留的转录文本,使用客户自有的 S3 存储桶;在保留期限、生命周期管理或可审计性很重要时,避免使用服务托管的输出。
  3. 启用存储桶加密;如果客户需要控制密钥策略或 KMS 审计跟踪,请选择 SSE-KMS。
  4. 仅授予所需操作:transcribe:StartTranscriptionJob、transcribe:GetTranscriptionJob、按需使用的 transcribe:ListTranscriptionJobs、对输入前缀的 S3 读取权限、对输出前缀的 S3 写入权限,以及仅在必要时授予 KMS 解密/加密/生成数据密钥权限。
  5. 为原始媒体、JSON、SRT/VTT、临时衍生文件以及已编辑/未编辑的版本配置 CloudTrail 和生命周期删除。
  6. 如果隐私政策要求不将内容用于改进 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 输入音频和转录文本输出的保留及删除政策。

示例:呼叫中心立体声转录方案选择

示例意图:转录录制的客服通话,其中坐席位于左声道,客户位于右声道。产品团队需要可供搜索和质量保证使用的文本,而非情感分析或自动通话摘要。

推荐方案:

  1. 使用标准批量 Transcribe,并启用 ChannelIdentification,而非 Call Analytics。
  2. 如果已知语言,则设置 LanguageCode;只有在通话可能使用多种语言时,才使用语言识别。
  3. 使用自定义词汇表处理产品名称,并使用自定义词汇过滤器屏蔽或标记必须处理的词语。
  4. 在转录文本中保留声道标签,并根据录音系统的声道约定映射 ch_0/ch_1。
  5. 只有在用户需要通话类别、情感分析、通话时长指标、打断情况或生成式通话摘要时,才升级到 Call Analytics。

原因:

  • 声道识别专为双声道音频设计,可避免猜测说话人轮次。
  • Call Analytics 成本更高,而且针对特定产品;将其用于普通转录可能会产生不必要的成本和治理范围。

示例:实时流式传输限制

示例意图:为内部活动添加实时字幕。

方案:

  1. 通过 HTTP/2 或 WebSocket 使用流式 Transcribe。
  2. 输入采用受支持流式格式的实时音频:FLAC、Ogg Opus 或 PCM。
  3. 如果已知语言,则提供语言代码;否则使用流式语言识别。
  4. 使用部分结果显示屏幕上的临时字幕,并使用最终结果记录日志。
  5. 如果活动结束后才发布字幕,则通过批量方式重新转录最终录音并编辑字幕,而不是仅依赖实时输出。

生产经验法则:实时字幕优先优化延迟,而非完美的编辑质量。对于公开录音,应在事后对最终混音音频进行批量转录,并执行字幕质量检查。

生产质量检查标准

发布前,检查每份重要转录文本:

  • 准确性:至少抽查开场部分、术语密集部分、人名、数字、首字母缩略词、重叠语音和低信噪比部分。
  • 时间:根据最终媒体而非草稿导出文件核实开始和结束时间。
  • 说话人处理:确认 spk_* 或 ch_* 标签对最终用户是否有意义;只有在有证据后,才将通用标签替换为姓名。
  • 字幕:检查行长、阅读速度、分段、镜头切换时间、遗漏的非语音音频,以及平台格式要求。
  • 脱敏:在安全的审核环境中对比未脱敏和已脱敏输出;核实个人身份信息(PII)/受保护健康信息(PHI)类别及不支持语言的风险。
  • 保管:核实 S3 存储桶、前缀、加密、KMS 密钥、生命周期、IAM 角色、CloudTrail 和 AI 服务退出要求。
  • 成本:记录区域、时长、功能附加项、重新运行次数,以及是否适用 Call Analytics/Medical 定价。

官方资料

评论

支持 Markdown