本项目由Cursor编写,代码完全由AI生成,请勿用于商业用途。
这是一个基于Flask的Web应用系统,集成了TTS(文本转语音)和so-vits-svc(语音转换)功能,可以批量将文本转换为具有特定音色的语音。系统采用异步任务处理架构,支持批量处理和实时进度显示。
- 支持单条和批量文本转换
- 可调节音高(pitch)和语速(speed)
- 支持多种音色选择和自定义模型
- Web界面操作简单直观
- 实时显示处理进度
- 完整的错误处理和日志记录
- 支持异步任务处理和队列管理
- Python 3.8+
- Redis 服务器
- CUDA支持(用于so-vits-svc模型)
- 足够的磁盘空间用于存储音频文件
- Flask 2.2.2
- Flask-SQLAlchemy 3.0.2
- Flask-Migrate 4.0.4
- Celery 5.2.7
- Redis 4.5.1
- TTS 0.10.3
- PyTorch (CUDA版本)
- 其他依赖见requirements.txt
# 安装Python 3.8+
sudo apt update
sudo apt install python3.8 python3.8-venv python3-pip
# 安装Redis
sudo apt install redis-server
# 安装CUDA (如果需要)
# 请参考NVIDIA官方文档- 从Python官网下载并安装Python 3.8+
- 从Github下载Redis Windows版本
- 安装CUDA (如果需要)
git clone https://github.com/YansongW/TTS-SVC
cd TTS-SVC- 复制环境变量模板
cp .env.example .env- 编辑.env文件,配置必要的环境变量:
# TTS配置
TTS_MODEL_NAME=tts_models/en/ljspeech/tacotron2-DDC
# SVC配置
SVC_MODEL_PATH=/path/to/your/model.pth
SVC_CONFIG_PATH=/path/to/your/config.json
# Redis配置
REDIS_HOST=localhost
REDIS_PORT=6379
# Flask配置
FLASK_SECRET_KEY=your-secret-key-here系统会自动下载TTS模型,如果需要手动下载:
# 进入虚拟环境
source venv/bin/activate # Linux/Mac
# 或
venv\Scripts\activate # Windows
# 下载模型
python -c "from TTS.api import TTS; TTS.download_model('tts_models/en/ljspeech/tacotron2-DDC')"- 创建模型目录:
mkdir -p so-vits-svc/models
mkdir -p so-vits-svc/configs- 下载预训练模型:
- 访问so-vits-svc releases
- 下载模型文件(.pth)和配置文件(config.json)
- 将文件放入对应目录
# 设置脚本权限
chmod +x scripts/*.sh
# 运行部署脚本
./scripts/deploy.sh# 运行部署脚本
scripts\deploy.bat部署脚本会自动完成:
- 创建虚拟环境
- 安装依赖
- 初始化数据库
- 启动服务
访问 http://localhost:5000 验证系统是否正常运行
- 访问系统主页
- 点击"Upload Single Task"
- 输入文本内容
- 设置转换参数:
- Pitch (音高): 0.5-2.0
- Speed (语速): 0.5-2.0
- Melody (音色): 根据模型支持的音色选择
- 提交任务
- 等待处理完成后下载音频文件
- 准备文本文件:
- 文件格式:txt
- 每行一个文本
- UTF-8编码
- 准备参数配置:
[
{
"pitch": 1.0,
"speed": 1.0,
"melody": "default"
},
{
"pitch": 1.2,
"speed": 0.8,
"melody": "happy"
}
]- 上传文件和配置
- 等待处理完成
- 下载生成的音频文件
# 更新pip
python -m pip install --upgrade pip
# 使用国内镜像
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple- 检查CUDA版本:
nvidia-smi- 确保PyTorch版本与CUDA版本匹配
- 必要时重新安装对应版本的PyTorch
- 检查Redis服务状态:
# Linux/Mac
sudo systemctl status redis
# Windows
net start redis- 检查Redis配置:
redis-cli ping- 重置数据库:
flask db reset
flask db upgrade- 检查日志:
tail -f logs/app.log- 检查Celery状态:
# 查看Celery日志
tail -f logs/celery.log- 重启Celery:
# Linux/Mac
./scripts/start_celery.sh
# Windows
scripts\start_celery.bat- 清理临时文件:
python scripts/cleanup.py- 备份数据库:
python scripts/backup_db.py- 更新依赖:
pip install -r requirements.txt --upgrade- 检查系统状态:
python scripts/check_status.py- 查看资源使用:
python scripts/monitor.py- 修改默认密钥
- 限制上传文件大小
- 配置防火墙
- 定期更新依赖
- 备份重要数据
Q: 如何更换TTS模型? A: 修改.env文件中的TTS_MODEL_NAME,选择其他支持的模型。
Q: 如何训练自己的SVC模型? A: 参考so-vits-svc项目的训练文档,将训练好的模型放入models目录。
Q: 批量任务处理很慢怎么办? A: 调整config.py中的并发设置,增加worker数量。
Q: 如何扩展音色选项? A: 训练新的SVC模型,并更新配置文件。
- Fork项目
- 创建特性分支
- 提交更改
- 发起Pull Request