sec
This commit is contained in:
parent
b62a62d628
commit
b01da3b301
125
readme.md
125
readme.md
|
@ -1,125 +0,0 @@
|
|||
# AI字幕翻译与增强工具
|
||||
|
||||
这是一个功能强大的全栈AI视频处理工具,旨在为视频自动生成、翻译和嵌入多语言字幕。它集成了业界领先的AI模型,提供从语音识别、说话人分离到文本翻译的一站式解决方案,并通过一个直观的Web界面进行操作。
|
||||
|
||||
|
||||
## ✨ 核心功能
|
||||
|
||||
* **高效语音识别 (ASR)**: 使用 `faster-whisper-large-v2` 模型,快速且精准地将视频中的语音转换成文字。
|
||||
* **智能说话人分离**: 采用 `pyannote.audio 3.1` 模型,能够识别并区分视频中的不同说话人。
|
||||
* **多语言翻译**: 集成 `Qwen1.5-1.8B-Chat` 模型,可将识别出的原文翻译成中文、英文、日文、韩文、法文、德文等多种目标语言。
|
||||
* **实时双语字幕**: 支持在视频播放时,同时显示原文和译文字幕,方便语言学习和内容校对。
|
||||
* **高度可定制的字幕样式**: 用户可以自由调整字幕的显示模式(仅原文/仅译文/双语)、字体、颜色、大小、背景以及在视频中的垂直位置。
|
||||
* **直观的前端界面**: 基于 Vue.js 和 ECharts 构建,提供文件上传、参数配置、带字幕的视频预览以及系统资源实时监控图表。
|
||||
* **实时系统监控**: 在前端页面实时展示后端服务器的CPU和内存占用率,方便了解处理过程中的系统负载。
|
||||
|
||||
## 🛠️ 技术栈
|
||||
|
||||
* **后端**:
|
||||
* **框架**: FastAPI
|
||||
* **语音识别 (ASR)**: `faster-whisper`
|
||||
* **说话人分离**: `pyannote.audio`
|
||||
* **文本翻译**: `transformers` + `Qwen1.5-1.8B-Chat`
|
||||
* **异步处理**: `asyncio`, `run_in_threadpool`
|
||||
* **音视频处理**: `ffmpeg-python`
|
||||
* **系统监控**: `psutil`
|
||||
* **前端**:
|
||||
* **框架**: Vue 3
|
||||
* **图表**: ECharts
|
||||
* **AI 模型**:
|
||||
* **ASR**: `openai/whisper-large-v2` (通过 faster-whisper 优化)
|
||||
* **Diarization**: `pyannote/speaker-diarization-3.1`
|
||||
* **Translation LLM**: `Qwen/Qwen1.5-1.8B-Chat`
|
||||
|
||||
## ⚙️ 环境部署与安装
|
||||
|
||||
* Python 3.8+
|
||||
* Node.js and npm (或 yarn/pnpm)
|
||||
* **FFmpeg**: 必须安装并配置在系统环境变量中,用于音频提取。
|
||||
|
||||
## 🚀 运行应用
|
||||
|
||||
1. **启动后端服务器**
|
||||
在项目根目录下,运行FastAPI应用。它将在 `8888` 端口上启动。
|
||||
```bash
|
||||
# 确保虚拟环境已激活
|
||||
uvicorn turbo:app --host 0.0.0.0 --port 8888
|
||||
```
|
||||
|
||||
2. **启动前端开发服务器**
|
||||
在前端项目目录下,打开终端。
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
在浏览器中打开提示的地址即可访问应用界面。
|
||||
|
||||
## 📖 使用指南
|
||||
|
||||
1. **上传视频**: 点击 "选择文件" 按钮,选择一个本地的 `mp4` 或 `webm` 格式的视频文件。
|
||||
2. **配置处理选项**:
|
||||
* **源语言**: 选择视频的原始语言,或保持 "自动识别"。
|
||||
* **翻译至**: 选择您希望翻译成的目标语言,或选择 "不翻译"。
|
||||
* **启用说话人分离**: 勾选此项以区分不同的说话人。
|
||||
3. **自定义字幕样式**:
|
||||
* **显示模式**: 选择 "双语显示"、"仅译文" 或 "仅原文"。
|
||||
* 通过滑块、输入框和颜色选择器调整字幕的位置、字体、大小和颜色。
|
||||
4. **开始处理**: 点击 "开始生成字幕" 按钮。
|
||||
5. **等待处理**: 后端将开始处理视频。您可以在状态信息区看到当前进度,并在下方的图表中观察系统资源占用情况。处理时间取决于视频时长和您的硬件性能。
|
||||
6. **预览与播放**: 处理完成后,字幕将自动加载。您可以直接在左侧的播放器中播放视频,并看到动态显示的字幕。
|
||||
|
||||
## 📦 API 端点
|
||||
|
||||
应用提供了两个主要的API接口:
|
||||
|
||||
* `POST /api/transcribe`
|
||||
* **功能**: 接收视频文件和配置,返回处理后的字幕数据。
|
||||
* **表单参数**:
|
||||
* `file`: (UploadFile) 视频文件。
|
||||
* `lang`: (str) 源语言代码 (如 `en`, `zh`, `auto`)。
|
||||
* `trans_to`: (str) 目标语言代码。
|
||||
* `enable_diarization`: (bool) 是否启用说话人分离。
|
||||
* **成功响应**: 返回一个JSON对象,包含一个 `segments` 列表,每个元素代表一条字幕信息(`origin_text`, `translation`, `start`, `end`, `speaker`)。
|
||||
* **失败响应**: 返回一个包含 `error` 字段的JSON对象。
|
||||
|
||||
* `GET /api/res_stats`
|
||||
* **功能**: 获取服务器当前的系统资源占用率。
|
||||
* **响应**: 返回一个包含 `cpu` 和 `mem` 百分比的JSON对象。
|
||||
|
||||
## 📁 项目结构概览
|
||||
|
||||
```
|
||||
|
||||
|
||||
├── front/ (前端 Vue.js + Electron 项目)
|
||||
│ ├── .vscode/ # VSCode 编辑器配置文件
|
||||
│ ├── dist-electron/ # Electron 打包后的输出目录
|
||||
│ ├── electron/ # Electron 主进程相关文件
|
||||
│ ├── node_modules/ # 前端依赖包
|
||||
│ ├── public/ # 静态资源目录
|
||||
│ ├── src/ # Vue 应用核心源码目录 (组件、视图等)
|
||||
│ │ └── App.vue # (示例) 根组件,即您提供的 template 代码所在
|
||||
│ ├── .gitignore # Git 忽略配置
|
||||
│ ├── electron-builder.json5 # Electron 打包配置文件
|
||||
│ ├── index.html # Web 应用入口 HTML
|
||||
│ ├── package.json # 项目元数据和依赖管理
|
||||
│ ├── package-lock.json # 锁定依赖版本
|
||||
│ ├── README.md # 前端项目说明
|
||||
│ ├── tsconfig.json # TypeScript 配置文件
|
||||
│ ├── tsconfig.node.json # Node 环境的 TypeScript 配置
|
||||
│ └── vite.config.ts # Vite 构建工具配置
|
||||
│
|
||||
├── subtitles/ (后端 FastAPI 项目)
|
||||
│ ├── .idea/ # PyCharm IDE 配置文件
|
||||
│ ├── __pycache__/ # Python 编译缓存
|
||||
│ ├── models/ # 存放AI模型文件的核心目录
|
||||
│ │ ├── faster-whisper-large-v2/
|
||||
│ │ └── Qwen1.5-1.8B-Chat/
|
||||
│ ├── venv/ # Python 虚拟环境
|
||||
│ ├── app.log # 应用运行日志
|
||||
│ ├── requirements.txt # Python 依赖列表
|
||||
│ └── turbo.py # FastAPI 应用主程序
|
||||
│
|
||||
└── readme.md # 项目总说明文档
|
||||
|
||||
|
||||
```
|
Loading…
Reference in New Issue