🎙️ Llasa-TTS-8B WebUI演示
  ](https://www.docker.com/) 
基于Llasa-8B的高质量文本转语音系统,具有智能GPU内存管理
✨ 特性
- 🚀 智能GPU管理:延迟加载+即时卸载,将空闲GPU内存减少96%(从24GB减少到\<1GB)
- 🎨 三种访问模式:Web UI(Gradio)+REST API(Flask)+MCP(模型上下文协议)
- 🔄 自动GPU选择:自动选择内存使用最少的GPU
- 🌍 多语言支持:中文、英文和混合语言语音生成
- 🎭 语音克隆:基于参考音频的高质量语音克隆
- 🐳 一键部署:Docker+Docker组合用于生产就绪部署
- ⚡ 优化性能:ASR更快的Whisper,比官方Whisper快500%
📋 目录
🚀 快速开始
先决条件
- Linux系统(建议使用Ubuntu 20.04+)
- 英伟达GPU(24GB+VRAM)
- Docker+Docker编写+nvidia Docker
一次指令发射
git clone https://github.com/yourusername/llasa-tts-8b-webui.git
cd llasa-tts-8b-webui
chmod +x start.sh
./start.sh访问服务:
- Web用户界面: http://localhost:7860
- API: http://localhost:7861
- API文件: http://localhost:7861/apidocs
📦 安装
方法一:Docker部署(推荐)
步骤1:克隆存储库
git clone https://github.com/yourusername/llasa-tts-8b-webui.git
cd llasa-tts-8b-webui步骤2:配置环境
cp .env.example .env
# Edit .env to set your configuration步骤3:启动服务
./start.sh脚本将:
- ✅ 检查Docker环境
- ✅ 自动选择最不繁忙的GPU
- ✅ 构建Docker镜像
- ✅ 启动容器
- ✅ 显示访问信息
Docker编写示例:
version: '3.8'
services:
llasa-tts-webui:
image: llasa-tts-8b:latest
container_name: llasa-tts-8b-webui
deploy:
resources:
reservations:
devices:
- driver: nvidia
device_ids: ['0']
capabilities: [gpu]
ports:
- "7860:7860" # Web UI
- "7861:7861" # REST API
volumes:
- ./models_cache:/root/.cache/huggingface
- ./outputs:/app/outputs
environment:
- GPU_IDLE_TIMEOUT=600
- HF_ENDPOINT=https://hf-mirror.com
restart: unless-stoppedDocker运行命令:
docker run -d \
--name llasa-tts-8b \
--gpus '"device=0"' \
-p 7860:7860 \
-p 7861:7861 \
-v $(pwd)/models_cache:/root/.cache/huggingface \
-v $(pwd)/outputs:/app/outputs \
-e GPU_IDLE_TIMEOUT=600 \
llasa-tts-8b:latest方法2:康达环境
第一步:营造环境
conda create -n llasa-tts python=3.9
conda activate llasa-tts步骤2:安装依赖项
pip install -r requirements.txt步骤3:运行应用程序
python main.py访问权限:http://localhost:7860
⚙️ 配置
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
GPU_IDLE_TIMEOUT | 600 | GPU空闲超时(秒) |
UI_PORT | 7860 | Web UI端口 |
API_PORT | 7861 | REST API端口 |
HF_TOKEN | - | 拥抱脸令牌(可选) |
HF_ENDPOINT | https://hf-mirror.com | 拥抱面镜 |
LLASA_MODEL_PATH | HKUSTAudio/Llasa-8B | Llasa模型路径 |
XCODEC_MODEL_PATH | HKUSTudio/xcodec2 | xcodec2模型路径 |
WHISPER_MODEL_PATH | Systran/faster-whisper-large-v3 | whisper模型路径 |
配置文件
创建 .env 从模板:
cp .env.example .env编辑 .env:
# GPU Configuration
NVIDIA_VISIBLE_DEVICES=0
GPU_IDLE_TIMEOUT=600
# Port Configuration
UI_PORT=7860
API_PORT=7861
# HuggingFace Configuration
HF_ENDPOINT=https://hf-mirror.com
# HF_TOKEN=your_token_here
# Model Paths (optional, use local models)
# LLASA_MODEL_PATH=/path/to/Llasa-8B
# XCODEC_MODEL_PATH=/path/to/xcodec2📖 用法
Web用户界面
- 打开http://localhost:7860
- 上传参考音频(15-20秒,WAV格式)
- 点击“自动转录”或手动输入参考文本
- 输入要生成的目标文本
- 点击“生成语音”
REST API
健康检查:
curl http://localhost:7861/health生成语音:
curl -X POST http://localhost:7861/api/tts \
-F "audio=@reference.wav" \
-F "ref_text=Reference audio text" \
-F "target_text=Text to generate" \
--output generated.wavGPU状态:
curl http://localhost:7861/api/gpu/status手动卸载:
curl -X POST http://localhost:7861/api/gpu/offloadMCP(模型上下文协议)
运行MCP服务器:
docker exec -it llasa-tts-8b-webui python mcp_server.py或者在主机上:
python mcp_server.py可用工具:
generate_speech()-生成语音transcribe_audio()-转录音频get_gpu_status()-获取GPU状态offload_gpu()-卸载GPU内存release_gpu()-完全释放GPU
📚 API文档
端点
| 方法 | 端点 | 描述 |
|---|---|---|
| 得到 | /health | 健康检查 |
| 得到 | /api/gpu/status | 获取GPU状态 |
| 职位 | /api/gpu/offload | 将模型卸载到CPU |
| 职位 | /api/gpu/release | 发布所有型号 |
| 职位 | /api/transcribe | 转录音频(ASR) |
| 职位 | /api/tts | 生成语音(TTS) |
| 得到 | /apidocs | Swagger文档 |
API示例
看 API文档 用于交互式示例。
🛠️ 技术栈
核心技术
- PyTorch 2.6.0 -深度学习框架
- 变压器4.45.2 -模型加载
- 等级 4.0+ -Web用户界面
- 烧瓶3.0.0 -REST API
- FastMCP -MCP服务器
模型
- 拉萨-8B -语音生成(~17GB)
- Xcodec 2 -音频编解码器(~3GB)
- 更快的耳语 -语音识别(~3GB,CPU)
部署
- 码头工人 -集装箱化
- Docker Compose -编排
- NVIDIA Docker -GPU支持
📊 演出
GPU内存使用情况
| 阶段 | 传统 | 智能管理 | 储蓄 |
|---|---|---|---|
| 启动 | 24 GB | 0 GB | 100% |
| 正在运行 | 24 GB | 24 GB | 0% |
| 空闲 | 24 GB | \<1 GB | 96% |
加载时间(RTX 4090)
- 首次加载:20-30秒
- CPU → GPU:2-5秒
- GPU → CPU:2秒
- 完全释放:1秒
🤝 贡献
欢迎投稿!请按照以下步骤操作:
- 复刻仓库
- 创建功能分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add some AmazingFeature') - 推到分支(
git push origin feature/AmazingFeature) - 打开拉取请求
📝 更新日志
v1.0.0(2025-12-06)
- ✨ 初始版本
- 🚀 智能GPU内存管理
- 🎨 三种访问模式(UI+neneneba API+MCP)
- 🔄 自动GPU选择
- 🐳 Docker部署
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
备注:模型和依赖项有自己的许可证:
🙏 致谢
- 原始项目: 香港科技大学录音室/Llasa-8B
- 感谢所有贡献者和开源社区
📞 联系与支持
- 📧 问题:
- 💬 讨论:
⭐ 明星历史

📱 关注我们
______________________________________________________________________
Made with ❤️ by the Llasa-TTS-8B Team
