From b01da3b301bdba09a5613e96963c5ab0d81c149e Mon Sep 17 00:00:00 2001 From: Bruce <1932120047@qq.com> Date: Thu, 17 Jul 2025 13:21:12 +0800 Subject: [PATCH] sec --- readme.md | 125 ------------------------------------------------------ 1 file changed, 125 deletions(-) delete mode 100644 readme.md diff --git a/readme.md b/readme.md deleted file mode 100644 index caaecbc2..00000000 --- a/readme.md +++ /dev/null @@ -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 # 项目总说明文档 - - -```