Files
qiming/qiming-mcp-proxy/voice-cli/INDEXTTS_SETUP.md
2026-06-01 13:03:20 +08:00

8.6 KiB
Raw Permalink Blame History

IndexTTS 安装和配置指南

概述

本指南介绍如何安装和配置 IndexTTS 环境,用于 voice-cli 项目的文本转语音功能。IndexTTS 是一个基于 GPT 的高质量文本转语音系统,支持中文和英文。

系统要求

  • 操作系统: macOS 或 Linux
  • Python: 3.10.x (必须使用 3.10 版本)
  • 内存: 至少 8GB RAM
  • 存储: 至少 5GB 可用空间(用于模型文件)
  • 网络: 稳定的互联网连接(用于下载模型)
  • 包管理器: uv (推荐) 或 pip

快速安装

1. 自动安装(推荐)

运行自动安装脚本:

cd /path/to/voice-cli
./install_indextts.sh

这个脚本会自动处理:

  • 系统要求检查
  • Python 3.10 安装
  • uv 包管理器安装
  • 虚拟环境创建
  • PyTorch 安装
  • IndexTTS 从源码安装
  • 模型文件下载
  • 参考语音文件创建
  • 环境测试

2. 手动安装

如果自动安装失败,可以按照以下步骤手动安装:

2.1 安装系统依赖

macOS:

brew install python@3.10 ffmpeg git

Linux (Ubuntu/Debian):

sudo apt-get update
sudo apt-get install python3.10 python3.10-venv ffmpeg git

2.2 安装 uv 包管理器

curl -LsSf https://astral.sh/uv/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"

2.3 创建虚拟环境

cd /path/to/voice-cli
python3.10 -m venv .venv
source .venv/bin/activate

2.4 安装 PyTorch

uv add torch torchaudio --index-url https://download.pytorch.org/whl/cpu

2.5 安装 IndexTTS

git clone https://github.com/index-tts/index-tts.git /tmp/index-tts
cd /tmp/index-tts
pip install -e .
cd /path/to/voice-cli

2.6 下载模型

uv add huggingface-hub
python -c "
from huggingface_hub import snapshot_download
snapshot_download(
    repo_id='IndexTeam/IndexTTS-1.5',
    local_dir='checkpoints'
)
"

2.7 创建参考语音文件

# macOS
say -v "Alex" "This is a reference voice for IndexTTS" -o reference_voice.aiff
ffmpeg -y -i reference_voice.aiff reference_voice.wav
rm -f reference_voice.aiff

# Linux
# 使用录音工具录制参考语音,或使用现有的 WAV 文件

配置 voice-cli

1. 更新 pyproject.toml

确保 pyproject.toml 文件包含以下内容:

[project]
name = "voice-cli-tts"
version = "0.1.0"
description = "TTS dependencies for voice-cli"
requires-python = ">=3.10,<3.11"
dependencies = [
    "torch>=2.8",
    "torchaudio>=2.8",
    "numpy>=1.19.0,<2.0.0",
    "soundfile>=0.12",
    "huggingface-hub>=0.34.4",
]

[tool.uv]
dev-dependencies = []

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

2. 使用 uv 管理依赖

# 激活虚拟环境
source .venv/bin/activate

# 同步依赖
uv sync

# 添加新依赖
uv add <package_name>

# 移除依赖
uv remove <package_name>

3. 参考语音文件

IndexTTS 需要一个参考语音文件来生成语音。参考语音文件应该是:

  • 格式WAV
  • 时长3-30 秒
  • 质量:清晰、无噪音
  • 内容:任何语音内容

测试安装

1. 运行测试脚本

source .venv/bin/activate
python test_indextts.py

2. 手动测试 IndexTTS

source .venv/bin/activate
indextts "你好,这是一个测试" \
  --voice reference_voice.wav \
  --output_path test_output.wav \
  --model_dir checkpoints \
  --config checkpoints/config.yaml \
  --force

3. 测试 TTS 服务

source .venv/bin/activate
python tts_service.py "你好世界" --output tts_test.wav

4. 测试 voice-cli 服务器

# 重新编译 voice-cli
cargo install --path voice-cli --features=metal

# 启动服务器
voice-cli server run

# 在另一个终端测试 TTS 接口
curl --location --request POST 'http://127.0.0.1:8087/tts/sync' \
--header 'Content-Type: application/json' \
--data-raw '{
    "text": "测试成功"
}' --max-time 60

部署和使用

1. 日常使用

# 激活虚拟环境
source .venv/bin/activate

# 启动服务器
voice-cli server run

# 测试 TTS 接口
curl -X POST 'http://127.0.0.1:8087/tts/sync' \
  -H 'Content-Type: application/json' \
  -d '{"text": "你好世界"}' \
  --max-time 60

