5.3 KiB
5.3 KiB
TTS项目开发规范
📁 项目结构规范
/root/tts/
├── 🎯 核心功能目录
│ ├── fish-speech/ # Fish Speech官方源码(核心TTS引擎)
│ ├── VoxCPM/ # VoxCPM官方源码(备用TTS引擎)
│ └── F5-TTS/ # F5-TTS官方源码(实验性引擎)
│
├── 🛠️ 开发脚本目录
│ └── scripts/
│ ├── generate/ # 音频生成脚本(核心功能)
│ └── tools/ # 辅助工具脚本
│
├── 📚 文档目录
│ └── docs/ # 项目文档
│
├── 🔊 音频目录
│ ├── audio/ # 分类音频文件
│ │ ├── reference/ # 参考音频
│ │ └── output/ # 生成音频
│ └── audio_files/ # 历史音频文件
│
└── 📦 素材目录
└── material/ # 训练素材和配置
🎯 核心脚本清单
必须保留的核心脚本(12个)
🎵 音频生成脚本 (scripts/generate/)
fish_speech_cli.py- 主要CLI工具 ⭐⭐⭐generate_final.py- 最终生成脚本 ⭐⭐⭐real_fish_speech.py- 真实Fish Speech实现 ⭐⭐⭐fish_speech_direct_cli.py- 直接CLI工具 ⭐⭐create_30s_demo.py- 30秒音频演示 ⭐⭐final_cli_demo.py- 最终CLI演示 ⭐⭐generate_default_voice.py- 默认音色生成 ⭐⭐generate_with_app.py- 应用接口生成 ⭐⭐
🛠️ 工具脚本 (scripts/tools/)
final_summary.py- 最终总结工具 ⭐⭐⭐check_audio.py- 音频检查工具 ⭐⭐verify_env.py- 环境验证工具 ⭐⭐
📚 文档文件 (docs/)
CLI_COMMANDS.md- CLI使用指南 ⭐⭐⭐
🚫 禁止保留的文件类型
❌ 立即删除的文件类别
- 测试脚本 - 文件名包含
test_、debug_、simple_ - 概念验证 - 文件名包含
concept_、demo_ - 临时脚本 - 文件名包含
temp_、tmp_ - 重复实现 - 功能相同的多个版本
- 空文件 - 大小为0字节的文件
- 过渡版本 - 标记为
old_、backup_的文件
📋 开发流程规范
🔄 开发新功能时
- 需求分析 → 在
docs/创建需求文档 - 设计阶段 → 确定脚本归属 (
generate/或tools/) - 命名规范 → 使用清晰的描述性名称
- 代码实现 → 遵循现有代码风格
- 测试验证 → 使用临时脚本测试,完成后删除
- 文档更新 → 更新相关使用文档
📝 脚本命名规范
# ✅ 正确命名
fish_speech_cli.py # 功能_工具类型.扩展名
generate_final.py # 功能_版本.扩展名
check_audio.py # 动作_对象.扩展名
# ❌ 错误命名
test_123.py # 无意义的数字
temp_script.py # 临时文件标识
demo_v1_old.py # 版本混乱
🏗️ 代码组织规范
脚本结构模板
#!/usr/bin/env python3
"""
[脚本功能描述]
Author: [作者]
Date: [日期]
Version: [版本号]
Usage:
python script_name.py [参数]
"""
import os
import sys
import argparse
from pathlib import Path
# 配置常量
PROJECT_ROOT = Path(__file__).parent.parent.parent
AUDIO_OUTPUT_DIR = PROJECT_ROOT / "audio" / "output"
def main():
"""主函数"""
pass
if __name__ == "__main__":
main()
🔧 环境配置规范
📦 依赖管理
- 核心依赖: Fish Speech、VoxCPM官方依赖
- 开发依赖: pytest、black、flake8
- 环境隔离: 使用虚拟环境
🌍 环境变量
TTS_PROJECT_ROOT=/root/tts
FISH_SPEECH_MODEL_PATH=/root/tts/fish-speech
DEFAULT_AUDIO_OUTPUT=/root/tts/audio/output
📊 质量控制规范
✅ 代码质量检查
- 功能完整性 - 确保实现预期功能
- 错误处理 - 包含异常处理机制
- 日志记录 - 关键操作有日志输出
- 参数验证 - 输入参数有效性检查
- 资源清理 - 临时文件和资源释放
🧪 测试要求
- 单元测试 - 核心函数功能测试
- 集成测试 - 完整流程测试
- 边界测试 - 极端情况处理
- 性能测试 - 生成速度和质量评估
📈 版本管理规范
🏷️ 版本号规则
- 主版本号: 重大功能变更 (1.x.x → 2.x.x)
- 次版本号: 新功能添加 (1.0.x → 1.1.x)
- 修订号: Bug修复 (1.0.0 → 1.0.1)
📝 更新日志格式
## [1.2.0] - 2024-XX-XX
### 新增
- 新增批量生成功能
- 新增音频格式转换
### 修复
- 修复内存泄漏问题
- 修复参数解析错误
### 删除
- 移除废弃的旧版本CLI
🎯 项目目标
🏆 核心目标
- 高质量TTS - 提供清晰、自然的语音合成
- 易用性 - 简单的命令行接口
- 可扩展 - 支持多种TTS引擎
- 高性能 - 快速生成,低资源占用
📋 发展路线
- Phase 1: 完善Fish Speech集成
- Phase 2: 添加Web界面
- Phase 3: 支持实时流式TTS
- Phase 4: 多语言支持
📞 联系和支持
- 技术问题: 查看docs/目录相关文档
- Bug报告: 在项目Issues中提交
- 功能建议: 在项目Discussions中讨论
最后更新: 2024-12-25 版本: v1.0.0