目录
目录README.md

🎬 视频字幕实时多语识别

本项目是一个集语音识别、字幕生成、多语言翻译、样式自定义与视频播放于一体的本地化视频字幕工具。项目兼容 GPU 加速,并支持 MPV 播放器和 FFmpeg 字幕处理。

技术框架图 效果图1 效果图2


⚙️ 环境配置与依赖安装

1️⃣ 克隆项目

git@code.gitlink.org.cn:YourGod/spzmazdsbxsgj.git
cd SubtitleIDE

2️⃣ 创建虚拟环境(推荐)

conda create -n narratoai python=3.12 -y
conda activate narratoai
python -V

3️⃣ 安装 Python 依赖

pip install -r requirements.txt

4️⃣ 安装系统依赖

确保以下命令行工具已安装并配置好环境变量(将.exe目录加入环境变量):

OpenKylin 示例:

sudo apt update
sudo apt install ffmpeg mpv

请确保将 ffmpeg/binmpv.exe 添加至 PATH。


✅ 技术路线概览


📦 Step 1:基础环境设置

  • 安装 PyTorch + CUDA
  • 安装 moviepy、faster-whisper、streamlit 等依赖
  • 准备 ffmpeg、mpv 工具用于后续处理与播放

🔉 Step 2:视频语音识别

  1. 上传本地视频文件(.mp4, .avi, 等格式)
  2. 使用 moviepy 提取音频(保存为 .wav
  3. 本地加载 faster-whisper-base 模型并使用 GPU 推理
  4. 输出识别文本及其对应时间戳
  5. 同时记录系统资源(CPU、GPU、内存)使用情况

📝 Step 3:字幕生成与时间轴同步

  • 根据语音识别结果和时间戳生成 .srt 字幕文件
  • 可选中英双语版本
  • 删除临时 .wav 文件节省空间

🔧 Step 4:烧录字幕(可选)

使用 FFmpeg 将字幕嵌入视频:

# 软字幕(外挂 .srt)
ffmpeg -i input.mp4 -vf subtitles=subtitles.srt -c:a copy output.mp4

# 硬字幕(烧录)
ffmpeg -i input.mp4 -vf "subtitles=subtitles.srt:force_style='Fontsize=18,PrimaryColour=&HFFFFFF&'" output_hard.mp4

🎥 Step 5:视频字幕播放(分轨)

  • 使用 MPV 播放器:
    • 视频轨:原始视频文件
    • 字幕轨:可选多个 .srt 文件(如中/英/双语)

示例命令:

mpv input.mp4 --sub-file=subtitles.srt

也可通过 GUI 接口调用 sub_reloadset sub-scale 实现动态控制。


🎨 Step 6:字幕样式自定义

可通过GUI动态调整以下字幕参数:

参数 示例值 / 功能
字幕大小 --sub-scale=1.5
字幕颜色 --sub-color='#00ffcc'
字幕位置 --sub-pos=90(靠底)
字体样式 --sub-font="Microsoft YaHei"
描边颜色 --sub-border-color=black
描边宽度 --sub-border-size=2

🌐 Step 7:多语言字幕翻译与切换

  1. 加载本地 Qwen1.5-1.8B-Chat 模型(可部署在 CPU/GPU)
  2. 用户选择目标语言(如英文转中文)
  3. 编写 Prompt 调用模型进行逐句翻译
  4. 根据翻译结果生成新 .srt 文件
  5. 使用 MPV 加载多个字幕轨道供用户切换

📊 系统资源监控(可选)

使用 psutil + GPUtil 采集资源数据,配合 Streamlit 实时可视化:

  • CPU 使用率
  • GPU 显存利用率
  • 内存占用趋势

可用于调试语音识别过程中的性能表现与瓶颈定位。


🚀 启动方式

# 启动 Streamlit UI
sh run.sh

支持功能模块包括:

  • 视频上传与预览
  • 音频提取与语音识别
  • 字幕生成与播放
  • 字幕样式调整
  • 翻译与多语言切换

📁 项目结构

📦 SubtitleIDE
├─.github
├─app
│  ├─config // 设置
│  ├─controllers
│  ├─models
│  │  ├─faster-whisper-large-v3 // faster-whisper模型
│  ├─services // 各种功能函数在这里
│  │  ├─llm
│  │  ├─prompts
│  │  ├─SDE
│  │  ├─SDP
│  ├─test
│  ├─utils
├─MyVideos // 存放测试视频的文件夹
├─Qwen1.5-1.8B-Chat // 千问大模型本地部署
├─resource
├─storage // 存放临时文件
└─webui // GUI界面渲染、功能调用函数
├─ run.sh // 启动脚本
├─ webui.py // 总控函数,调用文件夹下的渲染、功能函数

🧠 本地大模型推荐部署方式


🤝 项目愿景与致谢

本工具致力于为教育、研究、无障碍辅助等场景提供一套本地、可定制、开源的视频字幕智能处理方案。欢迎开发者参与改进与扩展! 感谢NarratoAI、FFMpeg、Moviepy、Qwen、Faster-Whisper等一众优秀开源模型与框架,为我们的项目开发带来了便利🤝

关于
720.1 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号