RVC-Boss / GPT-SoVITS

1 min voice data can also be used to train a good TTS model! (few shot voice cloning)
MIT License
33.24k stars 3.82k forks source link

Apple 芯片Mac模型本地推理和预处理 #93

Open RoversX opened 8 months ago

RoversX commented 8 months ago

本教程已过时,请参照Lion-Wu的教程,目前已经支持MPS训练和推理: https://github.com/RVC-Boss/GPT-SoVITS/issues/93#issuecomment-1905782184



Mac 训练比较困难,mps训练目前没测试成功,本地推理和预处理是可以的,效果挺不错,(稍微有吞字问题),感谢作者开源!

Screenshot 2024-01-18 at 2 23 51 PM Screenshot 2024-01-18 at 4 44 01 PM

推理

文件可以在Colab或者云服务商上训练然后把模型下载下来 整合包参考:https://github.com/RVC-Boss/GPT-SoVITS/issues/4

1.首先需要先把webui跑起来

python web.py
Screenshot 2024-01-19 at 2 06 21 PM

2.点Allow到浏览器打开

Screenshot 2024-01-19 at 2 07 08 PM

3. 选好GPT模型和SOVITS 模型

点击是否开启TTS推理WebUI

这个时候可能会报错,需要修改GPT_SoVITS/inference_webui.py用CPU推理

4. 需要改两个地方

  1. 把CUDA改成CPU
  2. 把半精度改成全精度 model.half() ---> model.float()
Screenshot 2024-01-18 at 2 03 36 PM Screenshot 2024-01-18 at 2 06 08 PM

修改好保存然后重新运行下就可以运行了。

python web.py

参考文件:https://github.com/RoversX/GPT-SoVITS/blob/main/GPT_SoVITS/inference_webui.py

Screenshot 2024-01-18 at 2 09 15 PM

预处理

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

Dx-wmc commented 8 months ago

你好,我m1芯片用conda安装gxx和pytorch-cuda=11.8的时候提示`Could not solve for environment specs Encountered problems while solving:

The environment can't be solved, aborting the operation`这个有解决办法吗

Lion-Wu commented 8 months ago

你好,我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这个包管理器来安装。以下是基本步骤:

  1. 确保你的Mac上安装了Homebrew。如果尚未安装,你可以从Homebrew的官网获取安装指令。

  2. 使用Homebrew安装GCC,这通常会包括gxx。在终端中运行brew install gcc来安装GCC。

  3. 安装完成后,可以通过在终端中运行g++ --version来检查是否成功安装了gxx

不要通过install.sh安装,会出问题

Dx-wmc commented 8 months ago

好不容易能运行了,按照RoversX的都改了,但是最后最后语音生成的时候直接error

image

代码区的报错是: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' 这又咋办啊

Dx-wmc commented 8 months ago

记录一下上面的解决方案:改一下config.py 改第二行is_half=False和第五行infer_device="cpu"

Dx-wmc commented 8 months ago

想问一下,M1是不是训练两个模型没用啊,我训练完了以后在推理那找不到模型

image
RoversX commented 8 months ago

想问一下,M1是不是训练两个模型没用啊,我训练完了以后在推理那找不到模型 image

Screenshot 2024-01-20 at 12 11 26 PM

模型在这两个文件夹里面,一个是GPT模型,一个是SoVITS模型

├── GPT_weights
   └── LeiJun-e15.ckpt
├── SoVITS_weights
  └── LeiJun_e10_s470.pth

Mac训练模型还是缓缓吧,你试试AutoDL上的镜像吧

HildaM commented 8 months ago

将cuda改为mps应该也可以吧?

RoversX commented 8 months ago

将cuda改为mps应该也可以吧?

我目前测试下还没有支持mps,要是可以的话还请告知

Lion-Wu commented 8 months ago

各位,修改了一下代码后成功跑在MPS上了!推理和训练都可以做,负载基本都在GPU上了。我有空整理一下代码发出来

Screenshot 2024-01-22 at 23 00 36 Screenshot 2024-01-22 at 23 17 10 Screenshot 2024-01-22 at 23 18 33 Screenshot 2024-01-22 at 23 22 26
RoversX commented 8 months ago

