Skip to content

打造最简单的TTS前端集合,最简单的有声小说制作工作流。基于正则规则对小说进行分句,基于RoBERTa对小说中的对话进行说话人识别,从而实现一键式生成多人有声小说。多说话人的语音合成,高质量的有声小说制作。

Notifications You must be signed in to change notification settings

uuusssjju/easytts

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EasyTTS

一个基于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

推荐使用 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

启动GUI客户端

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!

致谢

About

打造最简单的TTS前端集合,最简单的有声小说制作工作流。基于正则规则对小说进行分句,基于RoBERTa对小说中的对话进行说话人识别,从而实现一键式生成多人有声小说。多说话人的语音合成,高质量的有声小说制作。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.1%
  • Shell 0.9%