GPT-SoVITS
GPT-SoVITS copied to clipboard
Apple 芯片Mac模型本地推理和预处理
本教程已过时,请参照Lion-Wu的教程,目前已经支持MPS训练和推理: https://github.com/RVC-Boss/GPT-SoVITS/issues/93#issuecomment-1905782184
Mac 训练比较困难,mps训练目前没测试成功,本地推理和预处理是可以的,效果挺不错,(稍微有吞字问题),感谢作者开源!
推理
文件可以在Colab或者云服务商上训练然后把模型下载下来 整合包参考:https://github.com/RVC-Boss/GPT-SoVITS/issues/4
1.首先需要先把webui跑起来
python web.py
2.点Allow到浏览器打开
3. 选好GPT模型和SOVITS 模型
点击是否开启TTS推理WebUI
这个时候可能会报错,需要修改GPT_SoVITS/inference_webui.py
用CPU推理
4. 需要改两个地方
- 把CUDA改成CPU
- 把半精度改成全精度
model.half()
--->model.float()
修改好保存然后重新运行下就可以运行了。
python web.py
参考文件:https://github.com/RoversX/GPT-SoVITS/blob/main/GPT_SoVITS/inference_webui.py
预处理
https://github.com/RoversX/GPT-SoVITS/tree/main/GPT_SoVITS/prepare_datasets
替换文件夹下面的文件
主要就是改成device="cpu"
参考: https://github.com/RVC-Boss/GPT-SoVITS/issues/61
English Version will be provided on myblog
你好,我m1芯片用conda安装gxx和pytorch-cuda=11.8的时候提示`Could not solve for environment specs Encountered problems while solving:
- nothing provides requested gxx
- nothing provides cuda 11.8.* needed by pytorch-cuda-11.8-h8dd9ede_2
The environment can't be solved, aborting the operation`这个有解决办法吗
你好,我m1芯片用conda安装gxx和pytorch-cuda=11.8的时候提示`Could not solve for environment specs Encountered problems while solving:
- nothing provides requested gxx
- nothing provides cuda 11.8.* needed by pytorch-cuda-11.8-h8dd9ede_2
The environment can't be solved, aborting the operation`这个有解决办法吗
M芯片怎么能装cuda的呀,得装Mac版本的:conda install pytorch::pytorch torchvision torchaudio -c pytorch,另外 gxx 参照 ChatGPT的回答:
要在带有Apple M1芯片的Mac上安装gxx
(GNU C++编译器),你可以通过Homebrew这个包管理器来安装。以下是基本步骤:
-
确保你的Mac上安装了Homebrew。如果尚未安装,你可以从Homebrew的官网获取安装指令。
-
使用Homebrew安装GCC,这通常会包括
gxx
。在终端中运行brew install gcc
来安装GCC。 -
安装完成后,可以通过在终端中运行
g++ --version
来检查是否成功安装了gxx
。
不要通过install.sh安装,会出问题
好不容易能运行了,按照RoversX的都改了,但是最后最后语音生成的时候直接error
代码区的报错是:
Traceback (most recent call last): File "/opt/anaconda3/envs/test/lib/python3.9/site-packages/gradio/routes.py", line 321, in run_predict output = await app.blocks.process_api( File "/opt/anaconda3/envs/test/lib/python3.9/site-packages/gradio/blocks.py", line 1006, in process_api result = await self.call_function(fn_index, inputs, iterator, request) File "/opt/anaconda3/envs/test/lib/python3.9/site-packages/gradio/blocks.py", line 859, in call_function prediction = await anyio.to_thread.run_sync( File "/opt/anaconda3/envs/test/lib/python3.9/site-packages/anyio/to_thread.py", line 56, in run_sync return await get_async_backend().run_sync_in_worker_thread( File "/opt/anaconda3/envs/test/lib/python3.9/site-packages/anyio/_backends/_asyncio.py", line 2134, in run_sync_in_worker_thread return await future File "/opt/anaconda3/envs/test/lib/python3.9/site-packages/anyio/_backends/_asyncio.py", line 851, in run result = context.run(func, *args) File "/opt/anaconda3/envs/test/lib/python3.9/site-packages/gradio/utils.py", line 408, in async_iteration return next(iterator) File "/Users/dx/workdir/software/GPT-SoVITS/GPT_SoVITS/inference_webui.py", line 159, in get_tts_wav ssl_content = ssl_model.model(wav16k.unsqueeze(0))[ File "/opt/anaconda3/envs/test/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "/opt/anaconda3/envs/test/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl return forward_call(*args, **kwargs) File "/opt/anaconda3/envs/test/lib/python3.9/site-packages/transformers/models/hubert/modeling_hubert.py", line 1081, in forward extract_features = self.feature_extractor(input_values) File "/opt/anaconda3/envs/test/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "/opt/anaconda3/envs/test/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl return forward_call(*args, **kwargs) File "/opt/anaconda3/envs/test/lib/python3.9/site-packages/transformers/models/hubert/modeling_hubert.py", line 354, in forward hidden_states = conv_layer(hidden_states) File "/opt/anaconda3/envs/test/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "/opt/anaconda3/envs/test/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl return forward_call(*args, **kwargs) File "/opt/anaconda3/envs/test/lib/python3.9/site-packages/transformers/models/hubert/modeling_hubert.py", line 256, in forward hidden_states = self.conv(hidden_states) File "/opt/anaconda3/envs/test/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "/opt/anaconda3/envs/test/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl return forward_call(*args, **kwargs) File "/opt/anaconda3/envs/test/lib/python3.9/site-packages/torch/nn/modules/conv.py", line 310, in forward return self._conv_forward(input, self.weight, self.bias) File "/opt/anaconda3/envs/test/lib/python3.9/site-packages/torch/nn/modules/conv.py", line 306, in _conv_forward return F.conv1d(input, weight, bias, self.stride, RuntimeError: "slow_conv2d_cpu" not implemented for 'Half'
这又咋办啊
记录一下上面的解决方案:改一下config.py 改第二行is_half=False和第五行infer_device="cpu"
想问一下,M1是不是训练两个模型没用啊,我训练完了以后在推理那找不到模型
想问一下,M1是不是训练两个模型没用啊,我训练完了以后在推理那找不到模型
模型在这两个文件夹里面,一个是GPT模型,一个是SoVITS模型
├── GPT_weights
└── LeiJun-e15.ckpt
├── SoVITS_weights
└── LeiJun_e10_s470.pth
Mac训练模型还是缓缓吧,你试试AutoDL上的镜像吧
将cuda改为mps应该也可以吧?
将cuda改为mps应该也可以吧?
我目前测试下还没有支持mps,要是可以的话还请告知
各位,修改了一下代码后成功跑在MPS上了!推理和训练都可以做,负载基本都在GPU上了。我有空整理一下代码发出来
各位,修改了一下代码后成功跑在MPS上了!推理和训练都可以做,负载基本都在GPU上了。我有空整理一下代码发出来
![]()
![]()
![]()
👍👍👍
大家,修改一下代码后成功跑在MPS上了!推理和训练都可以做,负载基本都在GPU上去了。我有空整理一下代码发出来
![]()
![]()
![]()
怎么做到的,我也尝试过mps但是一直失败,等着大佬出教程啊。
整理好了吗?
发件人: Dave @.> 发送时间: Tuesday, January 23, 2024 1:00:28 PM 收件人: RVC-Boss/GPT-SoVITS @.> 抄送: Subscribed @.***> 主题: Re: [RVC-Boss/GPT-SoVITS] Apple 芯片Mac模型本地推理和预处理 (Issue #93)
大家,修改一下代码后成功跑在MPS上了!推理和训练都可以做,负载基本都在GPU上去了。我有空整理一下代码发出来
[截图 2024-01-22 23 00 36]https://private-user-images.githubusercontent.com/130235128/298635521-e6862a3a-d2c3-40b1-8c5a-62e2831bcf74.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MDU5ODYyMTAsIm5iZiI6MTcwNTk4NTkxMCwicGF0aCI6Ii8xMzAyMzUxMjgvMjk4NjM1NTIxLWU2ODYyYTNhLWQyYzMtNDBiMS04YzVhLTYyZTI4MzFiY2Y3NC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwMTIzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDEyM1QwNDU4MzBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0xNjIxODMzYTY0NmViYjNkNzk0OTIyNjg2NjlkOTQzZWNmYmUwNTQ3ZDc4YzhmMTBjMjMwM2YzNjRiMmY5Y2JmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.zQvvJbIVHsyIsi5p8pq8gagBEymxPcw7RoHms_BNNnQ [截图 2024-01-22 23 17 10] https://private-user-images.githubusercontent.com/130235128/298635556-cfbe0086-6f38-4251-a0ac-6d6a7c5755da.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MDU5ODYyMTAsIm5iZiI6MTcwNTk4NTkxMCwicGF0aCI6Ii8xMzAyMzUxMjgvMjk4NjM1NTU2LWNmYmUwMDg2LTZmMzgtNDI1MS1hMGFjLTZkNmE3YzU3NTVkYS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwMTIzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDEyM1QwNDU4MzBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hYjRkYjQ0MzU4NTU5OThjN2U5OTYxY2YwMWU0OWM0NjU5MTg1NTExMjM3YmI5ZWE4YTFlMzcwYTc3NDcyYjkxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.jdGtLiqyF78rSEJ6tlkcf_y9nJj4O0tuls5_-dU_mkk [截图 2024-01-22 23 18 33] https://private-user-images.githubusercontent.com/130235128/298635562-c652ab26-9688-4be7-9249-7bcd3a942f74.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MDU5ODYyMTAsIm5iZiI6MTcwNTk4NTkxMCwicGF0aCI6Ii8xMzAyMzUxMjgvMjk4NjM1NTYyLWM2NTJhYjI2LTk2ODgtNGJlNy05MjQ5LTdiY2QzYTk0MmY3NC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwMTIzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDEyM1QwNDU4MzBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0xNzFjNTI5N2ZlNTJlMThhN2Q0YzczNGU1YjVmNWVjMzgzMjg5NzdkNTY5NjI5MGE2ZTkxZjRlYTE0ZDBhYzNhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.LolwQxrhV97AankoGIrV9mo6aKKMcZa51kw2fib12FA [截图 2024-01-22 23 22 26] https://private-user-images.githubusercontent.com/130235128/298635566-693e2ded-c51f-4551-bcc8-3c8c78cfac58.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MDU5ODYyMTAsIm5iZiI6MTcwNTk4NTkxMCwicGF0aCI6Ii8xMzAyMzUxMjgvMjk4NjM1NTY2LTY5M2UyZGVkLWM1MWYtNDU1MS1iY2M4LTNjOGM3OGNmYWM1OC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwMTIzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDEyM1QwNDU4MzBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1kNmU1ODlkZDIyZGVjNjM5ODhjNjU3ZmM5NDU0N2Y5Y2M4N2E1YjFhMTc0ODgzYzA1YzgzODQ3NjEyMmRkZjNiJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.nlfMg2m10uTeNRIpUHLNUlOXTGhzoZ8f5MtgTydczm4
怎么做到的,我也尝试过mps但是一直失败,等着大佬出教程啊。
― Reply to this email directly, view it on GitHubhttps://github.com/RVC-Boss/GPT-SoVITS/issues/93#issuecomment-1905296261, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AN5RXK3NYPRN4FXGAAYVE43YP47WZAVCNFSM6AAAAABCCR5YGWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMBVGI4TMMRWGE. You are receiving this because you are subscribed to this thread.Message ID: @.***>
代码整理完毕,给各位写个具体的方法:
- 我把修改后的完整项目文件传到 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项目,非常感谢作者开源! 如果有任何问题或建议欢迎提出
一定要Python3.9吗?3.11行不行?
发件人: Lion Wu @.> 发送时间: Tuesday, January 23, 2024 6:50:46 PM 收件人: RVC-Boss/GPT-SoVITS @.> 抄送: Stanley-baby @.>; Comment @.> 主题: Re: [RVC-Boss/GPT-SoVITS] Apple 芯片Mac模型本地推理和预处理 (Issue #93)
代码整理完毕,给各位写个具体的方法:
- 我把修改后的完整项目文件传到 iCloud 中了,点击下载副本就可以了。链接https://www.icloud.com.cn/iclouddrive/038-pyt2oEguTk5cIUr_ei0NA#GPT-SoVITS
- 根据情况修改 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 wbeui.py
基本上大部分webUI内的功能都可使用MPS运行,不过有几个例外:
- UVR5 webui是使用CPU进行的,可以前往原项目地址https://github.com/Anjok07/ultimatevocalremovergui下载Mac最新版本GUI,勾选GPU运行,速度会更快一点,可选功能也会更多。
- ASR功能由于使用阿里的依赖进行,更改成mps比较麻烦,不过CPU速度也快的。
- 我在代码中默认开启了PYTORCH_ENABLE_MPS_FALLBACK=1,遇到mps不支持的功能时自动使用cpu运行。
已知问题:存在内存泄漏,主要体现在推理时,多次推理后可能导致内存占用很高,暂时不知道如何解决。不过大体上不太影响,重启推理UI可以释放内存。
修改过程主要就是对所有分布式训练的代码进行更改,因为mps上不需要也不支持分布式训练。
代码改动较复杂,之后如果可能,我会尝试给作者提交PR。 这是我目前为止用过的效果最好的TTS项目,非常感谢作者开源! 如果有任何问题或建议欢迎提出
― Reply to this email directly, view it on GitHubhttps://github.com/RVC-Boss/GPT-SoVITS/issues/93#issuecomment-1905782184, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AN5RXK7ZQT2M6MJWF5GE74LYP6IYNAVCNFSM6AAAAABCCR5YGWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMBVG44DEMJYGQ. You are receiving this because you commented.Message ID: @.***>
一定要Python3.9吗?3.11行不行?
这个我没尝试过,readme中写的3.9我就用的3.9,你可以试试看
依赖怎么也装不上。。。
ERROR: Could not find a version that satisfies the requirement scipy (from versions: none) ERROR: No matching distribution found for scipy
依赖怎么也装不上。。。
ERROR: Could not find a version that satisfies the requirement scipy (from versions: none) ERROR: No matching distribution found for scipy
不会啊,你要不试试brew install scipy
或者 conda install scipy
,然后把scipy从requirements.txt中删除再重新安装依赖
可以提供更多系统和版本信息吗?
好像可以了,请问下使用你云盘中的副本,还需要安装brew install gcc吗?还是说直接就按照你的步骤来就可以了?
好像可以了,请问下使用你云盘中的副本,还需要安装brew install gcc吗?还是说直接就按照你的步骤来就可以了?
应该不需要的吧,Mac上有Clang的
大佬 为什么我的界面是英文的呢?语言在哪里改呀?
大佬 为什么我的界面是英文的呢?语言在哪里改呀?
这个应该是根据系统设置的语言来的,具体不太清楚,你可以先用网页翻译软件,我再看看。
我测试了一下,完成度很高,可以说解决了mac不能构建模型的弊端。 但是有一些问题: 1.模型的微调过程可以顺利完成,但使用新创建的模型时遇到了问题,即推理的时候模型没有发出声音。相比之下,我使用之前构建好的模型还能正常运行并产生声音(表明该环境没问题,是模型的问题)。 2.推理使用mps效果并不佳,不如cpu好。我测试了之前构建且运行良好的模型时,吞字吐字现象较为严重。
注:我系统为macos12
目前测试下来可以正常调用👍
我测试了一下,完成度很高,可以说解决了mac不能构建模型的弊端。 但是有一些问题: 1.模型的微调过程可以顺利完成,但使用新创建的模型时遇到了问题,即推理的时候模型没有发出声音。相比之下,我使用之前构建好的模型还能正常运行并产生声音(表明该环境没问题,是模型的问题)。 2.推理使用mps效果并不佳,不如cpu好。我测试了之前构建且运行良好的模型时,吞字吐字现象较为严重。
注:我系统为macos12
发现同样问题
我暂时还没遇到这些问题,不知道是不是版本的问题。我使用的是macOS 14版本。不知道有没有更多人能测试一下。 吞吐字现象严重有没有可能是项目本身的问题?好像说推理的字太多会导致出现吞吐字现象
我暂时还没遇到这些问题,不知道是不是版本的问题。我使用的是macOS 14版本。不知道有没有更多人能测试一下。 吞吐字现象严重有没有可能是项目本身的问题?好像说推理的字太多会导致出现吞吐字现象
感觉还是训练时间或者模型本身的问题,云端训练出来的模型效果确实更好一点
我在最后推理的时候遇到了问题,请问各位有遇到这个情况的吗
代码整理完毕,给各位写个具体的方法:
- 我把修改后的完整项目文件传到 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项目,非常感谢作者开源! 如果有任何问题或建议欢迎提出
注意,第六步应该为pip install funasr==0.8.7 pip install modelscope==1.10.0不然也会报错⚠️
请问现在是直接 git克隆最新项目然后使用这里的文档步骤安装就可以了吗?
请问现在是直接 git克隆最新项目然后使用这里的文档步骤安装就可以了吗?
是的