GPT-SoVITS
GPT-SoVITS copied to clipboard
Mac 运行方法分享
本项目已支持Mac训练,请不要根据本教程安装,按照README克隆原项目代码进行安装。
我修改了一些代码,让它可以在Mac上运行,支持MPS加速,给各位写个具体的方法:
- 我把修改后的完整项目文件传到 iCloud 中了,点击下载副本就可以了。链接
- 根据情况修改 webui.py 中的显存大小(可跳过):
# 检查MPS的可用性
if torch.backends.mps.is_available():
if_mps_ok = True
gpu_infos.append("MPS")
mem.append(32) # 修改成显存大小,默认大约是系统内存大小的2/3,这个是用于计算batch size的,其实不改也没事,webUI可手动调
- 创建 Conda 环境:
conda create -n GPTSoVits python=3.9
conda activate GPTSoVits
- 定位到项目目录:
cd 你的项目路径
- 安装依赖:
pip install -r requirements.txt
- 安装特定版本的ASR依赖。最新版本的funasr依赖改了,打标时会出错,所以安装此版本:
pip install funasr==0.8.7
- 安装nightly版本pytorch,2.1.2实测会出错:
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu
- 如果没有安装ffmpeg,安装它:
brew install ffmpeg
- 运行webUI即可:
python webui.py
基本上大部分webUI内的功能都可使用MPS运行,不过有几个例外:
- UVR5 webui是使用CPU进行的,可以前往原项目地址下载Mac最新版本GUI,勾选GPU运行,速度会更快一点,可选功能也会更多。
- ASR功能由于使用阿里的依赖进行,更改成mps比较麻烦,不过CPU速度也快的。
- 我在代码中默认开启了PYTORCH_ENABLE_MPS_FALLBACK=1,遇到mps不支持的功能时自动使用cpu运行。
已知问题:存在内存泄漏,主要体现在推理时,多次推理后可能导致内存占用很高,暂时不知道如何解决。不过大体上不太影响,重启推理UI可以释放内存。
修改过程主要就是对所有分布式训练的代码进行更改,因为mps上不需要也不支持分布式训练。
代码改动较复杂,之后如果可能,我会尝试给作者提交PR。 这是我目前为止用过的效果最好的TTS项目,非常感谢作者开源! 如果有任何问题或建议欢迎提出
可以pr个,你pr完我测试下win和linux的兼容性
可以pr个,你pr完我测试下win和linux的兼容性
好,我试一下
超級感謝!M2已經安裝完成,要來運行看看了
btw, 第9項的「运行webUI即可:python wbeui.py」應更正為「运行webUI即可:python webui.py」就完美了
btw, 第9項的「运行webUI即可:python wbeui.py」應更正為「运行webUI即可:python webui.py」就完美了
感谢指正!我这愚蠢的错误🤥
请问下使用你云盘的包,可以升级最新版本吗?如何升级?
请问下使用你云盘的包,可以升级最新版本吗?如何升级?
什么意思?
Git pull
这个可能不行,我不太清楚。我尽快给作者pr,等合并之后再重新下载原项目更新吧
有其他mac运行成功的案例吗,想知道是不是macos系统的原因(我是macos·12)导致生成的模型推理出来没声音。
有其他mac运行成功的案例吗,想知道是不是macos系统的原因(我是macos·12)导致生成的模型推理出来没声音。
我是M2 Max,系统是macOS 14.2.1,按 @Lion-Wu 提供的包和安装方法走了一遍,推理出的模型有声音,但是只是哼哼哈哈的声音...
内存泄露确实比价严重
有其他mac运行成功的案例吗,想知道是不是macos系统的原因(我是macos·12)导致生成的模型推理出来没声音。
有可能是训练本身的问题,我能输出但是效果有差距,感觉训练时间的问题
下载部署以后在最后的推理出现了问题,推理开始挺快,到15以后逐渐变慢,然后报错,请问这个应该如何解决
有其他mac运行成功的案例吗,想知道是不是macos系统的原因(我是macos·12)导致生成的模型推理出来没声音。
有可能是训练本身的问题,我能输出但是效果有差距,感觉训练时间的问题
我尝试修改了可能导致问题的代码,正在给作者pr,可以等晚点合并了再试试看有没有这个问题
我用intel的Mac,请问可以完全用cpu跑吗?慢一点没关系
下载部署以后在最后的推理出现了问题,推理开始挺快,到15以后逐渐变慢,然后报错,请问这个应该如何解决
查看一下是否内存占用过高,出现了使用了swap内存交换导致的性能下降
我用intel的Mac,请问可以完全用cpu跑吗?慢一点没关系
这个我不确定,可以尝试一下,当然可能需要更改一些代码。
大概要改哪些地方的啊?😂
大概要改哪些地方的啊?😂
主要就是把所有device = "mps"改成device = "cpu",把.to("mps")换成.to("cpu"),还有一个地方我记得会提示只能用GPU训练,你可以把那一行删掉后试一下
大概要改哪些地方的啊?😂
如果只是用来推理只需要改inference.py
你可以参考https://github.com/RVC-Boss/GPT-SoVITS/issues/93#issue-2091450808
这个是用CPU推理的,intel应该可以
根据 #93 改了一下,但仍然一直报错 FileNotFoundError: [Errno 2] No such file or directory: 'logs/ss/2-name2text-0.txt'
根据 #93 改了一下,但仍然一直报错 FileNotFoundError: [Errno 2] No such file or directory: 'logs/ss/2-name2text-0.txt'
这个只能用于推理,应该没法训练,你可以尝试云端训练,再本地推理
ok我试试
有人对比过CPU与GPU的推理速度吗?GPU运行有更快吗?
Traceback (most recent call last):
File "/Users/xxx/workspace/GPT-SoVITS/tools/damo_asr/cmd-asr.py", line 23, in
有其他mac运行成功的案例吗,想知道是不是macos系统的原因(我是macos·12)导致生成的模型推理出来没声音。
我是M2 Max,系统是macOS 14.2.1,按 @Lion-Wu 提供的包和安装方法走了一遍,推理出的模型有声音,但是只是哼哼哈哈的声音...
我又测试了一下不同的生成模型,结果发现GPT_weights
的模型数值越高的越逼真(e15.pth
比e5.pth
的语气更连贯);但SoVITS_weights
只能选e4_s32.pth
,选e8就开始有口齿不清的状况,选e12就会出现只有哼哼哈哈的状况了。SoVITS_weights
这是越训练效果越差吗...
有人对比过CPU与GPU的推理速度吗?GPU运行有更快吗?
区别不大
Traceback (most recent call last): File "/Users/xxx/workspace/GPT-SoVITS/tools/damo_asr/cmd-asr.py", line 23, in inference_pipeline = pipeline( File "/Users/xxx/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/modelscope/pipelines/builder.py", line 170, in pipeline return build_pipeline(cfg, task_name=task) File "/Users/xxx/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/modelscope/pipelines/builder.py", line 65, in build_pipeline return build_from_cfg( File "/Users/xxxx/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/modelscope/utils/registry.py", line 215, in build_from_cfg raise type(e)(f'{obj_cls.name}: {e}') ImportError: AutomaticSpeechRecognitionPipeline: dlopen(/Users/xxxx/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/hdbscan/_hdbscan_linkage.cpython-39-darwin.so, 0x0002): tried: '/Users/xxxx/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/hdbscan/_hdbscan_linkage.cpython-39-darwin.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/xxx/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/hdbscan/_hdbscan_linkage.cpython-39-darwin.so' (no such file), '/Users/xxx/anaconda3/envs/GPTSoVits/lib/python3.9/site-packages/hdbscan/_hdbscan_linkage.cpython-39-darwin.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64'))
Intel chip用CPU推理吧
各位久等了,我优化了一下代码,并提交了PR,原项目已支持mps,不过代码还是有些问题,请等待这个PR合并后克隆仓库最新代码并按照README进行安装。
关于推理效果、吞字情况可参考 #51、#70 中的描述,也许不是mps的问题。也希望更多人可以反馈运行的效果,谢谢各位。
内存泄漏问题仍然存在,如果出现问题的可以修改代码切换到CPU推理(我还没试过,CPU推理应该没有内存泄漏吧)
另外仓库中的代码应该已经支持自动对不支持GPU推理的设备使用CPU推理,不过没有对CPU训练进行优化,是否可行还没有测试。
附MPS支持条件:带有Apple 芯片或AMD GPU的Mac,macOS 12.3或更高版本,Python 3.7或更高版本,已安装Xcode command-line tools: xcode-select --install
另外碰到其他问题还请提出,谢谢各位了