CrossSubtitle-AI 截图
# CrossSubtitle-AI **AI 驱动的本地优先字幕工作台** [![GitHub Release](https://img.shields.io/github/v/release/AndySkaura/crosssubtitle-ai?style=flat-square)](https://github.com/AndySkaura/crosssubtitle-ai/releases) [![GitHub License](https://img.shields.io/github/license/AndySkaura/crosssubtitle-ai?style=flat-square)](https://github.com/AndySkaura/crosssubtitle-ai/blob/main/LICENSE) [![Platform](https://img.shields.io/badge/platform-macOS%20%7C%20Windows-blue?style=flat-square)](#) [English](./README.en.md) · **简体中文**
--- ## 简介 CrossSubtitle-AI 是一款**本地优先**的音视频字幕处理工具。它利用 [Whisper](https://github.com/ggerganov/whisper.cpp) 进行语音识别,结合 [Silero VAD](https://github.com/snakers4/silero-vad) 进行语音活动检测,并支持接入 OpenAI 兼容接口进行智能翻译,帮助你将音视频文件快速转录并翻译为双语字幕。 整个过程在本地完成语音识别,无需上传音视频文件到任何服务器,保护你的数据隐私。 ## 功能特性 - **语音识别** — 基于 Whisper 的高精度语音转文字,支持中文、英文、日文、韩文、法文等 17 种源语言 - **语音活动检测** — Silero VAD 精准切分语音片段,自动过滤静音区域 - **智能翻译** — 接入 OpenAI 兼容接口(如智谱 GLM、DeepSeek、ChatGPT 等),将原文翻译为目标语言 - **音频抽取** — 内置 FFmpeg 自动抽取音频并转换为 16kHz 单声道 WAV - **多种导出格式** — 支持 SRT、VTT、ASS 三种字幕格式导出 - **双语导出** — 支持原文 + 译文并排显示的双语字幕导出 - **字幕编辑器** — 内置字幕编辑器,支持逐条修改原文和译文 - **拖拽导入** — 支持拖拽文件快速创建任务 - **任务队列** — 批量处理多个音视频文件,实时查看处理进度 - **双语界面** — 内置中文 / 英文界面切换 - **本地优先** — 语音识别完全在本地运行,无需上传数据 ## 使用流程 1. **选择模式** — 选择「原文」仅做语音识别,或「翻译」模式在识别后自动翻译 2. **添加任务** — 点击「添加任务」按钮或直接拖拽音视频文件到窗口 3. **等待处理** — 任务将依次经历:音频抽取 → VAD 切分 → 语音识别 →(可选)翻译 4. **编辑校对** — 在字幕编辑器中逐条查看、修改识别结果和译文 5. **导出字幕** — 导出为 SRT、VTT 或 ASS 格式 ## 截图 | 示例 | 字幕编辑器 | |:---:|:---:| | ![示例](readme/screenshot-main.png) | ![字幕编辑器](readme/screenshot-editor.png) | ## 安装 从 [GitHub Releases](https://github.com/AndySkaura/crosssubtitle-ai/releases) 下载对应平台的安装包: | 平台 | 安装包 | |:---:|:---:| | macOS (Apple Silicon) | `.dmg` | | Windows | `.exe` (NSIS 安装包) | > 首次启动时需要下载 Whisper 模型(约 500MB),请确保网络通畅。 ## 使用方式 ### 快速开始 1. 打开应用,在顶部工具栏选择工作模式: - **原文** — 仅进行语音识别,输出原文字幕 - **翻译** — 识别后调用 LLM 接口翻译为指定语言 2. 点击「添加任务」或拖拽文件到窗口 3. 等待任务处理完成 4. 在右侧字幕编辑器中查看和修改结果 5. 点击「导出」选择格式保存字幕文件 ### 翻译模式配置 使用翻译功能前需要配置 LLM API: - 在「高级设置」中填入 LLM API Base、API Key 和 Model - 支持任何兼容 OpenAI API 的服务,如: - **智谱 GLM** — 推荐免费使用 GLM-4.7-Flash - **DeepSeek** - **ChatGPT** - **自建服务** — 如 Ollama、vLLM 等 ### 高级设置 - **Whisper 模型路径** — 指定本地 ggml 模型文件路径 - **VAD 模型路径** — 指定本地 Silero VAD ONNX 模型路径 - **批大小 (Batch Size)** — 每批翻译的片段数 (10-15) - **上下文 (Context Size)** — 翻译时参考的上下文片段数 (0-5) ## 开发 ### 环境要求 - [Rust](https://www.rust-lang.org/) 工具链 - [Node.js](https://nodejs.org/) (18+) - [FFmpeg](https://ffmpeg.org/)(需在命令行中可用) - [CMake](https://cmake.org/)(编译 whisper-rs 需要) ### 本地开发 ```bash # 克隆仓库 git clone https://github.com/AndySkaura/crosssubtitle-ai.git cd crosssubtitle-ai # 安装前端依赖 npm install # 启动开发模式 npm run tauri-dev ``` ### 构建 ```bash # macOS DMG 构建 npm run tauri-build-dmg # Windows NSIS 构建 npm run tauri-build-windows ``` ## 技术栈 | 层级 | 技术 | |:---|:---| | 桌面框架 | [Tauri v2](https://v2.tauri.app/) | | 前端框架 | [Vue 3](https://vuejs.org/) + [TypeScript](https://www.typescriptlang.org/) | | 状态管理 | [Pinia](https://pinia.vuejs.org/) | | 样式 | [Tailwind CSS](https://tailwindcss.com/) | | 国际化 | [vue-i18n](https://vue-i18n.intlify.dev/) | | 语音识别 | [whisper-rs](https://github.com/tazz4843/whisper-rs) (Whisper) | | 语音检测 | [ort](https://github.com/pykeio/ort) (Silero VAD ONNX) | | 音频处理 | FFmpeg | | LLM 翻译 | OpenAI-compatible API | ## 项目结构 ``` src/ Vue 前端界面 components/ 组件 (TaskQueue, SubtitleEditor) stores/ Pinia 状态管理 locales/ 国际化文件 (zh-CN, en) lib/ 类型定义 src-tauri/ Rust 后端 src/ audio.rs 音频抽取与 WAV 读取 vad.rs Silero VAD 语音活动检测 whisper.rs Whisper 语音识别接口 translate.rs OpenAI 兼容翻译接口 subtitle.rs SRT / VTT / ASS 导出 task.rs 任务编排与事件广播 state.rs 应用状态 ``` ## 开源协议 本项目基于 [MIT](./LICENSE) 协议开源。 ## 致谢 - [whisper.cpp](https://github.com/ggerganov/whisper.cpp) — 高性能 Whisper 推理实现 - [Silero VAD](https://github.com/snakers4/silero-vad) — 高精度语音活动检测 - [Tauri](https://tauri.app/) — 轻量级桌面应用框架 - 所有贡献者和用户 ---
kuraa 制作