各位,修改了一下代码后成功跑在MPS上了!推理和训练都可以做,负载基本都在GPU上了。我有空整理一下代码发出来

Screenshot 2024-01-22 at 23 00 36 Screenshot 2024-01-22 at 23 17 10 Screenshot 2024-01-22 at 23 18 33 Screenshot 2024-01-22 at 23 22 26

👍👍👍

Dx-wmc commented 8 months ago

大家,修改一下代码后成功跑在MPS上了!推理和训练都可以做,负载基本都在GPU上去了。我有空整理一下代码发出来

截图 2024-01-22 23 00 36 截图 2024-01-22 23 17 10 截图 2024-01-22 23 18 33 截图 2024-01-22 23 22 26

怎么做到的,我也尝试过mps但是一直失败,等着大佬出教程啊。

Stanley-baby commented 8 months ago

整理好了吗?


发件人: 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: @.***>

Lion-Wu commented 8 months ago

代码整理完毕,给各位写个具体的方法:

  1. 我把修改后的完整项目文件传到 iCloud 中了,点击下载副本就可以了。链接
  2. 根据情况修改 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可手动调
  3. 创建 Conda 环境:
    conda create -n GPTSoVits python=3.9
    conda activate GPTSoVits
  4. 定位到项目目录:cd 你的项目路径
  5. 安装依赖:pip install -r requirements.txt
  6. 安装特定版本的ASR依赖。最新版本的funasr依赖改了,打标时会出错,所以安装此版本:pip install funasr==0.8.7
  7. 安装nightly版本pytorch,2.1.2实测会出错:pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu
  8. 如果没有安装ffmpeg,安装它:brew install ffmpeg
  9. 运行webUI即可:python webui.py

基本上大部分webUI内的功能都可使用MPS运行,不过有几个例外:

  1. UVR5 webui是使用CPU进行的,可以前往原项目地址下载Mac最新版本GUI,勾选GPU运行,速度会更快一点,可选功能也会更多。
  2. ASR功能由于使用阿里的依赖进行,更改成mps比较麻烦,不过CPU速度也快的。
  3. 我在代码中默认开启了PYTORCH_ENABLE_MPS_FALLBACK=1,遇到mps不支持的功能时自动使用cpu运行。

已知问题:存在内存泄漏,主要体现在推理时,多次推理后可能导致内存占用很高,暂时不知道如何解决。不过大体上不太影响,重启推理UI可以释放内存。

修改过程主要就是对所有分布式训练的代码进行更改,因为mps上不需要也不支持分布式训练。

代码改动较复杂,之后如果可能,我会尝试给作者提交PR。 这是我目前为止用过的效果最好的TTS项目,非常感谢作者开源! 如果有任何问题或建议欢迎提出

Stanley-baby commented 8 months ago

一定要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)

代码整理完毕,给各位写个具体的方法:

  1. 我把修改后的完整项目文件传到 iCloud 中了,点击下载副本就可以了。链接https://www.icloud.com.cn/iclouddrive/038-pyt2oEguTk5cIUr_ei0NA#GPT-SoVITS
  2. 根据情况修改 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可手动调

  1. 创建 Conda 环境:

conda create -n GPTSoVits python=3.9 conda activate GPTSoVits

  1. 定位到项目目录:cd 你的项目路径
  2. 安装依赖:pip install -r requirements.txt
  3. 安装特定版本的ASR依赖。最新版本的funasr依赖改了,打标时会出错,所以安装此版本:pip install funasr==0.8.7
  4. 安装nightly版本pytorch,2.1.2实测会出错:pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu
  5. 如果没有安装ffmpeg,安装它:brew install ffmpeg
  6. 运行webUI即可:python wbeui.py

基本上大部分webUI内的功能都可使用MPS运行,不过有几个例外:

  1. UVR5 webui是使用CPU进行的,可以前往原项目地址https://github.com/Anjok07/ultimatevocalremovergui下载Mac最新版本GUI,勾选GPU运行,速度会更快一点,可选功能也会更多。
  2. ASR功能由于使用阿里的依赖进行,更改成mps比较麻烦,不过CPU速度也快的。
  3. 我在代码中默认开启了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: @.***>

Lion-Wu commented 8 months ago

一定要Python3.9吗?3.11行不行?

