内容提要
GPT-SoVITS是MacOs系统下的TTS项目,可在M系列芯片上训练和推理。需要安装FFMPEG和conda环境,克隆GPT-SoVITS项目并安装依赖。推理时可选择使用CPU或MPS,但MPS存在内存泄露问题。
延伸解读
Mac 本地 TTS 的生态意义
GPT-SoVITS 是少数能在 Mac 上训练和推理的 TTS 项目,虽然效率无法与 N 卡设备相比,但为 M 系列芯片的 AI 生态迈出了第一步。对于 Mac 用户而言,这意味着无需依赖云端或额外硬件,即可在本地完成语音合成任务,降低了使用门槛。
环境配置的关键点
搭建环境时,需确保 FFMPEG 版本大于 6.1,可通过 HomeBrew 安装;同时需要 conda 环境,推荐创建 Python 3.9 的虚拟环境。安装依赖后,还需安装 Mac 版本的 PyTorch,并验证 MPS 是否可用。这些步骤是项目运行的基础,缺一不可。
CPU 与 MPS 推理的权衡
推理时可选 CPU 或 MPS,但 MPS 存在内存泄露问题,导致内存占用持续上升至 14GB,且速度不稳定;而 CPU 推理内存占用稳定在 3GB,速度可达 55it/s。尽管 MPS 理论上有优势,但实际表现可能不如 CPU,用户需根据自身需求选择。
MPS 内存泄露的应对
针对 MPS 内存泄露,PyTorch 官方 issue 中提到了修改 CMake 编译方式的解决方案。修改后,MPS 推理速度有所提升,但内存泄露现象依然存在。因此,在官方修复前,若追求稳定,CPU 仍是更可靠的选择。
Q&A
GPT-SoVITS 在 Mac 上训练和推理需要满足哪些环境要求?
需要安装版本大于 6.1 的 FFMPEG 和 conda 环境。推荐通过 HomeBrew 安装 FFMPEG,并创建基于 Python 3.9 的 conda 虚拟环境。
如何在 Mac 上安装 FFMPEG 和 conda?
FFMPEG 可通过 HomeBrew 安装:先运行 brew cleanup && brew update,再运行 brew install ffmpeg。conda 可从 Anaconda 官网下载安装包进行安装。
如何为 GPT-SoVITS 创建 Python 虚拟环境并安装依赖?
使用 conda 创建并激活基于 Python 3.9 的环境:conda create -n GPTSoVits python=3.9 和 conda activate GPTSoVits。然后克隆项目,进入目录,运行 pip3 install -r requirements.txt 安装基础依赖,再安装 Mac 版 PyTorch:pip3 install --pre torch torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu。
在 Mac 上推理时,应该选择 CPU 还是 MPS?
根据文章测试,CPU 推理效率较高,内存占用稳定在 3GB,速度约 55it/s;而 MPS 推理内存占用持续上升至 14GB,速度最高 30it/s,偶发 1-2it/s,且存在内存泄露问题。因此推荐使用 CPU 推理。
MPS 推理存在什么问题?
MPS 推理存在内存泄露现象,Python 进程内存占用会持续稳步上升,最高可达 14GB,且推理速度不稳定,偶发极低速度。
如何修改 GPT-SoVITS 的推理设备?
可以修改项目中的 config.py 文件来指定 api 推理设备,或修改 inference_webui.py 文件来指定页面推理设备。代码中通过检查 torch.cuda.is_available() 和 torch.backends.mps.is_available() 来设置设备为 cuda、mps 或 cpu。