2. 使用 uv 管理环境

# 更新所有依赖
uv sync

# 清理缓存
uv cache clean

# 查看环境信息
uv pip list

3. 性能监控

IndexTTS 处理时间通常为 15-30 秒,具体取决于:

  • 文本长度
  • CPU 性能
  • 内存可用性

故障排除

1. 常见问题

问题Python 版本不兼容

# 解决方案:确保使用 Python 3.10.x
python3.10 --version
# 应该显示 Python 3.10.x

问题:模型文件缺失

# 解决方案:手动下载模型文件
source .venv/bin/activate
python -c "
from huggingface_hub import hf_hub_download
hf_hub_download(repo_id='IndexTeam/IndexTTS-1.5', filename='gpt.pth', local_dir='checkpoints')
hf_hub_download(repo_id='IndexTeam/IndexTTS-1.5', filename='bigvgan_generator.pth', local_dir='checkpoints')
"

问题FFmpeg 未安装

# 解决方案:
macOS: brew install ffmpeg
Linux: sudo apt-get install ffmpeg

问题uv 命令不存在

# 解决方案:重新安装 uv
curl -LsSf https://astral.sh/uv/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"

问题IndexTTS 导入失败

# 解决方案:重新安装 IndexTTS
source .venv/bin/activate
cd /tmp/index-tts
git pull
pip install -e .

2. 日志调试

启用详细日志:

export RUST_LOG=debug
voice-cli server run

检查 Python 环境:

source .venv/bin/activate
python -c "import indextts; print('IndexTTS 导入成功')"

检查模型文件:

ls -la checkpoints/
# 应该包含config.yaml, gpt.pth, bigvgan_generator.pth, dvae.pth 等

3. 网络问题

如果下载模型失败,可以:

  1. 使用代理:export HF_ENDPOINT=https://hf-mirror.com
  2. 手动下载文件到 checkpoints 目录
  3. 使用 wget 下载:
wget https://huggingface.co/IndexTeam/IndexTTS-1.5/resolve/main/gpt.pth -P checkpoints

4. 性能优化

  • CPU 优化:确保使用最新版本的 PyTorch
  • 内存优化:如果内存不足,关闭其他占用内存的应用
  • 并发优化:调整 voice-cli 配置中的并发设置

高级配置

1. 使用不同的模型

IndexTTS 提供多个模型版本:

  • IndexTeam/IndexTTS:基础版本
  • IndexTeam/IndexTTS-1.5:最新版本(推荐)

2. 自定义配置

创建自定义配置文件:

# custom_config.yaml
model:
  path: "checkpoints/gpt.pth"
  device: "cpu"  # 或 "cuda" 如果有 GPU

audio:
  sample_rate: 22050
  format: "wav"

synthesis:
  speed: 1.0
  pitch: 0.0
  volume: 1.0

3. 批量处理

使用 voice-cli 的异步任务接口进行批量处理:

curl --location --request POST 'http://127.0.0.1:8087/api/v1/tasks/tts' \
--header 'Content-Type: application/json' \
--data-raw '{
    "text": "批量处理文本",
    "format": "wav",
    "priority": "normal"
}'

维护和更新

1. 定期更新

# 更新 IndexTTS
source .venv/bin/activate
cd /tmp/index-tts
git pull
pip install -e .

# 更新依赖
uv sync

# 更新模型
python -c "
from huggingface_hub import snapshot_download
snapshot_download(
    repo_id='IndexTeam/IndexTTS-1.5',
    local_dir='checkpoints',
    allow_patterns='*.pth,*.yaml,*.model'
)
"

2. 清理维护

# 清理下载缓存
rm -rf ~/.cache/huggingface
uv cache clean

# 清理日志
rm -rf logs/*

# 清理临时文件
rm -rf *.tmp *.temp

3. 备份重要文件

# 备份模型文件
tar -czf index_tts_models_backup.tar.gz checkpoints/

# 备份配置文件
cp pyproject.toml pyproject.toml.backup
cp reference_voice.wav reference_voice.wav.backup

许可证

  • IndexTTS遵循其开源许可证
  • 模型文件:遵循各自的许可证条款
  • voice-cli项目许可证

支持

最佳实践

  1. 环境管理:始终使用虚拟环境和 uv 管理依赖
  2. 模型管理:定期备份重要的模型文件
  3. 性能监控:关注 TTS 处理时间和内存使用
  4. 错误处理:实现适当的重试机制和错误处理
  5. 测试验证:定期测试 TTS 功能确保正常工作

注意事项

  • IndexTTS 首次运行可能需要较长时间15-30秒
  • 确保有足够的内存和存储空间
  • 网络连接对于模型下载很重要
  • 建议定期备份模型文件和配置