这个我没尝试过,readme中写的3.9我就用的3.9,你可以试试看

Stanley-baby commented 8 months ago

依赖怎么也装不上。。。

ERROR: Could not find a version that satisfies the requirement scipy (from versions: none) ERROR: No matching distribution found for scipy

Lion-Wu commented 8 months ago

依赖怎么也装不上。。。

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中删除再重新安装依赖 可以提供更多系统和版本信息吗?

Stanley-baby commented 8 months ago

好像可以了,请问下使用你云盘中的副本,还需要安装brew install gcc吗?还是说直接就按照你的步骤来就可以了?

Lion-Wu commented 8 months ago

好像可以了,请问下使用你云盘中的副本,还需要安装brew install gcc吗?还是说直接就按照你的步骤来就可以了?

应该不需要的吧,Mac上有Clang的

Stanley-baby commented 8 months ago

大佬 为什么我的界面是英文的呢?语言在哪里改呀? CleanShot 2024-01-23 at 22 08 54@2x

Lion-Wu commented 8 months ago

大佬 为什么我的界面是英文的呢?语言在哪里改呀? CleanShot 2024-01-23 at 22 08 54@2x

这个应该是根据系统设置的语言来的,具体不太清楚,你可以先用网页翻译软件,我再看看。

Dx-wmc commented 8 months ago

我测试了一下,完成度很高,可以说解决了mac不能构建模型的弊端。 但是有一些问题: 1.模型的微调过程可以顺利完成,但使用新创建的模型时遇到了问题,即推理的时候模型没有发出声音。相比之下,我使用之前构建好的模型还能正常运行并产生声音(表明该环境没问题,是模型的问题)。 2.推理使用mps效果并不佳,不如cpu好。我测试了之前构建且运行良好的模型时,吞字吐字现象较为严重。

注:我系统为macos12

RoversX commented 8 months ago

目前测试下来可以正常调用👍

Screenshot 2024-01-23 at 11 26 37 AM
RoversX commented 8 months ago

我测试了一下,完成度很高,可以说解决了mac不能构建模型的弊端。 但是有一些问题: 1.模型的微调过程可以顺利完成,但使用新创建的模型时遇到了问题,即推理的时候模型没有发出声音。相比之下,我使用之前构建好的模型还能正常运行并产生声音(表明该环境没问题,是模型的问题)。 2.推理使用mps效果并不佳,不如cpu好。我测试了之前构建且运行良好的模型时,吞字吐字现象较为严重。

注:我系统为macos12

发现同样问题

Lion-Wu commented 8 months ago

我暂时还没遇到这些问题,不知道是不是版本的问题。我使用的是macOS 14版本。不知道有没有更多人能测试一下。 吞吐字现象严重有没有可能是项目本身的问题?好像说推理的字太多会导致出现吞吐字现象

RoversX commented 8 months ago

我暂时还没遇到这些问题,不知道是不是版本的问题。我使用的是macOS 14版本。不知道有没有更多人能测试一下。 吞吐字现象严重有没有可能是项目本身的问题?好像说推理的字太多会导致出现吞吐字现象

感觉还是训练时间或者模型本身的问题,云端训练出来的模型效果确实更好一点

CrusherStanley commented 8 months ago

我在最后推理的时候遇到了问题,请问各位有遇到这个情况的吗

截屏2024-01-25 03 28 44
HuaQitian519 commented 8 months ago

代码整理完毕,给各位写个具体的方法:

  1. 我把修改后的完整项目文件传到 iCloud 中了,点击下载副本就可以了。链接
  2. 根据情况修改 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可手动调
  1. 创建 Conda 环境:
conda create -n GPTSoVits python=3.9
conda activate GPTSoVits
  1. 定位到项目目录:cd 你的项目路径
  2. 安装依赖:pip install -r requirements.txt
  3. 安装特定版本的ASR依赖。最新版本的funasr依赖改了,打标时会出错,所以安装此版本:pip install funasr==0.8.7
  4. 安装nightly版本pytorch,2.1.2实测会出错:pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu
  5. 如果没有安装ffmpeg,安装它:brew install ffmpeg
  6. 运行webUI即可:python webui.py

