mcpField
Y
yichen-asr

yichen-asr

github.com/mcncarl创意与媒体4.9k62 次安装今天更新
代码仓库

关于 yichen-asr

yichen-asr 是一个统一 ASR 路由 Skill,根据转写需求选择 Step ASR 或豆包 ASR,面向处理本地音视频的用户。它区分全文转写与时间戳、SRT 等需求,并管理失败恢复与交接。

主要功能

  1. 01按输出需求选择 ASR 后端
  2. 02支持全文、时间戳和 SRT 路由
  3. 03执行前只读检查依赖与凭证状态
  4. 04已提交任务优先恢复,避免重复提交
  5. 05交接转写结果与任务状态

适用场景

  1. 01将本地音视频转成全文
  2. 02生成带时间信息的转写或 SRT
  3. 03分析口播停顿与填充词
  4. 04恢复已提交但未完成的转写任务

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mcncarl/yichen-skills --skill yichen-asr

安装后在 Claude Code 中输入/yichen-asr确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/
providers.md
scripts/
asr_doctor.py
route_asr.py
tests/
test_contract.py

详细介绍

来自项目 README

逸尘统一 ASR

这是一个统一路由层,不是第三套 ASR 引擎。Step ASR 与豆包 ASR 继续作为底层执行器,由本 Skill 负责选择、体检、失败收敛和交接。

路由规则

需求默认后端原因
只要全文、摘要或内容分析Step ASR30 秒切片,失败片段可缩成 10/5 秒重试
需要较细时间戳、SRT 字幕豆包 ASR返回结构化 utterances 和时间信息
需要口播停顿、填充词分析或自动粗剪豆包 ASR现有脚本包含 SRT 与 ffmpeg 粗剪链
用户明确说“只用 Step”Step ASR不得跨服务商补齐
用户明确说“只用豆包/火山”豆包 ASR不得跨服务商补齐

自动路由只允许在“尚未向任何服务商提交任务”时切换。如果某个请求已经上传、提交或留下 request ID,必须恢复或报告该任务,不得再向另一家提交同一媒体,以免重复计费。

用离线路由器确认选择:

python3 ~/.agents/skills/yichen-asr/scripts/route_asr.py \
  --provider auto --text-only

需要字幕时:

python3 ~/.agents/skills/yichen-asr/scripts/route_asr.py \
  --provider auto --need-timestamps --need-srt

执行前体检

先运行只读体检;它只报告密钥是否存在,不显示密钥内容,也不会调用付费接口:

python3 ~/.agents/skills/yichen-asr/scripts/asr_doctor.py

体检中的 token_present 仅表示本机配置了调用凭证,不代表账户有余额。ASR Token 无权读取火山引擎财务余额;余额和欠费状态必须登录费用中心核验。

Step ASR

执行器:

python3 "$YICHEN_STEP_ASR_SCRIPT" \
  --input "/absolute/path/input.mp4" \
  --output-dir "/absolute/path/output" \
  --title "标题" \
  --resume

公开版不内置 Step ASR 执行器。通过 YICHEN_STEP_ASR_SCRIPT 指向你已安装并审计过的兼容脚本;也可把它安装为同级 step-asr/scripts/step_asr_transcribe.py。执行时完整遵守该执行器的 SKILL.md。不得删除失败标记,也不得用豆包结果静默填补 Step 失败片段。

豆包 ASR

执行器:

python3 ~/.agents/skills/yichen-volc-asr/scripts/transcribe.py \
  "/absolute/path/input.mp4" \
  --transcribe-only

需要 SRT 与口播粗剪时,去掉 --transcribe-only;只生成分析和命令、不执行剪辑时加 --no-execute。

执行时完整遵守 ~/.agents/skills/yichen-volc-asr/SKILL.md。发现同媒体的 .asr_pending.json 时,优先恢复原任务;除非用户明确授权,不得使用 --force-new。

豆包调用不需要每次网页登录。公开版不包含 App ID、Token 或钥匙串名称:试用与付费 App ID 分别通过 VOLC_ASR_TRIAL_APP_ID、VOLC_ASR_PAID_APP_ID 提供,Token 分别通过 VOLC_ASR_TRIAL_TOKEN、VOLC_ASR_PAID_TOKEN 提供。脚本直接把本地媒体提交到极速版接口;视频先由 ffmpeg 在内存中提取音轨。

财务余额只能在火山引擎控制台登录后查看:

失败与回退

  1. 用户指定服务商:失败后只报告该服务商的错误和恢复路径,不自动换服务商。
  2. 自动路由且尚未提交:若默认后端缺少脚本、密钥或必要能力,可改用满足输出要求的另一后端,并明确说明。
  3. 自动路由且已经提交:不得跨服务商重提;优先用 request ID、缓存或 --resume 恢复。
  4. 豆包余额未知:不得说成“余额充足”或“余额不足”。只有费用中心、账单或明确的接口欠费错误可确认。
  5. 精确 SRT 需求不能因豆包不可用而悄悄降级为 Step 的分块 Markdown;应说明能力差异。

费用与安全

  • 单个文件的明确转写请求可按选定后端执行;批量任务或可能产生显著付费额度时,先说明文件数、总时长和后端,再取得用户确认。
  • 不输出 Cookie、Token、API Key;长期凭据只存 macOS 钥匙串,不写入 Skill、脚本、日志或记忆。
  • 不把密钥提交到 Skill、产物、日志或记忆文件。
  • 不自动充值、购买资源包或开通后付费。
  • 不覆盖既有产物。不得自动删除临时文件;任何清理都要用户明确允许,并且只能移入废纸篓。

交接

向上层研究流程至少交接:

{
  "provider": "step|doubao",
  "mode": "text|timestamps|srt|rough_cut",
  "input": "/absolute/path/input",
  "outputs": [],
  "request_id": null,
  "billing_status": "unknown|verified_ok|verified_insufficient",
  "errors": []
}

本 Skill 是 $yichen-web-research 的转写子路由。研究总入口负责决定何时需要转写;本 Skill 只负责已有本地音视频的 ASR,不负责搜索、下载或归档。

评论

支持 Markdown