## 项目概述

ChatTTS-ui 是一个基于 ChatTTS 的本地网页界面，用于将文字合成为语音。它支持中英文和数字混杂，并提供对外 API 接口。项目由 jianchang512 开发，使用 Python 编写，旨在简化 ChatTTS 的使用，让用户无需编写代码即可通过浏览器或 API 调用语音合成功能。

## 核心功能

- **本地网页界面**：通过浏览器访问，提供直观的文本输入和语音合成操作。
- **API 接口**：支持 POST 请求，可编程调用语音合成，返回音频文件路径和下载链接。
- **多语言支持**：支持中文、英文和数字混杂的文本合成。
- **音色控制**：支持预设音色（如 2222、7869 等）和自定义音色种子值。
- **参数调节**：可调整 temperature、top_p、top_k 等生成参数，以及 prompt 控制笑声、停顿等。
- **模型自动下载**：首次启动自动从 Hugging Face 或 ModelScope 下载模型。
- **GPU 加速**：支持 NVIDIA GPU（显存大于 4G）和 CUDA 加速。
- **固定音色文件**：支持 CSV 或 PT 格式的固定音色，便于复现。

## 适用与不适用场景

**适用场景：**
- 需要本地部署的语音合成服务，避免云端依赖。
- 需要批量生成语音的自动化脚本或应用。
- 需要自定义音色和精细控制生成参数的场景。
- 离线或内网环境下的语音合成需求。

**不适用场景：**
- 对语音合成质量要求极高，需要专业级音色的场景（ChatTTS 可能不如商业 TTS）。
- 需要实时流式合成的场景（本项目为一次性生成）。
- 资源受限的设备（如显存小于 4G 的 GPU 或低配 CPU）可能性能不佳。
- 需要多说话人同时合成的复杂场景（本项目主要支持单说话人）。

## 技术架构与依赖

- **编程语言**：Python 3.9-3.11
- **核心依赖**：ChatTTS、PyTorch（2.7.1）、torchaudio、Flask（用于 Web 服务）等。
- **模型来源**：Hugging Face 或 ModelScope（自动选择）。
- **部署方式**：支持源码部署、Windows 预打包版、Docker 容器部署。
- **硬件要求**：CPU 或 NVIDIA GPU（显存 >4G，CUDA 12.8+）。

## 安装与快速开始

### Windows 预打包版
1. 从 [Releases](https://github.com/jianchang512/chatTTS-ui/releases) 下载压缩包。
2. 解压后双击 `app.exe` 即可使用。

### 源码部署（以 Linux 为例）
1. 配置 Python 3.9-3.11 环境。
2. 克隆仓库：`git clone https://github.com/jianchang512/chatTTS-ui .`
3. 创建虚拟环境：`python3 -m venv venv` 并激活。
4. 安装依赖：`pip3 install -r requirements.txt`。
5. 安装 PyTorch（CPU 或 CUDA 版本）。
6. 启动：`python3 app.py`，浏览器自动打开 `http://127.0.0.1:9966`。

### Docker 部署
1. 克隆仓库并进入目录。
2. 运行 `docker compose -f docker-compose.gpu.yaml up -d`（GPU 版）或 `docker compose -f docker-compose.cpu.yaml up -d`（CPU 版）。
3. 访问 `http://<服务器IP>:9966`。

## 典型使用方法

### 网页界面
- 在浏览器打开 `http://127.0.0.1:9966`，输入文本，选择音色和参数，点击合成即可。

### API 调用
```python
import requests
res = requests.post('http://127.0.0.1:9966/tts', data={
  "text": "你好，世界",
  "voice": "2222",
  "temperature": 0.3,
  "top_p": 0.7,
  "top_k": 20,
  "skip_refine": 0,
  "custom_voice": 0
})
print(res.json())
```
返回 JSON 包含 `audio_files` 列表，每个元素有 `filename` 和 `url`。

### 集成到 pyVideoTrans
- 升级 pyVideoTrans 到 1.82+，在设置中填写 ChatTTS 地址，即可在视频翻译中使用。

## 配置与部署要点

- **环境变量**：编辑 `.env` 文件可修改 `WEB_ADDRESS`（默认 `127.0.0.1:9966`）、`compile`、`device`（可选 `cpu`、`mps`、`cuda`）。
- **模型下载**：默认从 ModelScope 下载，若不可用则从 Hugging Face 下载；源码部署时需确保网络可访问。
- **GPU 加速**：需安装 CUDA 12.8+ 和对应 PyTorch 版本；显存小于 4G 时强制使用 CPU。
- **音色文件**：将 CSV 或 PT 文件放入 `speaker` 文件夹即可使用固定音色。
- **局域网访问**：修改 `WEB_ADDRESS` 为 `0.0.0.0:9966` 或具体 IP 以允许局域网访问。

## 限制、风险与许可证

- **许可证**：仓库资料未提供明确许可证（NOASSERTION），使用前请谨慎。
- **模型下载**：首次启动需下载模型，网络不稳定可能导致失败。
- **硬件要求**：GPU 加速需要 NVIDIA 显卡和 CUDA，否则性能受限。
- **音色一致性**：同一音色种子在不同设备或不同次合成可能产生差异。
- **安全风险**：Windows 预打包版可能被杀毒软件误报，建议源码部署。
- **依赖风险**：依赖 PyTorch 等第三方库，版本更新可能带来兼容性问题。

## 官方链接

- GitHub 仓库：https://github.com/jianchang512/ChatTTS-ui
- Releases：https://github.com/jianchang512/chatTTS-ui/releases
- 原始 ChatTTS 项目：https://github.com/2noise/chattts
- 音色下载参考：https://github.com/6drf21e/ChatTTS_Speaker

## 信息来源和分析时间

- 信息来源：GitHub 仓库 README（https://github.com/jianchang512/ChatTTS-ui）
- 分析时间：2026-06-14（基于最新 Release 日期）