2026年10月3日
Gemini_Generated_Image_fnizb5fnizb5fniz

目录

更新时间:2026-04-26

适用对象:Apple Silicon Mac 用户,包括 M1 / M2 / M3 / M4。

这份教程采用官方源码 + uv 的方式部署 IndexTTS-2 WebUI。它不是 Docker 方案,也不是第三方一键包方案。

官方项目地址:

  • GitHub:https://github.com/index-tts/index-tts
  • Hugging Face 模型:https://huggingface.co/IndexTeam/IndexTTS-2

一、适合什么 Mac?

推荐配置:

配置 建议
芯片 Apple Silicon:M1 / M2 / M3 / M4
内存 16GB 起步,24GB / 32GB 以上更稳
系统 macOS 13 以上更推荐
硬盘 至少预留 20GB,建议 30GB 以上
加速方式 优先尝试 PyTorch MPS / Metal,不支持 NVIDIA CUDA

注意:

Mac 不支持 CUDA。IndexTTS-2 当前推理代码会自动检测 cuda、xpu、mps、cpu,Apple Silicon 可用时会尝试选择 mps,否则退回 CPU。

官方代码里还明确处理了 MPS 下不使用 FP16 的情况,因为在 MPS 上 FP16 可能带来额外开销或兼容性问题。

不过,MPS 是否稳定还取决于 macOS、PyTorch 版本、内存大小和具体算子支持。如果 MPS 报错,可以先强制 CPU 排查。


二、安装前准备

打开「终端」,先安装 Apple 命令行工具:

xcode-select --install

如果提示已经安装,可以忽略。

如果还没有安装 Homebrew,先安装 Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

已经安装过 Homebrew 的用户可以跳过。

然后安装基础工具:

brew install git git-lfs ffmpeg uv

启用 Git LFS:

git lfs install

官方要求系统中有 Git 和 Git LFS,并且需要执行 git lfs install。


三、下载 IndexTTS-2 官方源码

建议统一放到英文路径,避免中文、空格、特殊符号导致路径兼容问题:

mkdir -p ~/AI
cd ~/AI

如果你以前没有下载过 IndexTTS-2,直接克隆:

git clone https://github.com/index-tts/index-tts.git
cd index-tts
git lfs pull

如果你以前已经下载过旧版仓库,建议不要在旧目录里直接 git pull。官方 README 当前提示仓库历史曾重置,旧副本建议删除后重新克隆:

cd ~/AI
mv index-tts index-tts-old
git clone https://github.com/index-tts/index-tts.git
cd index-tts
git lfs pull

确认当前目录:

pwd

输出应该类似:

/Users/你的用户名/AI/index-tts

四、安装 Python 环境和依赖

官方项目要求 Python 3.10 以上,仓库里的 .python-version 当前指定为 3.10。

让 uv 安装 Python 3.10:

uv python install 3.10

然后安装 WebUI 所需依赖:

uv sync --extra webui

这里是 Mac 推荐命令,不是官方 README 的唯一写法。

官方 README 当前默认写的是:

uv sync --all-extras

但是 --all-extras 会把 DeepSpeed 也安装进来。DeepSpeed 主要面向 Linux + NVIDIA CUDA 环境,Mac 新手部署 WebUI 时不建议安装它,否则更容易遇到编译或依赖问题。

因此,Mac 上只跑 WebUI,推荐使用:

uv sync --extra webui

如果国内下载 Python 包很慢,可以使用镜像:

uv sync --extra webui --default-index "https://mirrors.aliyun.com/pypi/simple"

或者:

uv sync --extra webui --default-index "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"

五、下载 IndexTTS-2 模型权重

源码只是程序,还必须下载模型权重。官方提供 Hugging Face 和 ModelScope 两种下载方式。

方式 A:Hugging Face 下载

安装 Hugging Face CLI:

uv tool install "huggingface-hub[cli,hf_xet]"

如果你在国内,建议先设置 Hugging Face 镜像:

export HF_ENDPOINT="https://hf-mirror.com"

下载模型到 checkpoints 目录:

hf download IndexTeam/IndexTTS-2 --local-dir=checkpoints

方式 B:ModelScope 下载,国内更推荐

安装 ModelScope CLI:

uv tool install "modelscope"

下载模型到 checkpoints 目录:

modelscope download --model IndexTeam/IndexTTS-2 --local_dir checkpoints

如果 Hugging Face 下载很慢,优先尝试 ModelScope。


六、检查模型文件是否下载成功

执行:

ls -lh checkpoints

正常情况下,checkpoints 目录下应该能看到类似文件:

config.yaml
bpe.model
gpt.pth
s2mel.pth
wav2vec2bert_stats.pt

文件名可能会随版本调整,但至少应该有 config.yaml 和模型权重文件。

如果启动时报:

bpe.model is missing

通常说明模型没有完整下载。重新执行:

hf download IndexTeam/IndexTTS-2 --local-dir=checkpoints

或者:

modelscope download --model IndexTeam/IndexTTS-2 --local_dir checkpoints

七、检查 Mac 是否识别到 MPS 加速

执行:

uv run tools/gpu_check.py

如果输出里看到 mps 可用,说明 Apple GPU 加速可用。

如果没有看到 mps,也能跑,但会退回 CPU,速度会明显慢很多。

注意:

即使能识别到 MPS,也不代表所有情况下都一定稳定。首次测试建议先用短音频和短文本。


八、启动 WebUI

在 index-tts 目录下执行:

uv run webui.py

启动成功后,浏览器打开:

http://127.0.0.1:7860

官方 Web Demo 的启动命令就是:

uv run webui.py

不要写成:

python app.py

也不建议写成:

source .venv/bin/activate
python webui.py

