---
name: asr-subtitle
description: 把音频/视频生成字幕文件（SRT 或 VTT）。当用户要求"生成字幕、做字幕、转成 SRT/VTT、给视频配字幕"时使用。先用 fastasr 转写得到带时间戳的文本，再转成标准字幕文件。
---

# 音视频生成字幕（SRT / VTT）

把本地音频/视频转成带时间轴的字幕文件。本技能建立在 **fastasr MCP** 之上：
转写交给 MCP，时间戳到字幕的转换交给本技能自带的脚本。

> **提示**：如果你装了 fastasr MCP（≥0.2.0），直接用它的 `transcribe_to_subtitle` 工具一步就能出
> SRT/VTT 字幕，更省事——说「给这个视频生成 SRT 字幕」即可，无需本技能。
> 本技能适用于需要**自定义多步流程**的场景（例如转写后再做额外处理、按自己的规则切分/重排字幕等）。

## 前置条件

- 已配置 **fastasr MCP**（提供 `transcribe_long` 工具）。未配置见 https://asr.szchuyue.cn/docs#mcp
- 本机有 `python3`（仅用标准库，无需额外安装）。
- 转视频需本机有 `ffmpeg`（MCP 会自动用它提取音频）。

## 步骤

1. **转写（必须带时间戳）**：调用 fastasr 的 `transcribe_long` 工具处理用户给的文件，
   **保持默认 `plain_text=false`**——字幕必须有时间戳，绝不能传 `plain_text=true`。
   - 视频会自动提取音频，无需手动处理。

2. **落盘原始转写**：把 `transcribe_long` 返回的、形如 `[开始,结束] 文本` 的内容，
   **原样写入**一个临时文件，例如 `/tmp/asr_raw.txt`（不要改动时间戳格式）。

3. **转成字幕**：运行本技能 `scripts/` 目录下的转换脚本（路径用本技能目录的绝对路径）：
   - 生成 SRT：`python3 <技能目录>/scripts/to_subtitle.py /tmp/asr_raw.txt > 输出.srt`
   - 生成 VTT：`python3 <技能目录>/scripts/to_subtitle.py /tmp/asr_raw.txt vtt > 输出.vtt`
   - 默认 SRT；用户明确要 VTT 才加 `vtt` 参数。
   - 输出文件名默认与源文件同名（换扩展名），放在源文件同目录，或按用户指定。

4. **交付**：把生成的字幕文件路径告诉用户，并展示前 3~5 条字幕预览。

## 说明

- 脚本把 fastasr 的 `[开始,结束]` 时间戳转成标准字幕时间轴（SRT 用 `HH:MM:SS,mmm`，VTT 用 `HH:MM:SS.mmm`），秒/分/时都支持。
- 若脚本报"未解析到片段"，多半是第 1 步误传了 `plain_text=true`（丢了时间戳），重做第 1 步即可。
- 计费、额度由 fastasr 网关按识别时长统一处理。
