So Vits Svc|人声克隆|音频模拟|唱歌仿声
So Vits Svc是一个用来模拟人声的开源项目,可以将您训练好的声音模型,用于生成类似微软云希、抖音文字转语音等效果。经本站测试,该项目对于电脑的硬件要求并不高,但是需要较为繁琐的准备工作,还有大量的声音素材。本站提供完整工具下载、安装教程和相关问题解析及处理方案。
希望大家能够务必遵循So-VITS使用规约:
1. 任何发布到视频平台的基于sovits制作的视频,都必须要在简介明确指明用于变声器转换的输入源歌声、音频,例如:使用他人发布的视频/音频,通过分离的人声作为输入源进行转换的,必须要给出明确的原视频、音乐链接;若使用是自己的人声,或是使用其他歌声合成引擎合成的声音作为输入源进行转换的,也必须在简介加以说明。 2. 由输入源造成的侵权问题需自行承担全部责任和一切后果。使用其他商用歌声合成软件作为输入源时,请确保遵守该软件的使用条例,注意,许多歌声合成引擎使用条例中明确指明不可用于输入源进行转换。 3. 请自行解决数据集的授权问题,任何由于使用非授权数据集进行训练造成的问题,需自行承担全部责任和一切后果。
软件下载
建议下载本站所提供的安装包,因为本站所提供的压缩包内已经解决了大部分问题,并且提供了快捷脚本,可以避免出现很多已知的问题。
官网下载
svc-develop-team/so-vits-svc: SoftVC VITS Singing Voice Conversion (github.com)
网盘下载
使用教程
如果您想训练自己的声音模型并加以使用,需要以后几个步骤。
- 提取干音
- 音频切分
- 预处理
- 训练模型
- 配置模型
- 推理预测
本站将会对每一个步骤进行详细的解析,所有您可能遇到的问题已经写入后面的说明内,下面开始教学。
提取干音
如果您还不会提取干音,请先参考以下文章,使用Ultimate Vocal Remover提取干音:
站长之前做过几年直播,所以有很多录音,但是因为当时背景音乐声音特别特别小,所以在提取干音时,效果极差,提取干音这一步几乎没有任何效果,也不知道训练出来的数据到底怎么样。而且因为站长没有别人的干音数据,所以只能就用这个对付训练了吧。
本次站长所使用的音频素材大概在10个小时左右,素材的长度应该是够用的,但是质量很一般。什么样的算是高质量音频素材?如果您想用来唱歌,那么您最好素材里面大部分都是唱歌的素材;如果您想用来说话,那么最好都是说话的素材。
下面是站长的音频素材之一,原版和提取干声之后的效果对比如下,只截取42秒。站长声音一般,可能脏了各位的耳朵,请见谅。
由于我这种音频属于特殊情况,背景音乐声音过小且音乐中存在人声,所以分离后的效果很糟糕,即使已经是干音,效果依然很差。
由于背景音乐还是太明显了,站长又加了降噪,如果您的音频没有我这种情况,是不需要降噪的。
通过UVR处理提取出所有音频的干音之后,本站将他们统一放到了D:\openai.wiki\so-vits-svc\output
目录下。共计10个音频素材,每个音频素材时长一小时,提取之后将会一分为二,分别为BGM和人声,以下是当前已经提取之后的声音素材文件目录结构。
D:\openai.wiki\so-vits-svc\output └─10_1111-2022-09-07_(Instrumental).wav └─10_1111-2022-09-07_(Vocals).wav └─1_1102-2022-08-28_(Instrumental).wav └─1_1102-2022-08-28_(Vocals).wav └─2_1103-2022-08-29_(Instrumental).wav └─2_1103-2022-08-29_(Vocals).wav └─3_1104-2022-08-30_(Instrumental).wav └─3_1104-2022-08-30_(Vocals).wav └─4_1105-2022-08-31_(Instrumental).wav └─4_1105-2022-08-31_(Vocals).wav └─5_1106-2022-09-01_(Instrumental).wav └─5_1106-2022-09-01_(Vocals).wav └─6_1107-2022-09-02_(Instrumental).wav └─6_1107-2022-09-02_(Vocals).wav └─7_1108-2022-09-03_(Instrumental).wav └─7_1108-2022-09-03_(Vocals).wav └─8_1109-2022-09-04_(Instrumental).wav └─8_1109-2022-09-04_(Vocals).wav └─9_1110-2022-09-05_(Instrumental).wav └─9_1110-2022-09-05_(Vocals).wav
可以看到,目前素材目录里面的每个音频都存在Vocals和Instrumental两种分类,分别是提取出来的背景音乐和人声,我们只需要人声(Vocals
),背景音乐(Instrumental
)删除掉就好。
删除掉背景音乐之后的目录结构如下:
D:\openai.wiki\so-vits-svc\output └─10_1111-2022-09-07_(Vocals).wav └─1_1102-2022-08-28_(Vocals).wav └─2_1103-2022-08-29_(Vocals).wav └─3_1104-2022-08-30_(Vocals).wav └─4_1105-2022-08-31_(Vocals).wav └─5_1106-2022-09-01_(Vocals).wav └─6_1107-2022-09-02_(Vocals).wav └─7_1108-2022-09-03_(Vocals).wav └─8_1109-2022-09-04_(Vocals).wav └─9_1110-2022-09-05_(Vocals).wav
音频分割
因为目前我的每个音频长度都是1小时,这对于显存来说是非常恐怖的,所以我们需要将每个音频进行切分,以达到每个音频的时间长度为较小的尺寸。
音频批量分割工具下载
下载本站所提供的音频批量分割工具Audio Slicer
,打开该工具文件夹内的slicer-gui.exe
程序。
- 点击
Add Audio Files...
按钮,选择我们已经保存的干声文件夹。 - 点击右侧的
Browse...
按钮,选择切片分割后的文件目录。 - 建议将Minimum Length(ms)的数值设置为:30000,30000ms(毫秒)=30s(秒)。
- 其它选项,保持默认即可。
经本站测试,如果分割的音频时间过短,将会造成训练失败,所以您可以适当调整,但不要时长过短。
另外,本站将分割后的音频保存目录设置为.\so-vits-svc\dataset_raw\openai_wiki_Drug
,在dataset_raw
内的所有文件夹将会自动识别为训练素材,所以不用担心命名问题。
请耐心等待音频素材分割,切割完成后将会收到如下提示。
输出后的目录信息如左图,共计1081个音频文件。
预数理
将分割好的文件夹openai_wiki_Drug
做为素材进行预训练,目前openai_wiki_Drug
的所在目录为D:\openai.wiki\so-vits-svc\dataset_raw
。
点击本站所提供的.\so-vits-svc
文件夹内的1、数据预处理.bat
,将会自动对openai_wiki_Drug
文件夹内的音频进行数据预处理。
1081段音频文件,居然只用了14分59秒
,速度还挺快的。
预处理文件完成之后,将会在.\openai.wiki\so-vits-svc\dataset\44k
下生成同名文件夹openai_wiki_Drug
,里面就是预训练好的数据。
注意:如果并不是从我站下载的so-vits-svc
,那么您可能会遇到报错找不到.\filelists\train.txt
和.\filelists\val.txt
,本站已修复此问题,其实就是在.\so-vits-svc\filelists
目录下新建两个空的txt文档就要可以啦,名称分别为train.txt
和val.txt
。
训练模型
在训练之前,我们需要先更改一个文件,位于.\so-vits-svc\configs\config.json
,该文件中有一属性需要根据自身情况调整。
"batch_size": 8,
第13行batch_size
属性,该属性的需要您根据自己的显卡GPU进行调整,本站长的显卡为2080TI,所以将batch_size属性设置为12。
建议参数
本站只是推测的可用参数,是否合适需要您自行测试。
- RTX 2060
- “batch_size”: 8,
- RTX 2080TI
- “batch_size”: 12,
- RTX 3060
- “batch_size”: 12,
- RTX 3090
- “batch_size”: 15,
- RTX 4090
- “batch_size”: 20,
step
为已训练步数,一般10,000次以上
就可以正常使用了。
您可以随时停止训练,因为它是支持断点续练的,所以您完全不用担心。本站长训练的步数4万步左右,差不多耗时10个小时停止了训练,直接关掉CMD窗口即可。
此时我们可以在.\so-vits-svc\logs\44k
目录下看到已训练好的一些PHT后缀文件,目录结构如下:
D:\openai.wiki\so-vits-svc\logs\44k> │ config.json │ D_0.pth │ D_41600.pth │ D_42400.pth │ D_43200.pth │ events.out.tfevents.1679480221.openAI.32440.0 │ G_0.pth │ G_41600.pth //已训练41600步的模型文件 │ G_42400.pth //已训练42400步的模型文件 │ G_43200.pth //已训练43200步的模型文件 │ train.log //训练时记录的日志文件 │ └─eval events.out.tfevents.1679480221.openAI.32440.1
训练聚类模型
训练聚类模型是指将您已经训练好的数据打包成一个模型,此时直接执行.\openai.wiki\so-vits-svc\3、训练聚类模型.bat
脚本即可,无需任何配置。
在训练聚类模型时,您将会一直停留在这样的窗口中,没有任何回显功能,本站长起初以为是卡了,关闭了好几次,但是有一次打开之后去上了个厕所,回来之后……就变成了下图这样:
居然是正在后台偷偷跑!导致站长在这一步重复操作了很多次,耽误了很长时间,因为找了挺多up主的视频,都是一带而过,并没有详细介绍。如果您不确定是否为假死的状态,可以打开任务管理器看一下。
当您看到上图的界面时,其实就已经代表模型生成完毕,我们可以在.\openai.wiki\so-vits-svc\logs\44k\
目录下找到新生成的.pt文件
,本站目录内的模型名称为kmeans_10000.pt
,
D:\openai.wiki\so-vits-svc\logs\44k> │ config.json │ D_0.pth │ D_41600.pth │ D_42400.pth │ D_43200.pth │ events.out.tfevents.1679480221.openAI.32440.0 │ G_0.pth │ G_41600.pth │ G_42400.pth │ G_43200.pth │ kmeans_10000.pt //聚类模型 │ train.log │ └─eval events.out.tfevents.1679480221.openAI.32440.1
配置模型
我们已经训练完成声音模型和聚类模型,此时我们需要将这些模型加载到配置文件呢。
修改.\openai.wiki\so-vits-svc
目录内的app.py
文件,找到第19行
,我们仅修改这一行即可。
model = Svc("./logs/44k/G_42400.pth", "./configs/config.json", cluster_model_path="./logs/44k/kmeans_10000.pt")
本站训练完成后的声音模型为G_42400.pth
,自定义聚类模型为kmeans_10000.pt
,其它保持默认即可,保存。
推理预测
到这一步,其实我们就已经可以正常使用啦。
打开.\openai.wiki\so-vits-svc
目录内的4、推理预测.bat
文件,等待片刻,将会自动加载出如下信息。
当您看到http://127.0.0.1:7860这一行时,代表已经可以正常使用。
我们在浏览器中打开网址http://127.0.0.1:7860后,可以看到如下界面:
参数解析
- 音色
- 我们训练的语音模型
- 上传音频
- 我们想要模型的声音音频,必须要小于90秒。
- 变调
- 如果您想和原音色一致,尽量不要调整该数值。
- 聚类模型混合比例
- 本站理解为语音模型和基础模型的融合比例
- 自动f0预测
- 开启后变调功能失效,唱歌不要勾选,建议仅在朗读文本时使用。
- 切片阈值
- 建议保持默认
- noise_scale
- 建议保持默认
- 转换
- 点击该按钮之后将会开始执行推理任务,将上传的语音与音色进行模拟。
- Output Message
- 音频转换状态,会返回音频转换成功或失败的状态。
- Output Audio
- 转换成功的音频
⚠️警告:上传想要模拟的音频文件时,必须要使用使用16位的WAV格式,否则转换必会失败。
拟声教程
文本朗读
首先,我们准备一段文本朗读的音频,本站使用比较简单的方式,通过剪映的文本朗读功能倒出一段音频,音频内容如下:
openai.wiki是一个关于AI相关内容的新闻教程网站,每日更新发布关于ai行业领域的最新资讯,并提供相关的github开源项目部署教程,对ai绘画、声音、聊天机器人、音视频处理等相关内容提供全方位教学。
本站这里导出了两上版本,一男一女的朗读效果分别如下:
此时我们在所有参数保持默认的情况下,尝试对女声进行转换,将会得到如下结果。
我可以发现,so-vits-svc默认是对声调也进行模拟的,对于女生的模拟这听起来非常难受,本站尝试将音调修改为-15才稍微好一些,但还是半死不活,没有什么活力的样子。
下面进行男声的测试,可以听到该效果虽然有活力,但是有电音,可能是因为对电音部分的训练素材不足,所以导致该问题的出现。
唱歌模拟
关于唱歌的模拟部分,如果我们直接上传整首歌曲,其实默认效果非常差。但是我们先增加一个步骤,那就可以让唱歌的效果提升几个档次。
人声分离,我们将歌手的声音就行分离,然后进行模拟,这样效果会非常好。
下面是将整首歌直接上传之后模拟得到的结果,它会连同伴奏一起模拟出来,非常鬼畜:
下面是将人声提取之后进行模拟,所得到的效果:
此时的效果依然奇怪,但是已经好了很多,我们加上将伴奏和人声合成到一起,效果就又会提升一些:
唱到后面不太行,可能因为站长的音频素材中没有高音部分,也没有唱歌部分,所以效果很差。
再来一个演示
常见报错信息
- 报错:UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xd0 in position xx
- 数据集文件名中不要包含中文或日文等非西文字符。
- 报错:页面文件太小,无法完成操作。
- 调整一下虚拟内存大小,具体的方法各种地方一搜就能搜到,不展开了。
- 报错:UnboundLocalError: local variable ‘audio’ referenced before assignment
- 上传的推理音频需要是16位整数wav格式,用Au转换一下就好。或者装个ffmpeg一劳永逸地解决问题。
- 报错:AssertionError: CPU training is not allowed.
- 非N卡跑不了的。
- 报错:torch.cuda.OutOfMemoryError: CUDA out of memory
- 爆显存了,试着把
batch_size
改小,改到1还爆的话建议云端训练。
- 爆显存了,试着把
- 报错:RuntimeError: DataLoader worker (pid(s) xxxx) exited unexpectedly
- 把虚拟内存再调大一点。
- 报错:NotImplementedError: Only 2D, 3D, 4D, 5D padding with non-constant padding are supported for now
- 数据集切片切太长了,5-10秒差不多。
- 报错:CUDA error: CUBLAS_STATUS_NOT_INITIALIZED when calling ‘cublasCreate(handle)’
- 爆显存了,基本上跟CUDA有关的报错大都是爆显存……
- 报错:torch.multiprocessing.spawn.ProcessExitedException: process 0 terminated with exit code 3221225477
- 调大虚拟内存,管理员运行脚本
- 报错:’HParams’ object has no attribute ‘xxx’
- 无法找到音色,一般是配置文件和模型没对应,打开配置文件拉到最下面看看有没有你训练的音色
- 报错:raise ProcessExitedException( torch.multiprocessing.spawn.ProcessExitedException: process 0 terminated with exit code 3221225477
- GPU显存不足
- 报错:error, emb_g.weight is not in the checkpoint INFO:44k:emb_g.weight is not in the checkpoint load
- 删除
.\so-vits-svc\logs\44k
目录下的G_0.pth
和D_0.pth
文件,重新训练。
- 删除
常见问答
- Q: 跑这个的最低配置要求是啥啊?
- A: 支持CUDA的6G显存以上的N卡,硬盘也留足一点空间。
- Q: A卡真的跑不了吗
- A: 理论上可以在Ubuntu或Linux环境下通过ROCm来实现,但是比较麻烦,小白建议放弃直接去云端。
- Q: 我的显卡达不到最低要求,云端又心疼钱,真的没法训练了吗?
- A: 建议去看
DDSP-SVC
项目,效果差一点但也能听,最重要的是对低配非常友好。
- A: 建议去看
- Q: 用UVR5分离人声的时候声音会失真,还有什么更给力的工具吗?
- A: 理论上UVR5已经是目前最强的人声分离工具了,原曲如果伴奏声音太大轨道太复杂是一定会有失真的,建议选原曲的时候选择伴奏简单人声清楚的效果会好很多。
- Q: Audio Slicer 切出来的音频有的长达几十秒甚至几分钟,是怎么回事?
- A: 切片长度建议5-15秒,训练时过长部分会被自动丢弃。切出来过长的音频可以调整一下slicer里的
maximum silence length
这一条,改成500或者更低。还有过长的音频就自己用Au之类的手动切一下啦。
- A: 切片长度建议5-15秒,训练时过长部分会被自动丢弃。切出来过长的音频可以调整一下slicer里的
- Q: 我怎么判断模型有没有训练好?
- A: 数据集数量正常的情况下(几百条),可以每隔几千步(是总步数不是epoch)跑出来的模型推理听一下,你觉得ok就ok,一般一万步就可以有一个不错的效果了。或者有代码基础的可以用
tensorboard
查看一下损失率收敛趋势。
- A: 数据集数量正常的情况下(几百条),可以每隔几千步(是总步数不是epoch)跑出来的模型推理听一下,你觉得ok就ok,一般一万步就可以有一个不错的效果了。或者有代码基础的可以用
- Q: 那么问题来了,
tensorboard
怎么用?- A:
python38\Scripts\tensorboard.exe --logdir logs\44k
- A:
- Q: 我在训练途中按
CTRL+C
暂停训练,继续训练的时候为什么从头开始/步数掉了很多呢?- A: 视频里说的有点歧义,其实是从你上一个保存的模型的进度开始的,比如保存的一个模型是G_8000, 即使你训练到了第8799步,只要下一个模型还没保存,继续训练的时候都是从第8000步开始的。同理,如果一个模型也没保存,那就是从头开始训练。
- Q: 如果我在训练中途想要追加一些数据集该怎么办呢?
- A: 需要重新预处理并重新训练。
- Q: 我为什么没有聚类模型啊?
- A: 重看一遍教程。
- Q: 训练聚类模型的时候显卡根本没占用是怎么会是呢?
- A: 聚类模型训练吃的是你的CPU,看一下python进程在占用CPU就是在训练,等就行了。
- Q: 我实在是太懒了,只想让AI帮我读稿子,不想自己录原声再推理,有啥办法吗?
- A: 可以考一下
VITS项目
,最近有个VITS fast fine-tuning
的方法,几分钟的素材就能练出比较相似的声音,虽然效果没那么好但它实在是太方便了。
- A: 可以考一下
- Q: 云端训练好的模型怎么在本地用?
- A: 下载G模型和对应的config文件,放到本地的对应文件夹就行(
.\logs\44k
和.\configs
)
- A: 下载G模型和对应的config文件,放到本地的对应文件夹就行(
- Q: 我实在不会搞了,请问能代训练吗?有偿的那种。
- A: 可以,每1万步100元。
- Q: 我训练和推理都很顺利!现在已经做了一首翻唱了,想上传到网络,有什么注意事项吗?
- A: 请务必遵循So-VITS使用规约:
- 任何发布到视频平台的基于sovits制作的视频,都必须要在简介明确指明用于变声器转换的输入源歌声、音频,例如:使用他人发布的视频/音频,通过分离的人声作为输入源进行转换的,必须要给出明确的原视频、音乐链接;若使用是自己的人声,或是使用其他歌声合成引擎合成的声音作为输入源进行转换的,也必须在简介加以说明。
- 由输入源造成的侵权问题需自行承担全部责任和一切后果。使用其他商用歌声合成软件作为输入源时,请确保遵守该软件的使用条例,注意,许多歌声合成引擎使用条例中明确指明不可用于输入源进行转换。
- 请自行解决数据集的授权问题,任何由于使用非授权数据集进行训练造成的问题,需自行承担全部责任和一切后果。
本文参考以下相关文章进行整理及实现
AI声音克隆教程 – 哔哩哔哩 (bilibili.com)
So-VITS-SVC 4.0 训练/推理常见报错和Q&A – 哔哩哔哩 (bilibili.com)
so-vits-svc 革命性突破最强声音克隆,终于可以用自己的声音播稿了_哔哩哔哩_bilibili
这个不需要anaconda建立虚拟环境吗
@th 不需要哦,压缩包内自带Python
@PhiltreX 好的,谢谢!
@PhiltreX 您好,我的cuda版本和自带的python中安装的pytorch不匹配,请问如何修改对应包
可以更改参数把歌曲时长增加到5分钟吗?
@felixqian 我没理解你的意思,你是指最后输出的时候,输出一首超过五分钟的歌曲吗?
@PhiltreX 就是上传音频时长不能超过90秒,那是不是意味着最多只能生成90秒的音频,那如果改成300秒的行吗?
@felixqian 这个我还真没试过,理论上是不行的,不然人家也不会给出限制哈。
@PhiltreX 哦哦 好吧 只能切片 模拟 另外 你一般用多长的声音数据进行模拟?
@felixqian 我这里一般用三分钟左右的,关于SVS这一块,我有个搞音乐的朋友感兴趣,正在给我录干音素材,最近我会再出一篇关于SVS的补充教程,请耐心等待。
@PhiltreX 好的,那等你补充,我现在就是模拟出来的声音就有比较重的电子音,你参数怎么调的呀
@felixqian 我的什么也没调,你的步数训练的如果太高了,可能会过饱和,就会有电子音。
@PhiltreX 原来如此 那一般用多少数据来训练呀 10分钟的干音够吗?
@felixqian 本站的素材使用了两个小时左右的干音,10分钟其实也是可以的,但是实在太少了,我觉得最少也要一小时比较好吧。
@PhiltreX 好的 明白了
感谢站长的资源,请问我在训练时报错emb_g.weight is not in the checkpoint是因为什么造成的~感谢您能抽空回复
@vl 根据你提供的错误信息,提示在模型中找不到emb_g.weight参数。建议下载本站所提供的模型,应该可以避免这个问题。
站长您好,我用的是本站提供的素材,也严格按照以上的步骤,最后导出的音频无声,请问您知道是什么原因吗。
@vl 是指在网页生成之后没有声音吗?
训练时候,我这儿只有info:44k epoch:xx cost:x s 同样格式一次一行不停的跳,不显示loss, save xx.pth 这些内容,咋回事?
@hero20072 我也遇到过,用本站所提供的模型试试,你在官方下载的可能缺少文件。
站长 如果要多训练几次由模型产生的唱歌的音乐 我应该如何设置 因为只做一次 效果并不好
训练模型process 0 terminated with exit code 3221225477
站长你好。第二步训练中似乎报错,复制给AI分析后指出process 0 terminated with exit code 3221225477.(使用的是本站的素材)
@xxnx 错误代码太少了,多贴一些出来,只看这一句我找不到原因。
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 6.00 GiB total capacity; 1.74 GiB already allocated; 1.94 GiB free; 1.79 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
这样的报错请问如何解决?
@asd GPU显存不足,你的显卡是不是不太好啊。
@PhiltreX 有个商业化的应用想跟您沟通下,不知道是否方便留个联系方式?
站长问一下你的配置是多少啊?我3080的显卡训练快三个小时才500步不到,像我这样的得加配置才行吧?
打开slicer-gui时提示“api-ms-win-core-path-1-1-0.dll丢失”是怎么回事
您好 ,我现在到推理预测了 ,但是 最后 里面给出了AssertionError这样一个指示,然后就让我按任意键继续了,也没有给我URL,这个是什么原因导致的呢?
声音素材大概需要多长呢
报错(以下内容)怎么搞啊
Traceback (most recent call last):
File “app.py”, line 9, in
from inference.infer_tool import Svc
File “D:\so-vits-svc-4.0\inference\infer_tool.py”, line 8, in
from inference import slicer
File “D:\so-vits-svc-4.0\inference\slicer.py”, line 3, in
import torchaudio
File “D:\so-vits-svc-4.0\python38\lib\site-packages\torchaudio\__init__.py”, line 1, in
from torchaudio import ( # noqa: F401
File “D:\so-vits-svc-4.0\python38\lib\site-packages\torchaudio\_extension.py”, line 135, in
_init_extension()
File “D:\so-vits-svc-4.0\python38\lib\site-packages\torchaudio\_extension.py”, line 105, in _init_extension
_load_lib(“libtorchaudio”)
File “D:\so-vits-svc-4.0\python38\lib\site-packages\torchaudio\_extension.py”, line 52, in _load_lib
torch.ops.load_library(path)
File “D:\so-vits-svc-4.0\python38\lib\site-packages\torch\_ops.py”, line 573, in load_library
ctypes.CDLL(path)
File “D:\so-vits-svc-4.0\python38\lib\ctypes\__init__.py”, line 373, in __init__
self._handle = _dlopen(self._name, mode)
FileNotFoundError: Could not find module ‘D:\so-vits-svc-4.0\python38\Lib\site-packages\torchaudio\lib\libtorchaudio.pyd’ (or one of its dependencies). Try using the full path with constructor syntax.
请按任意键继续. . .
核显可以搞吗