[toc]
推荐一个AI语音转写生成字幕开源项目
一、项目简介
推荐一个本地优先的字幕生成与编辑工作流。它帮你完成从本地媒体文件,到 AI 转写生成字幕,再在本地编辑器中精修,最后导出成品字幕的完整流程 **Moy's ASR Workflow(简称 MAW)** 是一个专注于本地字幕生成与编辑的 AI 语音识别工作流工具。
它的核心流程是:
本地媒体 → AI 语音转写 → 生成 SRT 字幕 + .mosp 工程文件 → MAWE 浏览器编辑器编辑 → 导出多格式字幕
二、项目核心功能
1. 多引擎语音转写
- 云端 API 转写(主流程):
- 阿里云百炼:Qwen-Audio 3.0 ASR(默认)、Fun-ASR(支持说话人分离)
- 豆包(火山引擎)大模型录音文件识别
- Soniox 语音识别(支持说话人分离)
- 腾讯云录音文件识别
- OpenAI Whisper 及兼容接口(支持 OpenRouter 等中转)
- 本地离线转写(实验性):Qwen3-ASR、FunASR、Faster-Whisper
- 免 Key 体验:必剪 ASR(B站非公开接口,仅中文)
2. 专业字幕编辑器(MAWE)
- 波形可视化定位与时间轴微调
- 字幕拆分、合并、批量替换
- 主副字幕双轨编辑:支持交换、绑定/解绑、联动编辑、跨轨道吸附
- 静音空隙检测与移除(建立可逆压缩时间线,不破坏原媒体)
- 播放器内字幕实时预览与拖拽调整
- 说话人分离颜色标记
- 多工作区布局切换(经典、波形右侧、三折叠、大荧幕、自定义)
3. 转写后自动化处理
- 文稿匹配:将已有文稿按时间轴对齐到字幕,修正识别错字
- LLM 智能处理:校对、重新断句、中英翻译、双语字幕合并
- OCR 字幕去重:自动识别画面烧录字幕并禁用对应音轨字幕
- 固定处理:批量文本替换、简繁转换
- 可配置自动化 Pipeline
4. 导出与工具集
- 导出格式:SRT、ASS(保留字体样式)、OTIO(达芬奇时间线)、FFconcat
- 媒体工具箱:波形生成、音频提取、字幕压制、媒体重组
- 命令行接口(CLI):支持批处理和 AI 自动化集成
- 批量转写队列:多文件顺序处理
三、项目亮点
| 亮点 | 说明 |
|---|---|
| 本地优先隐私保护 | 所有编辑、工程保存都在本机完成;只有转写时媒体才上传到所选服务商,MAW 本身没有云端服务器,不代管 API Key |
| 字级毫秒时间戳 | 支持逐字/逐词精确时间码,拆分合并时保持时间精度,远优于普通 SRT 粒度 |
| 工程化设计 | .mosp JSON 工程文件作为真源,保留波形、布局、颜色、说话人等全部工程数据;SRT/ASS 只是导出产物 |
| 多 ASR 供应商统一工作流 | 切换不同识别引擎不改变编辑体验,输出格式完全一致 |
| 波形缓存优化 | Rust 实现的 quapeaks 内核高性能波形生成,支持频谱缓存,大文件打开流畅 |
| 跨平台桌面应用 | 提供 Windows/macOS 打包版,自带 FFmpeg,开箱即用;同时支持源码运行 |
| 专业级功能 | 说话人分离、多轨道字幕、达芬奇时间线导出、去空隙剪辑等专业字幕组功能 |
| 离线可用 | 编辑器完全本地运行,已生成工程可离线编辑导出;本地 ASR 可完全离线转写 |
| 安全设计 | 本地服务器只监听 127.0.0.1;覆盖文件自动备份;不执行任意文件访问 |
四、技术栈
后端技术
- 语言:Python 3.11+
- 包管理:uv(现代 Python 包管理器)
- 核心依赖:
requests- API 调用jieba- 中文分词opencc-python-reimplemented- 简繁转换fonttools- 字体处理(ASS导出)quapeaks(Rust) - 高性能波形/频谱生成内核(MIT/Apache-2.0)pywebview- 桌面 GUI 桥接
- 本地 ASR 可选依赖:
torch/torchaudio(PyTorch CUDA 13.0)qwen-asr、funasr、faster-whisperaccelerate- 模型加速
- OCR 可选依赖:
rapidocr(ONNX Runtime PP-OCRv6)pillow、numpy
前端/编辑器
- 原生技术栈:纯 Vanilla JavaScript + HTML + CSS(不使用 React/Vue 等框架)
- 代码规范:Node.js 原生测试运行器 + ruff (Python lint)
- 架构:
- Server 版编辑器:Python HTTP 服务器(只监听 127.0.0.1)+ 前端 SPA
- 单文件版:所有 CSS/JS 内联为单个 HTML 便携文件
- 测试:Playwright 浏览器端到端测试 + Python unittest + Node 单元测试
五、怎么本地快速启动
方式一:下载 Release 包(最简单,推荐普通用户)
- 去 GitHub Releases 页 下载
- Windows:
MAW-Windows-x64-v*.zip(带 FFmpeg,推荐)或MAW-lite-*(更小,需自备 ffmpeg) - macOS:
MAW.app或MAW-lite.app
- Windows:
- 解压后直接启动
MAW.exe/MAW.app - 在 Launcher 里配置你想用的 ASR 服务 API Key
- 选择媒体文件 → 生成字幕 → 自动打开编辑器
方式二:源码运行(开发者/Linux 用户)
前置要求:Python ≥ 3.11、uv 包管理器、ffmpeg/ffprobe
# 1. 克隆仓库
git clone https://github.com/Moyf/moys-asr-workflow.git
cd moys-asr-workflow
# 2. 安装基础依赖(用 uv)
uv sync
# 3. 复制环境变量模板
cp .env.example .env
# 编辑 .env,填入你的 API Key(如 QWEN_API_KEY、SONIOX_API_KEY 等)
# 4a. 启动 GUI 版(Windows/macOS)
uv run python maw_gui.py
# 4b. 启动 Server 编辑器(所有平台通用)
uv run python server-editor/serve.py --blank
# 然后浏览器打开 http://127.0.0.1: 开头的地址
# 4c. 命令行转写(以 Qwen 为例)
uv run python generate_subtitle_qwen_api.py /path/to/your/video.mp4
评论区