crosssubtitle-ai/README.md
2026-05-06 15:15:54 +08:00

178 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<picture>
<source media="(prefers-color-scheme: dark)" srcset="readme/videosub.png">
<img src="readme/videosub.png" alt="CrossSubtitle-AI 截图" width="100%">
</picture>
<div align="center">
# 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) · **简体中文**
</div>
---
## 简介
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 安装包) |
## 使用方式
### 快速开始
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/) — 轻量级桌面应用框架
- 所有贡献者和用户
---
<div align="center">
<a href="https://kuraa.cc">kuraa</a> 制作
</div>