官方提醒:所有 uv 命令会自动使用正确的项目虚拟环境,不建议手动激活环境,否则可能引发依赖冲突。


九、最适合小白的一整套复制版命令

下面这套适合从零开始执行:

# 1. 安装基础工具
xcode-select --install

brew install git git-lfs ffmpeg uv
git lfs install

# 2. 下载源码
mkdir -p ~/AI
cd ~/AI
git clone https://github.com/index-tts/index-tts.git
cd index-tts
git lfs pull

# 3. 安装 Python 3.10 和 WebUI 依赖
uv python install 3.10
uv sync --extra webui

# 4. 下载模型权重,国内推荐 ModelScope
uv tool install "modelscope"
modelscope download --model IndexTeam/IndexTTS-2 --local_dir checkpoints

# 5. 检查 MPS / GPU 状态
uv run tools/gpu_check.py

# 6. 启动 WebUI
uv run webui.py

浏览器打开:

http://127.0.0.1:7860

如果你以前已经有旧版 ~/AI/index-tts,先执行:

cd ~/AI
mv index-tts index-tts-old

再从 git clone 开始执行。


十、WebUI 使用建议

进入 WebUI 后,建议这样测试:

项目 建议
参考音频 5-10 秒,干净人声,无背景音乐
文本长度 先用 1-2 句话测试
语言 中文、英文更稳
文件路径 音频文件路径尽量不要有中文、空格、特殊符号
首次启动 可能额外下载小模型,第一次慢是正常的

IndexTTS-2 首次运行时可能还会自动下载一些小模型,例如 facebook/w2v-bert-2.0、amphion/MaskGCT、funasr/campplus 等。首次生成慢、终端有下载日志,一般属于正常现象。


十一、常见问题处理

1. 安装时报 DeepSpeed 错误

Mac WebUI 部署不建议安装 DeepSpeed。

推荐命令是:

uv sync --extra webui

不建议 Mac 新手使用:

uv sync --all-extras

DeepSpeed 在官方配置里是单独的 optional extra,不是 Mac WebUI 必需项。

2. 启动时报缺少 bpe.model

说明 checkpoints 没下载完整。

重新下载:

modelscope download --model IndexTeam/IndexTTS-2 --local_dir checkpoints

或者:

hf download IndexTeam/IndexTTS-2 --local-dir=checkpoints

3. Hugging Face 下载慢

先设置镜像:

export HF_ENDPOINT="https://hf-mirror.com"

然后再运行:

hf download IndexTeam/IndexTTS-2 --local-dir=checkpoints

如果还是慢,改用 ModelScope:

uv tool install "modelscope"
modelscope download --model IndexTeam/IndexTTS-2 --local_dir checkpoints

4. 生成速度很慢

这是正常现象。Mac 没有 CUDA,虽然可以尝试 MPS,但整体速度通常还是不如 NVIDIA 显卡机器。

优化建议:

1. 参考音频控制在 5-10 秒
2. 文本不要一次输入太长
3. 第一次生成后,同一个参考音频再次生成可能会快一些
4. 16GB Mac 只建议短文本测试
5. 长篇批量配音建议用 NVIDIA 显卡机器

5. MPS 报错或结果异常

可以强制用 CPU 测试。新建一个测试脚本:

nano test_cpu.py

写入:

from indextts.infer_v2 import IndexTTS2

tts = IndexTTS2(
    cfg_path="checkpoints/config.yaml",
    model_dir="checkpoints",
    device="cpu",
    use_fp16=False,
    use_cuda_kernel=False,
    use_deepspeed=False,
)

tts.infer(
    spk_audio_prompt="examples/voice_01.wav",
    text="你好,这是一次 IndexTTS 二代在 Mac 上的测试。",
    output_path="gen.wav",
    verbose=True,
)

运行:

PYTHONPATH="$PYTHONPATH:." uv run test_cpu.py

如果 CPU 可以跑,MPS 报错,通常说明问题在 MPS 兼容性或内存压力,而不是模型文件本身。

6. 端口 7860 被占用

如果启动时报 7860 端口已被占用,可以先关掉之前的 WebUI 终端窗口,或者在终端里查找占用进程:

lsof -i :7860

看到对应进程后再决定是否关闭。

7. 旧仓库无法更新或命令对不上

如果你以前部署过旧版 IndexTTS,当前命令、文件名、依赖可能和旧仓库不一致。

建议重新克隆:

cd ~/AI
mv index-tts index-tts-old
git clone https://github.com/index-tts/index-tts.git
cd index-tts
git lfs pull

十二、不推荐 Mac 新手使用 Docker

Docker 不是 Mac 部署 IndexTTS-2 的首选。

原因:

1. Mac Docker 容器通常不能直接使用 Apple MPS / Metal
2. 很多 IndexTTS-2 Docker 镜像面向 Linux + NVIDIA CUDA
3. 在 Mac 上用 Docker 往往更慢,也更难排错

Mac 用户推荐顺序:

第一推荐:官方源码 + uv
第二选择:可信社区一键包
不推荐首选:Docker

十三、可发布版总结

Mac 部署 IndexTTS-2,最稳妥的方式是走官方源码:

git clone
uv sync --extra webui
下载 checkpoints
uv run webui.py

关键避坑:

1. Mac 不支持 CUDA,但可以尝试 MPS,不要写成“只能 CPU”
2. Mac WebUI 推荐 uv sync --extra webui,不建议新手使用 uv sync --all-extras
3. 不要 python app.py,官方启动命令是 uv run webui.py
4. 如果以前 clone 过旧仓库,建议重新 clone,不要混用旧目录
5. 首次运行可能继续下载小模型,第一次慢是正常的

这套流程对 M1 / M2 / M3 / M4 Mac 都适用。16GB 内存可以体验短文本,24GB / 32GB 以上更稳。

About The Author

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注