https://github.com/warma10032/easytts
打造最简单的TTS前端集合,最简单的有声小说制作工作流。基于正则规则对小说进行分句,基于RoBERTa对小说中的对话进行说话人识别,从而实现一键式生成多人有声小说。多说话人的语音合成,高质量的有声小说制作。
https://github.com/warma10032/easytts
ai audio-generation nlp pyqt speaker-identification tts
Last synced: 4 months ago
JSON representation
打造最简单的TTS前端集合,最简单的有声小说制作工作流。基于正则规则对小说进行分句,基于RoBERTa对小说中的对话进行说话人识别,从而实现一键式生成多人有声小说。多说话人的语音合成,高质量的有声小说制作。
- Host: GitHub
- URL: https://github.com/warma10032/easytts
- Owner: Warma10032
- Created: 2025-03-05T14:39:04.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-03-29T16:19:03.000Z (6 months ago)
- Last Synced: 2025-03-29T17:26:05.919Z (6 months ago)
- Topics: ai, audio-generation, nlp, pyqt, speaker-identification, tts
- Language: Python
- Homepage:
- Size: 25.3 MB
- Stars: 20
- Watchers: 1
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# EasyTTS
一个基于Flask的智能文本转语音(TTS)服务,集成了说话人识别功能,支持一键式多角色对话生成。
项目演示视频:[哔哩哔哩](https://www.bilibili.com/video/BV1eoQfY8Ezc)
目前该项目仍处于早期阶段,正在积极开发中。有任何问题欢迎反馈。
## 功能特点
- 文本转语音:支持将文本转换为自然流畅的语音
- 说话人识别:基于BERT的说话人识别模型,可自动识别对话中的说话人
- 多角色语音:支持为不同角色分配不同的语音
- 文本预处理:智能分句、引号检测等
- Web API支持:提供RESTful API接口
- 跨平台GUI界面:基于PyQt6的图形界面## 系统要求
- Python <= 3.11
- CUDA支持(用于GPU加速)
- 8GB+ RAM## 安装说明
### 克隆仓库
```bash
git clone https://github.com/Warma10032/easytts.git
cd easytts
```### 安装UV
推荐使用 [uv](https://docs.astral.sh/uv/) 作为依赖管理工具。
如果你更想用conda/venv来管理环境也是可以的,我们提供了统一的requirements.txt。
uv安装方法:
```bash
# Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# 安装完成后按提示设置环境变量# macOS/Linux:
# 方法1: curl
curl -LsSf https://astral.sh/uv/install.sh | sh
# 方法2: wget
wget -qO- https://astral.sh/uv/install.sh | sh# 重要:安装完成后请运行以下命令重新加载配置文件,或者重启命令行 / IDE
source ~/.bashrc # 如果使用 bash
source ~/.zshrc # 如果使用 zsh
```更多 uv 安装方法参考:[Installing uv](https://docs.astral.sh/uv/getting-started/installation/)
确认 uv 已正确安装:
```bash
uv --version
```### 安装依赖
创建环境并安装依赖:
```bash
# 确保你在项目根目录下运行这个命令
uv sync
# 这个命令将创建一个 `.venv` 虚拟环境,并一键安装好项目所需的包
```### 下载模型文件
到 [huggingface](https://huggingface.co/Warma10032/chinese-roberta-wwm-ext-large-csi-v1/) 下载模型后
将模型文件放置在项目的根目录的 `model/chinese-roberta-wwm-ext-large-csi-v1/` 目录下
## 使用方法
### 启动服务器
```bash
uv run python app.py
```服务器默认运行在 `http://127.0.0.1:10032`
### 启动GUI客户端
```bash
uv run python main.py
```## 项目结构
```
.
├── app.py # Flask服务器主程序
├── main.py # GUI客户端主程序
├── src/
│ ├── client/ # TTS客户端实现
│ ├── speaker_identification/ # 说话人识别模块
│ ├── ui/ # GUI界面定义
│ └── utils.py # 工具函数
└── cache/ # 缓存目录
├── audio/ # 音频文件缓存
├── text/ # 文本文件缓存
└── speaker_identification/ # 说话人识别结果缓存
```## 许可证
Apache-2.0
## 贡献
欢迎提交Issue和Pull Request!
## 致谢
- [Edge-TTS](https://github.com/rany2/edge-tts) - 提供Edge TTS服务支持
- [chinese-roberta-wwm-ext-large](https://github.com/ymcui/Chinese-BERT-wwm) - 中文预训练BERT模型
- [yudiandoris/csi: End-to-End Chinese Speaker Identification](https://github.com/yudiandoris/csi) - 端到端引文说话人识别模块