Skip to content

这是一个优化后的VoxCPM文本到语音(TTS)系统,具有更好的模块化结构和扩展性。

Notifications You must be signed in to change notification settings

medrawtan/VoxCPM_srt_inference

Repository files navigation

VoxCPM 优化版 TTS 系统

这是一个优化后的VoxCPM文本到语音(TTS)系统,具有更好的模块化结构和扩展性。VoxCPM是由ModelBest开发的创新端到端TTS模型,旨在生成高度富有表现力的语音。

功能特性

  • 模块化设计,易于扩展和维护
  • 支持多种输入格式(单行文本、文本文件、SRT字幕文件、参考音频目录)
  • 支持语音克隆功能
  • 支持批量处理
  • 完善的日志记录系统
  • 配置管理
  • 单元测试覆盖
  • 支持SRT字幕文件生成

项目结构

VoxCPM/
├── config/                 # 配置文件
│   ├── __init__.py
│   └── settings.py         # 系统配置
├── core/                   # 核心工具
│   ├── __init__.py
│   └── logger.py           # 日志系统
├── scripts/                # 运行脚本
│   └── run_inference.py    # 主程序入口
├── tests/                  # 单元测试
│   ├── __init__.py
│   └── test_text_processor.py
├── voxcpm_inference/       # 核心推理模块
│   ├── __init__.py
│   ├── audio_processor.py  # 音频处理
│   ├── file_handler.py     # 文件处理
│   ├── inference_engine.py # 推理引擎
│   └── text_processor.py   # 文本处理
├── .gitignore              # Git忽略文件
├── .pre-commit-config.yaml # Pre-commit配置
├── CHANGELOG.md            # 更新日志
├── pyproject.toml          # 项目配置
├── README.md               # 项目说明
└── requirements.txt        # 依赖列表

安装依赖

基础环境

确保已安装Python 3.8或更高版本。

安装Python依赖

pip install -r requirements.txt

使用方法

基本用法

python scripts/run_inference.py --text "Hello, this is a test." --output output.wav

批量处理文本文件

python scripts/run_inference.py --text_file input.txt --output_dir outputs/ --batch_process

处理SRT字幕文件

python scripts/run_inference.py --srt_file subtitle.srt --srt_output_dir srt_outputs/

处理参考音频目录

python scripts/run_inference.py --reference_dir reference_audio/ --reference_output_dir reference_outputs/

使用参考音频进行语音克隆

python scripts/run_inference.py --text "Hello, this is a test." --prompt_wav_path reference.wav --prompt_text "Reference text" --output cloned_output.wav

命令行参数详解

  • --text: 要合成的文本
  • --output: 输出wav文件路径
  • --model_name: 模型名称或路径(可选)
  • --prompt_wav_path: 用于语音克隆的参考音频路径
  • --prompt_text: 参考音频对应的文本
  • --batch_process: 启用批量处理模式
  • --text_file: 批量处理的文本文件路径
  • --output_dir: 批量处理的输出目录
  • --reference_dir: 包含参考音频和字幕文件的目录
  • --reference_output_dir: 参考音频处理的输出目录
  • --srt_file: 单个SRT文件路径
  • --srt_output_dir: 单个SRT文件处理的输出目录

配置

可以通过环境变量或直接修改 config/settings.py 文件来配置系统参数:

  • MODEL_NAME: 模型名称或路径 (默认: "OpenBMB/VoxCPM-0.5B")
  • SAMPLE_RATE: 输出音频采样率 (默认: 16000)
  • CFG_VALUE: 控制对提示的遵循程度 (默认: 2.0)
  • INFERENCE_TIMESTEPS: 推理步数,越高结果越好但速度越慢 (默认: 10)
  • NORMALIZE: 是否标准化音频 (默认: True)
  • DENOISE: 是否去噪 (默认: True)
  • RETRY_BADCASE: 是否重试失败案例 (默认: True)
  • RETRY_BADCASE_MAX_TIMES: 最大重试次数 (默认: 3)
  • RETRY_BADCASE_RATIO_THRESHOLD: 重试比率阈值 (默认: 0.75)

代码质量

使用Pre-commit钩子

本项目使用pre-commit钩子来确保代码质量。在提交代码前会自动运行Ruff代码检查和格式化。

安装pre-commit:

pip install pre-commit

设置git钩子:

pre-commit install

手动运行所有钩子:

pre-commit run --all-files

运行测试

python -m pytest tests/

CI/CD

本项目配置了GitLab CI/CD流程,包括:

  1. Linting: 代码风格检查
  2. Testing: 单元测试和覆盖率检查
  3. Building: 构建Python包
  4. Deploying: 自动部署到PyPI(仅master分支)

安装为包

pip install .

安装后可以使用命令行工具:

voxcpm-inference --text "Hello world"

许可证

本项目基于 VoxCPM,相关许可证请参考 VoxCPM 官方仓库

About

这是一个优化后的VoxCPM文本到语音(TTS)系统,具有更好的模块化结构和扩展性。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages