用途
该技能用于视频/音频任务中与 OpenChatCut 转写相关的工作,包括转写、字幕/说明文字、字幕样式、转写文本搜索、转写就绪状态检查,以及启用转写能力。
主要能力
- 为新导入的本地/客户端持有的媒体启动转写:使用 import_media 开始转写,再用 track_progress 等待。
- 检查资源转写状态:通过 read_project 且 view 设为 "assets",可获取视频/音频资源 ID 与转写状态。
- 等待转写完成:调用 track_progress,action 为 "wait",target 为 "transcription",assetIds 设为资源 ID 或前缀。
- 转写文本检索:使用 find_transcript 搜索转写文本并确认词级时间戳。
- 字幕显示编辑:使用 edit_captions 的 enable 动作,或按需使用 read_captions。
- 源转写修复与强制重试:manage_transcript 支持 action fix(源转写修复)和 action retry_transcription(强制重试 ASR)。
- 时间线机械化清理:clean_script 用于对已在时间线上的、转写就绪的媒体做固定填充词与批量停顿的机械化播放清理。
使用方式
典型流程如下:
- 使用 read_project 且 view: "assets",获取视频/音频资源 ID 和转写状态。
- 如果是新的客户端持有导入,确认它经过了 import_media action=create_session 以及 OpenChatCut 媒体导入辅助工具。
- 调用 track_progress,action:"wait",target:"transcription",assetIds 设为资源 ID 或前缀。
- 使用 find_transcript 搜索转写文本并确认词级时间戳。
- 一旦转写就绪,按需使用 edit_captions 的 enable 动作或 read_captions。
示例:
{ "action": "wait", "target": "transcription", "assetIds": "13c1aa02cd" }
已上传的资源在入库时会自动启动 ASR,但没有任何流程等待它完成,因此始终要用 track_progress 确认就绪。
对于仅本地存在的视频资源(local-only;read_project 中原始上传被推迟),在字节无法被后端访问前转写无法运行。应通过 asset-import 技能重新导入源文件(该流程会上传到 S3),或使用 download_media 从公开 URL 下载,不要让用户在编辑器中手动重新链接。
卡住转写与重试
不要仅凭一次非终态状态就判定转写卡住,应结合资源时长与在此任务中实际已等待的时间来判断。
- 用 read_project 且 view: "assets" 读取资源,并在可用时记录其时长。
- 从第一次 track_progress action:"wait" 开始计时,或从任务内最早可靠地观察到转写为 pending/running 的时间戳开始计时。
- 若转写报告明确处于 failed、errored 或 timed-out 终态,在确认资源已远端就绪且为视频/音频后立即重试。
- 若转写一直处于 pending/running 且无失败,只有在已等待时间超过 max(5 分钟, min(60 分钟, 2 × 资源时长)) 时才视为卡住。例如 30 秒片段至少等 5 分钟,10 分钟资源约等 20 分钟,1 小时及以上资源约等 60 分钟。
- 若时长未知,除非工具报告明确失败,应跨多次 track_progress 调用至少等待 10 分钟再视为卡住。
判定卡住时,使用 manage_transcript 且 action: "retry_transcription",并带上资源 ID/前缀。它会为音频/视频资源强制重试 ASR 并启动新的转写运行,但不会等待完成。重试后,先调用 track_progress,target:"transcription",action:"wait",带上返回的或相同的资源 ID,再读取转写或字幕。
重试示例:
{ "action": "retry_transcription", "asset": "13c1aa02cd" }
如果字幕读回为空,检查时间线片段的源时间范围。转写可能已就绪,但当前可见片段起点早于第一句口播词;应新增或修剪片段,使有转写文本的源词落入时间线范围内,然后按需延长/更新字幕项时长。
在需要更精细控制时使用原始工具:
- track_progress 且 target: "transcription",用于状态/等待。
- find_transcript,用于基于查询的转写查找。
- read_captions 和 edit_captions,用于字幕显示编辑。
- manage_transcript action fix,用于源转写修复。
- manage_transcript action retry_transcription,用于在转写卡住、超时或失败后强制重试 ASR。
- clean_script,用于对已进入时间线的、转写就绪的媒体做固定填充词与批量停顿的机械化时间线播放清理。
当转写就绪的请求变成口播剪辑任务时,遵循 shared talking-head-guide 中的公开安全口播流程。简而言之:clean_script 只用于机械化清理;随后使用 Script(read_script -> 修改 timeline.md -> apply_script)处理语义性的重复拍摄、静音、填充词或连贯性剪辑,并对产出的脚本进行验证,而不是仅凭工具返回成功就相信结果。
适用场景
- 视频/音频内容需要转写文本、字幕或说明文字。
- 需要进行字幕样式设置。
- 需要按关键词搜索转写文本、确认词级时间戳。
- 需要检查转写是否就绪,或排查转写卡住、超时、失败。
- 转写就绪后需要做口播类剪辑与机械化脚本清理。
限制
- 仅本地存在的视频资源无法直接转写,需重新通过 asset-import 上传到 S3,或通过 download_media 从公开 URL 下载。
- 卡住判定需结合资源时长与等待时间,不能用单次非终态状态下结论。
- retry_transcription 只启动新的转写运行,不等待完成。
- 字幕为空时可能并非转写问题,而是时间线片段源时间范围不包含已转写的口播词。
- 转写就绪后若涉及语义剪辑,需按口播流程使用 Script 工具链并做结果验证,不能只依赖工具返回成功。