Files
Trading_Studio/README.md
T

221 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Trading Studio
**本地量化交易复盘 → B 站长视频配音生产流水线**
Trading Studio 是一套运行在 Ubuntu 物理服务器(RTX 3060 Ti)上的自动化配音系统,专为数字资产量化交易员设计。通过「盲录碎碎念 → 本地 GPU 识别 → 局域网大模型严厉润色 → 本地 GPU 声音克隆」的闭环,高效产出 B 站反思类长视频配音,辅助交易纪律的自我进化。
**Git 仓库:** https://git.bz121.com/dekun/Trading_Studio.git
---
## 系统定位
| 环节 | 技术栈 | 运行位置 |
|------|--------|----------|
| 碎碎念录音转写 | Faster-Whisper (CUDA float16) | 本地 3060 Ti |
| 纪律审判式润色 | Gemma4 Abliterated @ Ollama | 局域网 `192.168.8.64` |
| 固定音色配音 | ChatTTS (CUDA) | 本地 3060 Ti |
| Web 中控 | Gradio | 端口 **5683** |
---
## 架构说明
```
┌─────────────────────────────────────────────────────────────┐
│ Gradio 中控 (app.py:5683) │
├──────────────┬──────────────────────┬───────────────────────┤
│ 音色锁定 │ 音频识别 │ 润色 + 合成 │
│ tts_service │ whisper_service │ llm_service │
│ │ │ tts_service │
└──────┬───────┴──────────┬───────────┴──────────┬────────────┘
│ │ │
▼ ▼ ▼
speaker_emb.pt Faster-Whisper Ollama HTTP
(本地持久化) CUDA / small 192.168.8.64:11434
gemma-4-abliterated
```
### 模块解耦
| 文件 | 职责 |
|------|------|
| `config.py` | Ollama 地址、模型名、Prompt、路径等全局配置 |
| `whisper_service.py` | Faster-Whisper CUDA 转写 |
| `llm_service.py` | 远程 Ollama HTTP 非流式润色 |
| `tts_service.py` | ChatTTS 音色提取与 wav 合成 |
| `app.py` | Gradio 前端与流程编排 |
---
## 快速开始
> 完整环境配置请参阅 [DEPLOY.md](./DEPLOY.md)
### 一键部署(生产环境推荐)
**root** 用户部署到 `/opt/Trading_Studio` 并由 PM2 常驻:
```bash
sudo -i
git clone https://git.bz121.com/dekun/Trading_Studio.git /opt/Trading_Studio
cd /opt/Trading_Studio
chmod +x deploy.sh
bash deploy.sh
```
浏览器访问:`http://<服务器IP>:5683`
日常更新:
```bash
cd /opt/Trading_Studio && bash deploy.sh update
```
### 手动部署(开发调试)
```bash
git clone https://git.bz121.com/dekun/Trading_Studio.git /opt/Trading_Studio
cd /opt/Trading_Studio
python3 -m venv venv
source venv/bin/activate
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txt
python app.py
```
---
## 使用流程
### 首次使用:锁定音色
1. 进入 **「音色锁定」** 标签页
2. 上传 10-30 秒干净人声参考(你的碎碎念盲录样本)
3. (可选)填写参考音频的精确转写,提升 zero-shot 还原度
4. 点击 **锁定音色** → 生成 `speaker_emb.pt`
### 日常生产
**方式 A — 分步操作:**
1. **音频极速识别**:上传复盘录音 → Whisper 转写
2. **Gemma4 纪律审判**:一键润色,生成逻辑清晰、语气严厉的反思稿
3. **ChatTTS 合成**:输出 24kHz `.wav` 成品配音
**方式 B — 一键生产:**
上传录音后点击 **启动全流程**,系统自动串联三步。
---
## 核心配置(config.py
| 配置项 | 默认值 |
|--------|--------|
| 中控端口 | `5683``0.0.0.0` 局域网可访问) |
| Ollama 地址 | `http://192.168.8.64:11434` |
| 模型名称 | `huihui_ai/gemma-4-abliterated:e4b` |
| Whisper 模型 | `small` / CUDA / float16 |
| 音色文件 | `speaker_emb.pt` |
| 音频输出 | `outputs/` 目录 |
---
## PM2 守护运行
标准路径 `/opt/Trading_Studio`root 用户:
```bash
# 一键部署 + PM2 启动(推荐)
cd /opt/Trading_Studio && bash deploy.sh
# 或手动 PM2
pm2 start ecosystem.config.js
# 常用管理
pm2 status
pm2 logs trading_studio
bash deploy.sh restart # 重启
bash deploy.sh update # 拉代码 + 更新依赖 + 重启
pm2 save && pm2 startup # 开机自启(deploy.sh 已自动配置)
```
---
## .gitignore 配置
提交 Git 时请确保忽略以下产物(已在 `.gitignore` 中预设):
```gitignore
venv/
*.wav
*.pt
*.log
uploads/
outputs/
```
**说明:**
- `venv/` — Python 虚拟环境,每台机器独立创建
- `*.wav` — 录音与合成音频,体积大且含隐私
- `*.pt` — ChatTTS 音色 Embedding 与模型权重
- `*.log` — 运行日志
---
## 目录结构
```
Trading_Studio/
├── deploy.sh # 一键部署脚本(/opt + PM2
├── app.py # Gradio 主入口
├── config.py # 全局配置
├── whisper_service.py # Whisper CUDA 识别
├── llm_service.py # Ollama 远程润色
├── tts_service.py # ChatTTS 音色与合成
├── ecosystem.config.js # PM2 守护配置
├── requirements.txt # Python 依赖
├── README.md # 本文件
├── DEPLOY.md # 部署指南(含一键部署教程)
├── PWA_NPS.md # 云服务器反代 + NPS 穿透 + PWA 安装教程
├── .gitignore
├── speaker_emb.pt # 音色文件(运行时生成,不入库)
├── uploads/ # 上传临时目录
└── outputs/ # 合成 wav 输出
```
**生产标准路径:** `/opt/Trading_Studio`
---
## 硬件要求
- **GPU** NVIDIA RTX 3060 Ti8GB 显存,建议锁定 120W 功耗墙)
- **系统:** Ubuntu 22.04 / 24.04 LTS
- **CUDA** 12.1+(与 PyTorch cu121 匹配)
- **局域网:** 可访问 `192.168.8.64:11434` 的 Ollama 节点
---
## 常见问题
**Q: Whisper 报 CUDA 错误?**
A: 确认 `nvidia-smi` 正常,且未同时运行其他占显存任务。Whisper 使用 `float16` 已针对 8GB 优化。
**Q: Ollama 连接失败?**
A: 在服务器上执行 `curl http://192.168.8.64:11434/api/tags` 验证连通性,确认模型已 `ollama pull`
**Q: TTS 音色不稳定?**
A: 重新锁定音色,填写参考音频精确转写,并保持 `temperature=0.3` 低随机性。
**Q: 合成音频为空或噪声?**
A: 检查润色文本长度(过短可能导致异常),确认 `speaker_emb.pt` 存在且有效。
---
## License
Private — 仅供个人量化交易复盘使用。