Files
tts-server/README.md
2025-11-05 10:37:09 +08:00

152 lines
8.0 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.
# AI 字幕 & 配音终极工具套件 (AI Subtitle & Dubbing Ultimate Toolkit)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
这是一个为视频创作者、翻译组和内容生产者设计的桌面端应用程序套件,旨在通过 AI 技术全方位优化和自动化字幕处理与配音合成流程。从文本内容的初步精炼,到听感的节奏优化,再到最终的 AI 配音合成,本套件提供了一站式解决方案。
## 🌟 核心功能
* **智能文本精炼**: 利用本地大语言模型 (Ollama) 自动润色、精炼字幕文本,去除口语化、冗余词,使其更符合书面语和专业配音风格。
* **听感节奏优化**: 独创的算法,基于黄金语速模型,智能地压缩、拆分、缝合字幕,解决语速过快或过慢的问题,极大提升观众的听感体验。
* **交互式精细编辑**: 提供可视化界面,让你逐句对比、修改、润色字幕,并可随时调用 AI 进行单句优化,实现对最终成品的高度掌控。
* **一键式 AI 配音**: 集成 Microsoft Edge TTS能够根据优化后的字幕时间轴自动生成高质量、语速匹配的 AI 配音,并将其与视频一键合成。
* **高度可定制化**: 所有核心参数如黄金语速、停顿时间、LLM 模型等)均可配置,满足不同场景下的个性化需求。
* **本地化与隐私**: 所有 AI 计算LLM均通过 Ollama 在本地完成,无需将你的字幕内容上传到云端,确保数据安全和隐私。
## 🛠️ 工具套件构成
本套件包含以下几个独立的、但可串联使用的图形化工具:
| 文件名 | 工具名称 | 主要功能 |
| :-------------------------------- | :-------------------------- | :----------------------------------------------------------- |
| `srt_refiner_v1.py` | **字幕内容批量精炼师** | **[第一步]** 对整个 SRT 文件进行全自动、批量的文本内容润色。 |
| `srt_interactive_refiner_v1.0.py` | **交互式字幕编辑器** | **[第二步]** 手动精修和校对字幕,可对单句进行 AI 润色或自定义修改。 |
| `srt_ultimate_optimizer_v4.0.py` | **终极字幕优化器** | **[第三步]** 核心工具,对字幕的**时间轴和结构**进行深度优化,调整语速和节奏。 |
| `srt_optimizer_v2.py` | **字幕听感优化器 (轻量版)** | **[备选]** `ultimate` 的无 LLM 替代版,纯粹基于规则进行节奏优化,速度更快。 |
| `main_v1.py` | **AI 视频配音合成工具** | **[第四步]** 读取最终优化好的 SRT 文件,生成配音并与视频合成。 |
## 🚀 技术栈
* **GUI 框架**: `Python` + `Tkinter`
* **UI 主题**: `sv-ttk` (提供现代化的深色/浅色主题)
* **大语言模型 (LLM) 支持**: `Ollama` (本地部署,支持 Gemma, Llama, Qwen 等模型)
* **文本转语音 (TTS)**: `edge-tts` (调用微软 Edge 浏览器的高质量 TTS 引擎)
* **音视频处理**: `FFmpeg` (业界标准的音视频处理库)
* **异步处理**: `asyncio`, `threading`, `queue` (确保 GUI 流畅不卡顿)
## 📦 安装与配置
在开始使用前,请确保你的系统已完成以下环境配置。
### 1. 先决条件
* **Python 3.8+**: [下载 Python](https://www.python.org/downloads/)
* **FFmpeg**:
* 必须安装并将其添加到系统的环境变量 (PATH) 中。
* Windows 用户可以从 [gyan.dev](https://www.gyan.dev/ffmpeg/builds/) 下载,解压后将 `bin` 目录路径添加到环境变量。
* macOS 用户可通过 Homebrew 安装: `brew install ffmpeg`
* Linux 用户可通过包管理器安装: `sudo apt-get install ffmpeg`
* **Ollama (可选,但强烈推荐)**:
* 用于驱动文本精炼和部分优化功能。
* 访问 [Ollama 官网](https://ollama.com/) 下载并安装。
* 安装后,必须至少拉取一个模型,推荐使用 `qwen:14b``llama3`
```bash
ollama pull qwen:14b
```
### 2. 安装 Python 依赖库
为了方便管理,建议将以下内容保存为 `requirements.txt` 文件:
```
# requirements.txt
sv-ttk
jieba
requests
edge-tts
pysrt
```
然后通过 pip 一键安装:
```bash
pip install -r requirements.txt
```
## 📖 使用指南与推荐工作流程
每个工具都可以独立运行,但遵循以下流程可以获得最佳效果。
### 运行方式
在你的终端或命令行中,使用 `python` 命令运行指定的脚本文件,例如:
```bash
python srt_refiner_v1.py
```
### 推荐工作流程
假设你有一个从视频自动生成的原始字幕文件 `raw.srt`。
#### **第 1 步:内容批量精炼 (可选)**
* **工具**: `srt_refiner_v1.py` (字幕内容批量精炼师)
* **目的**: 快速去除原始字幕中的口语化表达和错误。
* **操作**:
1. 运行 `python srt_refiner_v1.py`。
2. 加载 `raw.srt` 文件。
3. 选择一个已下载的 Ollama 模型。
4. 点击 "开始精炼",等待处理完成。
5. 保存为 `refined.srt`。
#### **第 2 步:交互式精修校对**
* **工具**: `srt_interactive_refiner_v1.0.py` (交互式字幕编辑器)
* **目的**: 手动检查、修改和完善字幕文本,确保内容准确无误。
* **操作**:
1. 运行 `python srt_interactive_refiner_v1.0.py`。
2. 加载 `refined.srt`。
3. 在右侧工作区逐行检查字幕。你可以:
* 直接在下方的编辑框中修改文本。
* 点击 "润色" 按钮,让 AI 单独优化当前行。
* 点击 "还原文本" 恢复到原始版本。
* 点击 "删除此行" 移除不必要的字幕。
4. 全部检查完毕后,点击 "另存为...",保存为 `final_text.srt`。
#### **第 3 步:优化听感与节奏**
* **工具**: `srt_ultimate_optimizer_v4.0.py` (终极字幕优化器)
* **目的**: 这是最关键的一步,它不修改文本,而是重塑字幕的**时间结构**,使其听起来更自然、流畅。
* **操作**:
1. 运行 `python srt_ultimate_optimizer_v4.0.py`。
2. 加载 `final_text.srt`。
3. 勾选 "启用LLM进行文本缩减"(如果需要),并选择模型。
4. 点击 "开始优化"。软件会自动执行以下操作:
* **压缩**: 将语速过慢的短句时长缩短到黄金语速。
* **借时**: 当句子过快时,向后借用空隙时间。
* **缩减**: 如果借时不够,尝试用 LLM 缩短句子。
* **拆分**: 将过长或过快的句子,按标点或语义拆分成多个短句,并加入自然停顿。
* **缝合**: 将时长过短、字数过少的碎片化字幕合并成一句。
5. 优化完成后,在右侧预览效果,然后点击 "另存为...",保存为 `optimized.srt`。
> **轻量版备选方案**: 如果你不想使用 LLM 或者追求更快的处理速度,可以使用 `srt_optimizer_v2.py`。它只包含基于规则的压缩、拆分和缝合功能。
#### **第 4 步:生成 AI 配音并合成视频**
* **工具**: `main_v1.py` (AI 视频配音合成工具)
* **目的**: 将最终完美的字幕转化为语音,并与原始视频合成。
* **操作**:
1. 运行 `python main_v1.py`。
2. 选择 `optimized.srt` 作为 SRT 文件。
3. 选择你的原始视频文件。
4. 选择一个喜欢的配音员声音,可以点击 "试听"。
5. 根据需要配置其他选项(如保留原声、烧录字幕等)。
6. 点击 "开始生成"。工具会:
* 为每一句字幕并发生成语音片段,并根据时长自动调整语速。
* 将所有语音片段精确地合并成一条完整的音轨。
* 最后,将新音轨与视频合成,输出最终的配音版视频。
---