Skip to content

CommentOut64/video-to-srt

Repository files navigation

Video-to-SRT GPU

基于 WhisperX 的高性能视频字幕生成工具 - 现代化前后端分离架构

Python Vue.js FastAPI License

一个视频转字幕工具,从简单的命令行脚本演进为现代化的Web应用程序。支持GPU加速、实时进度监控、多任务并发处理。

功能特点

核心功能

  • 高精度转录:基于 WhisperX 的先进语音识别技术
  • GPU 加速:支持 CUDA GPU 加速
  • 智能分段:自动音频分段,优化长视频处理效果
  • 多语言支持:自动语言检测,支持多种语言转录
  • 词级时间戳:精确的词级时间对齐

用户界面

  • 现代化 Web UI:基于 Vue.js 的响应式界面
  • 拖拽上传:支持多种视频格式的拖拽上传
  • 实时进度:实时显示转录进度和任务状态
  • 结果预览:在线预览(待开发)和下载 SRT 字幕文件

技术特性

  • 前后端分离:Vue.js + FastAPI 架构
  • 异步处理:支持多任务并发处理
  • 智能启动:一键启动器,自动处理依赖和环境
  • 错误恢复:完善的错误处理和恢复机制

快速开始

一键启动(推荐)

# 双击运行
一键启动.bat

手动启动

# 1. 安装依赖
pip install -r requirements.txt
cd frontend && npm install

# 2. 启动应用
python simple_launcher.py

系统要求

基础要求

  • Python: 3.8+

  • Node.js: 16+

  • FFmpeg: 音频处理

  • 内存: 建议 8GB+

  • NVIDIA GPU: 支持 CUDA 11.8+

  • 显存: 建议 4GB+

  • 驱动: 最新 NVIDIA 驱动,cuda118或以上,cuDNN

技术栈

后端

  • FastAPI - 高性能 Web 框架
  • WhisperX - 语音识别核心
  • PyTorch - 深度学习框架
  • Uvicorn - ASGI 服务器

前端

  • Vue.js 3 - 前端框架
  • Vite - 构建工具
  • Axios - HTTP 客户端

AI 模型

  • Whisper - OpenAI 语音识别模型
  • pyannote.audio - 说话人分离
  • faster-whisper - 优化的 Whisper 实现

使用说明

1. 启动应用

双击 一键启动.bat

2. 上传视频

  • 在 Web 界面中拖拽或选择视频文件
  • 支持格式:MP4, AVI, MKV, MOV, WMV 等

3. 配置参数

  • 模型选择: tiny, base, small, medium, large
  • 语言设置: 自动检测或指定语言
  • 质量设置: 根据需要调整精度和速度

4. 开始转录

  • 点击开始按钮
  • 实时监控进度
  • 等待处理完成

5. 下载结果

  • 下载 SRT 文件

配置选项

模型配置

# 在 backend/app/processor.py 中修改
JobSettings(
    model="medium",          # tiny, base, small, medium, large
    compute_type="float16",  # float16, float32, int8
    device="cuda",           # cuda, cpu
    batch_size=16           # 批处理大小
)

端口配置

# 在启动器中修改
backend_port = 8000      # 后端端口
frontend_port = 5174     # 前端端口

故障排除

常见问题

"connect ECONNREFUSED 127.0.0.1:8000"

解决方案:

  1. 使用 一键启动.bat 自动清理进程
  2. 手动检查端口占用:netstat -ano | findstr :8000
  3. 重启应用

"npm 命令找不到"

解决方案:

  1. 安装 Node.js (https://nodejs.org)
  2. 重启命令行窗口
  3. 验证安装:npm --version

GPU 内存不足

解决方案:

  1. 降低批处理大小:batch_size=8
  2. 使用较小模型:model="small"

调试模式

遇到问题时使用调试版本:

python launcher_debug.py

版本历史

  • v2.0.0 (2025-08-18) - 🚀 全面架构升级,前后端分离
  • v1.1.0 (2025-06-18) - 🎬 初始版本,命令行界面

详细更新日志请查看 CHANGELOG.md

贡献指南

  1. Fork 项目
  2. 创建功能分支:git checkout -b feature/AmazingFeature
  3. 提交更改:git commit -m 'Add some AmazingFeature'
  4. 推送分支:git push origin feature/AmazingFeature
  5. 打开 Pull Request

开源协议

本项目基于 MIT 协议开源 - 查看 LICENSE 文件了解详情

免责声明

本工具仅供学习与研究使用,禁止任何形式的商业使用。 使用者需遵守相关法律法规,作者不对使用后果承担任何责任。

致谢


⭐ 如果这个项目对你有帮助,请给个星标支持!

About

Video-to-SRT 字幕生成工具

Resources

License

Stars

Watchers

Forks