基本上大部分webUI内的功能都可使用MPS运行,不过有几个例外:

  1. UVR5 webui是使用CPU进行的,可以前往原项目地址下载Mac最新版本GUI,勾选GPU运行,速度会更快一点,可选功能也会更多。
  2. ASR功能由于使用阿里的依赖进行,更改成mps比较麻烦,不过CPU速度也快的。
  3. 我在代码中默认开启了PYTORCH_ENABLE_MPS_FALLBACK=1,遇到mps不支持的功能时自动使用cpu运行。

已知问题:存在内存泄漏,主要体现在推理时,多次推理后可能导致内存占用很高,暂时不知道如何解决。不过大体上不太影响,重启推理UI可以释放内存。

修改过程主要就是对所有分布式训练的代码进行更改,因为mps上不需要也不支持分布式训练。

代码改动较复杂,之后如果可能,我会尝试给作者提交PR。 这是我目前为止用过的效果最好的TTS项目,非常感谢作者开源! 如果有任何问题或建议欢迎提出

注意,第六步应该为pip install funasr==0.8.7 pip install modelscope==1.10.0不然也会报错⚠️

Stanley-baby commented 8 months ago

请问现在是直接 git克隆最新项目然后使用这里的文档步骤安装就可以了吗?

Lion-Wu commented 8 months ago

请问现在是直接 git克隆最新项目然后使用这里的文档步骤安装就可以了吗?

是的

brownppfeng commented 8 months ago

一键三连的时候,报下面错误咋搞

"/Users/brownfeng/miniforge3/envs/GPTSoVits/bin/python" GPT_SoVITS/prepare_datasets/1-get-text.py "/Users/brownfeng/miniforge3/envs/GPTSoVits/bin/python" GPT_SoVITS/prepare_datasets/1-get-text.py [nltk_data] Error loading averaged_perceptron_tagger: <urlopen error [nltk_data] [Errno 60] Operation timed out> [nltk_data] Error loading averaged_perceptron_tagger: <urlopen error [nltk_data] [Errno 60] Operation timed out>

Lion-Wu commented 8 months ago

一键三连的时候,报下面错误咋搞

"/Users/brownfeng/miniforge3/envs/GPTSoVits/bin/python" GPT_SoVITS/prepare_datasets/1-get-text.py "/Users/brownfeng/miniforge3/envs/GPTSoVits/bin/python" GPT_SoVITS/prepare_datasets/1-get-text.py [nltk_data] Error loading averaged_perceptron_tagger: <urlopen error [nltk_data] [Errno 60] Operation timed out> [nltk_data] Error loading averaged_perceptron_tagger: <urlopen error [nltk_data] [Errno 60] Operation timed out>

检查网络问题,或者手动根据readme步骤下载预训练模型

brownppfeng commented 8 months ago

一键三连的时候,报下面错误咋搞 "/Users/brownfeng/miniforge3/envs/GPTSoVits/bin/python" GPT_SoVITS/prepare_datasets/1-get-text.py "/Users/brownfeng/miniforge3/envs/GPTSoVits/bin/python" GPT_SoVITS/prepare_datasets/1-get-text.py [nltk_data] Error loading averaged_perceptron_tagger: <urlopen error [nltk_data] [Errno 60] Operation timed out> [nltk_data] Error loading averaged_perceptron_tagger: <urlopen error [nltk_data] [Errno 60] Operation timed out>

检查网络问题,或者手动根据readme步骤下载预训练模型

谢谢大佬我看看

kingkick commented 8 months ago

我测试了一下,完成度很高,可以说解决了mac不能构建模型的弊端。 但是有一些问题: 1.模型的微调过程可以顺利完成,但使用新创建的模型时遇到了问题,即推理的时候模型没有发出声音。相比之下,我使用之前构建好的模型还能正常运行并产生声音(表明该环境没问题,是模型的问题)。 2.推理使用mps效果并不佳,不如cpu好。我测试了之前构建且运行良好的模型时,吞字吐字现象较为严重。

注:我系统为macos12

类似问题, macos13.6.4,intel,可能微调sovits是有问题,推理的时候声音模糊不清,sovits更换官方提供就能听清楚一些。

kingkick commented 8 months ago

