ws-video-subtitle-generator

Polar Sponsor
爱发电 赞助
.NET 9.0

将视频/音频文件转换为带时间轴的 SRT 字幕文件,基于阿里云 DashScope Paraformer 语音转写模型。使用场景:当用户需要为视频/音频生成字幕(.srt)、提取语音为带时间戳的文字、批量转录会议/课程/访谈录像时使用。完整流程为 FFmpeg 提取音频 → 上传阿里云 → Paraformer 异步转写 → 渲染 SRT。需要用户提供阿里云 DashScope API Key。

Video Subtitle Generator(视频字幕生成)

功能概述

Video Subtitle Generator(视频字幕生成)是一项面向实际任务的技能,主要用于将本地视频/音频文件批量转换为带时间轴的 SRT 字幕,基于阿里云 DashScope Paraformer;核心脚本为 scripts/transcribe.py ,与原 Electron 工程 D:toolsvideo-srt-lite 的算法完全等价(音频提取参数、SRT 排版规则、时长分配策略均一一对应)。

核心要点

  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
  • 实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

使用与执行

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;

结果检查与注意事项

涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

Video Subtitle Generator(视频字幕生成)

将本地视频/音频文件批量转换为带时间轴的 SRT 字幕,基于阿里云 DashScope Paraformer。核心脚本为 scripts/transcribe.py,与原 Electron 工程 D:toolsvideo-srt-lite 的算法完全等价(音频提取参数、SRT 排版规则、时长分配策略均一一对应),但不依赖该工程,可独立运行。

何时使用本 Skill

  • 用户说"帮我把这个视频转成字幕 / 提取字幕 / 生成 SRT / 语音转文字"
  • 用户给了一批 .mp4/.mov/.wav/.m4a 等文件并希望批量产出 .srt
  • 用户希望复用 video-srt-lite 工程的转写能力,但又不想启动整个 Electron 应用

运行前置条件

  1. Python 3.9+(使用了 list[str] | None 类型注解语法)
  2. requests 库:pip install requests
  3. FFmpeg:需在 PATH 中可用。检查命令 ffmpeg -version。若未安装:
    • Windows 推荐 winget install Gyan.FFmpeg 或 choco install ffmpeg
    • 也可通过 --ffmpeg-path 指定绝对路径
  4. 阿里云 DashScope API Key:必须由用户主动提供,脚本不会硬编码。

API Key 处理(强制规范)

阿里云 DashScope API Key 属于敏感凭证,处理时必须遵守:

  • 首选:让用户通过环境变量提供 DASHSCOPE_API_KEY,例如:
    # Linux/macOS
    export DASHSCOPE_API_KEY=sk-xxxxxxxx
    # Windows PowerShell
    $env:DASHSCOPE_API_KEY="sk-xxxxxxxx"
    
  • 次选:在 TTY 环境下让脚本交互提示用户输入(不回显):
    python scripts/transcribe.py video.mp4
    
    脚本会调用 getpass.getpass 安全读取。
  • 禁用:不要把 Key 写进任何文件、日志、commit message 或聊天记录。
  • 禁用:不要在示例命令里填充看似真实的 Key,用 sk-xxxx 占位即可。

若用户询问如何获取 Key,回答:访问阿里云百炼控制台 https://bailian.console.aliyun.com/ ,开通"语音技术 - 录音文件识别(Paraformer)"后在 API-KEY 管理页面创建。

典型用法

# 单文件,交互输入 Key
python scripts/transcribe.py video.mp4

# 通过环境变量提供 Key,批量处理整个目录
export DASHSCOPE_API_KEY=sk-xxxx
python scripts/transcribe.py /path/to/folder

# 自定义输出目录、模型、热词
python scripts/transcribe.py video.mp4 
  --output-dir ./subs 
  --model paraformer-v2 
  --language-hints zh,en

# 关闭语气词去除
python scripts/transcribe.py video.mp4 --no-remove-filler-words

完整参数列表:python scripts/transcribe.py --help

输出

  • 默认在源文件同目录生成 <原名>.srt。若已存在则自动追加 .1、.2 后缀,避免覆盖。
  • SRT 采用 UTF-8 + CRLF 换行,与原工程保持一致,可直接被主流播放器/Premiere/达芬奇识别。
  • 字幕会按句意+宽度自动断行(最多两行),按文本宽度比例分配显示时长,最短 500ms。

故障排查要点

现象 可能原因 处理建议
FFmpeg 提取音频失败 未装 FFmpeg 或 PATH 不对 安装或用 --ffmpeg-path 指定
获取上传凭证失败 HTTP 401 API Key 无效或未开通 Paraformer 检查 Key、确认已开通服务
音频大小超出临时上传限制 单文件太大(默认 512MB) 用 FFmpeg 切分后分批处理
等待阿里云转写超时 队列拥堵 稍后重试,或缩短视频时长
中文识别为乱码 language-hints 设置不当 加 --language-hints zh

算法参考

详细的算法说明与原工程行为对照见 references/algorithm.md。 完整的 DashScope API 调用细节见 references/dashscope-api.md。 面向终端用户的中文使用教程见 使用教程.md。

联系方式

  • 邮箱:yeah126139163@163.com
  • 微信:w846903522

延伸阅读:想要完整的字幕工作台?

本脚本只解决「视频/音频 → SRT」这一步。如果你后续还想做字幕校对和烧录成片,可以了解一下同源的桌面工具 Video SRT Lite —— 把「生成字幕、字幕校对、合成视频」三件事整合到一个工作台,本地处理、文件不上云。

  • 🌐 官网:https://videosrt.zbztb.cn/index.html
  • 💻 本地工程(可自行运行/打包):D:toolsvideo-srt-lite

它在本脚本基础上补充了这些能力:

能力 说明
边播边校对 播放视频时当前字幕跟随进度定位,可逐条人工修改
AI 一键校对 兼容任意 OpenAI 协议模型(通义千问 / DeepSeek / OpenAI / 本地 Ollama 等),默认偏向错别字与同音字纠正,不做大幅润色;只展示需要关注的条目,支持逐条接受
字幕硬烧录 内置 FFmpeg,把字幕烧录为硬字幕,采用 ASS 渲染让长字幕自动缩小不换行;输出 .subtitled.mp4,原视频不受影响
批量处理 批量转录、批量 AI 校对、批量合成导出;合成队列持久化,重启后可恢复
智能字幕检测 拖入视频时自动检测同目录同名字幕,已有字幕直接进入校对,跳过重复转写
FFmpeg 内置 无需单独安装 FFmpeg,开箱即用

💡 选哪个?

  • 本脚本:命令行批处理、自动化集成、CI 流水线
  • 桌面应用:需要可视化校对、AI 辅助纠错、直接导出成片

两者算法一致(同样的 SRT 排版规则、同样的 FFmpeg 提取参数),脚本产出的 .srt 可直接拖进桌面应用继续加工。

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习