一个基于Flask的智能文本转语音(TTS)服务,集成了说话人识别功能,支持一键式多角色对话生成。
项目演示视频:哔哩哔哩
目前该项目仍处于早期阶段,正在积极开发中。有任何问题欢迎反馈。
- 文本转语音:支持将文本转换为自然流畅的语音
- 说话人识别:基于BERT的说话人识别模型,可自动识别对话中的说话人
- 多角色语音:支持为不同角色分配不同的语音
- 文本预处理:智能分句、引号检测等
- Web API支持:提供RESTful API接口
- 跨平台GUI界面:基于PyQt6的图形界面
- Python <= 3.11
- CUDA支持(用于GPU加速)
- 8GB+ RAM
git clone https://github.com/Warma10032/easytts.git
cd easytts
推荐使用 uv 作为依赖管理工具。
如果你更想用conda/venv来管理环境也是可以的,我们提供了统一的requirements.txt。
uv安装方法:
# 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
确认 uv 已正确安装:
uv --version
创建环境并安装依赖:
# 确保你在项目根目录下运行这个命令
uv sync
# 这个命令将创建一个 `.venv` 虚拟环境,并一键安装好项目所需的包
到 huggingface 下载模型后
将模型文件放置在项目的根目录的 model/chinese-roberta-wwm-ext-large-csi-v1/
目录下
uv run python app.py
服务器默认运行在 http://127.0.0.1:10032
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 - 提供Edge TTS服务支持
- chinese-roberta-wwm-ext-large - 中文预训练BERT模型
- yudiandoris/csi: End-to-End Chinese Speaker Identification - 端到端引文说话人识别模块