我测试了一下,完成度很高,可以说解决了mac不能构建模型的弊端。 但是有一些问题: 1.模型的微调过程可以顺利完成,但使用新创建的模型时遇到了问题,即推理的时候模型没有发出声音。相比之下,我使用之前构建好的模型还能正常运行并产生声音(表明该环境没问题,是模型的问题)。 2.推理使用mps效果并不佳,不如cpu好。我测试了之前构建且运行良好的模型时,吞字吐字现象较为严重。 注:我系统为macos12

类似问题, macos13.6.4,intel,微调GPT这步没什么问题,可能在微调sovits时有问题,推理用微调后sovits模型声音模糊不清,sovits更换官方提供模型就能听清楚一些。

confeitocyan commented 8 months ago
iShot_2024-01-30_21 01 09 image

我是M1 air 內存8G macos 12.6.8, 我也有webui是英文的問題 還有我的sovits在微調時,會cuda報錯,明明已經結束了,但不會停止 然後,我的推理似乎無法成功,出來沒聲音。

Lion-Wu commented 8 months ago

iShot_2024-01-30_21 01 09 image 我是M1 air 內存8G macos 12.6.8, 我也有webui是英文的問題 還有我的sovits在微調時,會cuda報錯,明明已經結束了,但不會停止 然後,我的推理似乎無法成功,出來沒聲音。

这个不是报错。训练结束后webui上应该会显示结束的,如果没有可以稍微等一会儿。推理尝试使用其他模型或者重新训练看看,应该不是mps的问题。

manwallet commented 6 months ago

代码整理完毕,给各位写个具体的方法:

  1. 我把修改后的完整项目文件传到 iCloud 中了,点击下载副本就可以了。链接
  2. 根据情况修改 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可手动调
  1. 创建 Conda 环境:
conda create -n GPTSoVits python=3.9
conda activate GPTSoVits
  1. 定位到项目目录:cd 你的项目路径
    1. 安装依赖:pip install -r requirements.txt
    2. 安装特定版本的ASR依赖。最新版本的funasr依赖改了,打标时会出错,所以安装此版本:pip install funasr==0.8.7
    3. 安装nightly版本pytorch,2.1.2实测会出错:pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu
    4. 如果没有安装ffmpeg,安装它:brew install ffmpeg
    5. 运行webUI即可:python webui.py

基本上大部分webUI内的功能都可使用MPS运行,不过有几个例外:

  1. UVR5 webui是使用CPU进行的,可以前往原项目地址下载Mac最新版本GUI,勾选GPU运行,速度会更快一点,可选功能也会更多。
  2. ASR功能由于使用阿里的依赖进行,更改成mps比较麻烦,不过CPU速度也快的。
  3. 我在代码中默认开启了PYTORCH_ENABLE_MPS_FALLBACK=1,遇到mps不支持的功能时自动使用cpu运行。

已知问题:存在内存泄漏,主要体现在推理时,多次推理后可能导致内存占用很高,暂时不知道如何解决。不过大体上不太影响,重启推理UI可以释放内存。

修改过程主要就是对所有分布式训练的代码进行更改,因为mps上不需要也不支持分布式训练。

代码改动较复杂,之后如果可能,我会尝试给作者提交PR。 这是我目前为止用过的效果最好的TTS项目,非常感谢作者开源! 如果有任何问题或建议欢迎提出

请问大佬可以出一个新版本吗?这个已经成功在Mac Studio使用GPU了.速度翻倍,非常感谢

Lion-Wu commented 6 months ago

代码整理完毕,给各位写个具体的方法:

  1. 我把修改后的完整项目文件传到 iCloud 中了,点击下载副本就可以了。链接
  2. 根据情况修改 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可手动调
  1. 创建 Conda 环境:
conda create -n GPTSoVits python=3.9
conda activate GPTSoVits
  1. 定位到项目目录:cd 你的项目路径
  2. 安装依赖:pip install -r requirements.txt
  3. 安装特定版本的ASR依赖。最新版本的funasr依赖改了,打标时会出错,所以安装此版本:pip install funasr==0.8.7
  4. 安装nightly版本pytorch,2.1.2实测会出错:pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu
  5. 如果没有安装ffmpeg,安装它:brew install ffmpeg
  6. 运行webUI即可:python webui.py

基本上大部分webUI内的功能都可使用MPS运行,不过有几个例外:

  1. UVR5 webui是使用CPU进行的,可以前往原项目地址下载Mac最新版本GUI,勾选GPU运行,速度会更快一点,可选功能也会更多。
  2. ASR功能由于使用阿里的依赖进行,更改成mps比较麻烦,不过CPU速度也快的。
  3. 我在代码中默认开启了PYTORCH_ENABLE_MPS_FALLBACK=1,遇到mps不支持的功能时自动使用cpu运行。

已知问题:存在内存泄漏,主要体现在推理时,多次推理后可能导致内存占用很高,暂时不知道如何解决。不过大体上不太影响,重启推理UI可以释放内存。 修改过程主要就是对所有分布式训练的代码进行更改,因为mps上不需要也不支持分布式训练。 代码改动较复杂,之后如果可能,我会尝试给作者提交PR。 这是我目前为止用过的效果最好的TTS项目,非常感谢作者开源! 如果有任何问题或建议欢迎提出

请问大佬可以出一个新版本吗?这个已经成功在Mac Studio使用GPU了.速度翻倍,非常感谢

使用仓库最新代码就行了,不过现在使用mps加速第一有内存泄漏,第二训练出来的模型生成的声音是很差的,所以我们暂时使用CPU,等pytorch mps优化好后再使用GPU加速。

manwallet commented 6 months ago

好的 不过我用这个确实速度非常快 感谢🥹

Lion-Wu @.***>于2024年3月19日 周二11:23写道:

代码整理完毕,给各位写个具体的方法:

  1. 我把修改后的完整项目文件传到 iCloud 中了,点击下载副本就可以了。链接 https://www.icloud.com.cn/iclouddrive/038-pyt2oEguTk5cIUr_ei0NA#GPT-SoVITS
  2. 根据情况修改 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可手动调

  1. 创建 Conda 环境:

conda create -n GPTSoVits python=3.9 conda activate GPTSoVits

  1. 定位到项目目录:cd 你的项目路径
  2. 安装依赖:pip install -r requirements.txt
  3. 安装特定版本的ASR依赖。最新版本的funasr依赖改了,打标时会出错,所以安装此版本:pip install funasr==0.8.7
  4. 安装nightly版本pytorch,2.1.2实测会出错:pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu
  5. 如果没有安装ffmpeg,安装它:brew install ffmpeg
  6. 运行webUI即可:python webui.py

基本上大部分webUI内的功能都可使用MPS运行,不过有几个例外:

  1. UVR5 webui是使用CPU进行的,可以前往原项目地址 https://github.com/Anjok07/ultimatevocalremovergui 下载Mac最新版本GUI,勾选GPU运行,速度会更快一点,可选功能也会更多。
  2. ASR功能由于使用阿里的依赖进行,更改成mps比较麻烦,不过CPU速度也快的。
  3. 我在代码中默认开启了PYTORCH_ENABLE_MPS_FALLBACK=1,遇到mps不支持的功能时自动使用cpu运行。

已知问题:存在内存泄漏,主要体现在推理时,多次推理后可能导致内存占用很高,暂时不知道如何解决。不过大体上不太影响,重启推理UI可以释放内存。 修改过程主要就是对所有分布式训练的代码进行更改,因为mps上不需要也不支持分布式训练。 代码改动较复杂,之后如果可能,我会尝试给作者提交PR。 这是我目前为止用过的效果最好的TTS项目,非常感谢作者开源! 如果有任何问题或建议欢迎提出

请问大佬可以出一个新版本吗?这个已经成功在Mac Studio使用GPU了.速度翻倍,非常感谢

使用仓库最新代码就行了,不过现在使用mps加速第一有内存泄漏,第二训练出来的模型生成的声音是很差的,所以我们暂时使用CPU,等pytorch mps优化好后再使用GPU加速。

— Reply to this email directly, view it on GitHub https://github.com/RVC-Boss/GPT-SoVITS/issues/93#issuecomment-2005682641, or unsubscribe https://github.com/notifications/unsubscribe-auth/A2DSWRXJCK7CIMNXEME2NFDYY6VR3AVCNFSM6AAAAABCCR5YGWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMBVGY4DENRUGE . You are receiving this because you commented.Message ID: @.***>