Spaces:
Sleeping
Sleeping
File size: 18,826 Bytes
bc3753a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 |
# 问题汇总
<details open=True>
<summary>目录</summary>
- [问题汇总](#问题汇总)
- [一、下载问题](#一下载问题)
- [1.1 代码下载](#11-代码下载)
- [1.2 权重下载](#12-权重下载)
- [1.3 网络下载](#13-网络下载)
- [1.4 克隆语音 权重](#14-克隆语音-权重)
- [二、环境配置问题](#二环境配置问题)
- [2.1 GPU环境](#21-gpu环境)
- [2.2 CPU环境](#22-cpu环境)
- [2.3 显存问题](#23-显存问题)
- [三、运行问题](#三运行问题)
- [3.1 文件找不到](#31-文件找不到)
- [3.2 FFMPEG问题](#32-ffmpeg问题)
- [3.3 路径问题](#33-路径问题)
- [3.4 GFPGANer is not defined](#34-gfpganer-is-not-defined)
- [3.5 Microsoft Visual C++ 14.0 is required](#35-microsoft-visual-c-140-is-required)
- [3.6 多个服务器部署](#36-多个服务器部署)
- [3.7 GeminiPro的参数proxy代理设置](#37-geminipro的参数proxy代理设置)
- [3.8 项目更新方向](#38-项目更新方向)
- [3.9 version GLIBCXX\_3.4.\* not found](#39-version-glibcxx_34-not-found)
- [3.10 Gradio Connection errored out](#310-gradio-connection-errored-out)
- [3.11 gr.Error("无克隆环境或者无克隆模型权重,无法克隆声音", e)](#311-grerror无克隆环境或者无克隆模型权重无法克隆声音-e)
- [3.12 OSError: \[WinError 127\] 找不到指定的程序](#312-oserror-winerror-127-找不到指定的程序)
- [3.13 LLM对话步骤出现错误:“对不起,你的请求出错了,请再次尝试。”](#313-llm对话步骤出现错误对不起你的请求出错了请再次尝试)
- [3.14 启动报错 SadTalker Error: invalid load key, 'v'.](#314-启动报错-sadtalker-error-invalid-load-key-v)
- [四、功能迭代问题](#四功能迭代问题)
- [4.1 LLM大模型更新](#41-llm大模型更新)
- [4.2 克隆语音模型替换](#42-克隆语音模型替换)
- [五、交流群问题](#五交流群问题)
</details>
## 一、下载问题
### 1.1 代码下载
代码可以从Github下载 [https://github.com/Kedreamix/Linly-Talker](https://github.com/Kedreamix/Linly-Talker),也可以从Gitee下载 [https://gitee.com/kedreamix/Linly-Talker](https://gitee.com/kedreamix/Linly-Talker)
### 1.2 权重下载
提供以下三种渠道下载权重,具体可看README
- [Baidu (百度云盘)](https://pan.baidu.com/s/1eF13O-8wyw4B3MtesctQyg?pwd=linl) (Password: `linl`)
- [huggingface](https://huggingface.co/Kedreamix/Linly-Talker)
- [modelscope](https://www.modelscope.cn/models/Kedreamix/Linly-Talker/summary)
SadTalker的代码可以从 [Baidu (百度云盘)](https://pan.baidu.com/s/1eF13O-8wyw4B3MtesctQyg?pwd=linl) (Password: `linl`) 下载,也可以直接运行shell文件`bash scripts/sadtalker_download_models.sh `运行自动下载(比较适用于Linux)。
Wav2Lip的代码模型也可以从One Drive下载,可以只下载第一个或者第二个:
| Model | Description | Link to the model |
| ---------------------------- | ----------------------------------------------------- | ------------------------------------------------------------ |
| Wav2Lip | Highly accurate lip-sync | [Link](https://iiitaphyd-my.sharepoint.com/:u:/g/personal/radrabha_m_research_iiit_ac_in/Eb3LEzbfuKlJiR600lQWRxgBIY27JZg80f7V9jtMfbNDaQ?e=TBFBVW) |
| Wav2Lip + GAN | Slightly inferior lip-sync, but better visual quality | [Link](https://iiitaphyd-my.sharepoint.com/:u:/g/personal/radrabha_m_research_iiit_ac_in/EdjI7bZlgApMqsVoEUUXpLsBxqXbn5z8VTmoxp55YNDcIA?e=n9ljGW) |
| Expert Discriminator | Weights of the expert discriminator | [Link](https://iiitaphyd-my.sharepoint.com/:u:/g/personal/radrabha_m_research_iiit_ac_in/EQRvmiZg-HRAjvI6zqN9eTEBP74KefynCwPWVmF57l-AYA?e=ZRPHKP) |
| Visual Quality Discriminator | Weights of the visual disc trained in a GAN setup | [Link](https://iiitaphyd-my.sharepoint.com/:u:/g/personal/radrabha_m_research_iiit_ac_in/EQVqH88dTm1HjlK11eNba5gBbn15WMS0B0EZbDBttqrqkg?e=ic0ljo) |
GPT-SoVITS的代码模型可以从以下链接下载,具体可看[https://github.com/RVC-Boss/GPT-SoVITS/blob/main/docs/cn/README.md#预训练模型](https://github.com/RVC-Boss/GPT-SoVITS/blob/main/docs/cn/README.md#预训练模型)
从 [GPT-SoVITS Models](https://huggingface.co/lj1995/GPT-SoVITS) 下载预训练模型,并将它们放置在 `GPT_SoVITS\pretrained_models` 中。
中国地区用户可以进入以下链接并点击“下载副本”下载以上两个模型:
- [GPT-SoVITS Models](https://www.icloud.com.cn/iclouddrive/056y_Xog_HXpALuVUjscIwTtg#GPT-SoVITS_Models)
### 1.3 网络下载
有时候利用代码下载的时候出现网络问题,可能会有网络的问题,比如大模型的`huggingface`下载,我目前已经加上了[Baidu (百度云盘)](https://pan.baidu.com/s/1eF13O-8wyw4B3MtesctQyg?pwd=linl) (Password: `linl`) ,可以考虑下载到本地以后根据文件夹放置,也可以完成对应的功能。
> 如果有什么文件下载有问题,也可以提建议给我,我会上传到百度网盘。
### 1.4 克隆语音 权重
为了保护用户隐私安全,我并未提供克隆语音的权重,因为这可能涉及版权问题,如果大家感兴趣的话,可以尝试使用相同的方法进行训练或者私聊我,感谢大家的理解
## 二、环境配置问题
### 2.1 GPU环境
我使用的是Pytorch 1.12的版本,由于Pytorch大部份是兼容的,所以我建议是使用>= 1.12的版本来进行下载,具体下载的命令可以根据pytorch官网的命令进行设置 [https://pytorch.org/get-started/previous-versions/](https://pytorch.org/get-started/previous-versions/),建议有时候可以使用anaconda来安装,这样方便管理和安装其他都比较方便
```bash
conda create -n linly python=3.9
conda activate linly
# pytorch安装方式1:conda安装(推荐)
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch
# pytorch安装方式2:pip 安装
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113
conda install -q ffmpeg # ffmpeg==4.2.2
pip install -r requirements_app.txt
```
> GPU环境有时候需要配置CUDA,这一部分网上有很多介绍,所以这里我就不多说了。
### 2.2 CPU环境
可以将GPU替换为CPU,但是这样可能会比较慢,只需要安装pytorch的时候,不安装GPU版本即可,应该也能完成对应的结果,但是可能结果会比较差,因为需要跑大模型等等,所以还是建议GPU环境
### 2.3 显存问题
暂时以我测试的来说,现在Sadtalker大概默认`Batch Size = 1`,大模型`Qwen 1.8B`大概占 2G 显存,数字人模型`SadTalker`占大概4~6G,所以大概最低为6~8G显存的电脑都能正常部署,这里面针对的是GPU的环境。
建议如果在6G或者更低显存的电脑上运行的时候,可以考虑使用GeminiPro和OpenAI的API,这样可以不用在本地部署对应的大模型,可以较好的节省GPU显存
## 三、运行问题
### 3.1 文件找不到
如果出现`FileNotFound`的问题,如果是权重的问题的话,那就回到1.2的问题,重新下载即可,记住看文件夹结构。
### 3.2 FFMPEG问题
如果正常运行在最后的生成视频出现`ffmpeg`的问题,那可能安装`ffmpeg`出错了,有两种方式。
第一种是使用conda安装`ffmpeg`,需要ffmpeg>=4.2.2左右
```bash
conda install -q ffmpeg # ffmpeg==4.2.2
```
第二种就是正常安装`ffmpeg`
```bash
# Linux下载
sudo apt install ffmpeg
```
第三种就是Windows安装`ffmpeg`
Windows安装下载ffmpeg也是很简单的,我这里给一个链接,大家可以试一下 [Windows下安装使用ffmpeg](https://zhuanlan.zhihu.com/p/118362010),直接去官网下载即可[https://ffmpeg.org/](https://ffmpeg.org/)。
### 3.3 路径问题
如果下载的时候没有放对位置,需要在`config.py`设置对应的路径,并且可以修改端口的,默认设置为7860,也可以设置其他的端口,只要不被占用即可。
### 3.4 GFPGANer is not defined
如果在运行的时候出现了这个问题,这是一个增强的模块,这一部分模块如果需要运行,首先要安装`gfpgan`库即可
```bash
pip install gfpgan
```
### 3.5 Microsoft Visual C++ 14.0 is required
如果遇到这个问题,是因为window需要一些依赖,可以参考这篇文章解决一下 [Microsoft Visual C++ 14.0 is required解决方法](https://zhuanlan.zhihu.com/p/126669852)
![](https://picx.zhimg.com/80/v2-d25b289827fc989f419df70f650b44e9.png)
### 3.6 多个服务器部署
如果有多台服务器,大模型可以考虑放在另一个服务器中进行部署,我写了FastAPI的版本,可以利用部署api的方式来使用模型。
也可以其实先在本地部署,这样每次运行的时候不用一只load大模型,这样也会等待一段时间。
### 3.7 GeminiPro的参数proxy代理设置
对于GeminiPro的代理设置`proxy_url`可以传入参数,这个参数我设置是`http://127.0.0.1:7890`。
因为我用的是clash,所以开的端口是7890,这里面也可以换成自己对应的端口进行设置。
### 3.8 项目更新方向
如果要加入其他的模型的话和方向的话,可以在对应的文件夹`ASR`,`TTS`,`THG`和`LLM`中添加对应的算法,也可以向我提建议,我有时间也会进行更新的,欢迎大家向我提供资料。
> 我会一直保持更新的哈哈,有时候可能要想一些点子做好一点在放上去,也欢迎大家给我提PR,我都会加油的!!!冲冲冲!!!
### 3.9 version GLIBCXX_3.4.* not found
如果有遇到这样的问题,那可能是一些库的版本的问题,具体可以看,["`GLIBCXX_3.4.32' not found" error at runtime. GCC 13.2.0](https://stackoverflow.com/questions/76974555/glibcxx-3-4-32-not-found-error-at-runtime-gcc-13-2-0)
```bash
/lib/libstdc++.so.6: version `GLIBCXX_3.4.32' not found
```
我这里说一下我发现的问题,大概我发现有两种方式,第一种就是似乎python版本会解决问题,我用3.10居然不会出现错误,3.9出现了错误
第二个解决方法我发现,实际上这个错误是在`pyopenjtalk`库的问题,我们可以降低他的版本即可,比如这样的方法
```bash
pip install pyopenjtalk==0.3.1
```
我们也可以看看自己机器本身含有的GLIBCXX的版本
```bash
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
```
### 3.10 Gradio Connection errored out
我还没有遇到这种问题,但是有一些人遇到了,感觉在win上不稳定的多一点,这一部分大家可以提点建议,跟我说一下有没有一些通用的解决方案,因为在网上查找的资料感觉都不是很行
### 3.11 gr.Error("无克隆环境或者无克隆模型权重,无法克隆声音", e)
这属于功能迭代的问题,也就是克隆环境和克隆模型权重,首先注意按照克隆环境
```bash
pip install VITS/requirements.txt
```
再根据[4.2 克隆语音模型替换](https://github.com/Kedreamix/Linly-Talker/blob/main/常见问题汇总.md#42-克隆语音模型替换)去修改模型权重即可
### 3.12 OSError: [WinError 127] 找不到指定的程序
这个错误通常发生在尝试在 Windows 操作系统上运行一个程序或命令时,但是系统找不到指定的可执行文件。一般来说,就是对应库的安装没安装好,可以建议根据出错的库重新安装一遍即可。
### 3.13 LLM对话步骤出现错误:“对不起,你的请求出错了,请再次尝试。”
大模型兼容出现错误,重新安装对应的库即可解决
```bash
pip install transformers==4.32.0 accelerate tiktoken einops scipy transformers_stream_generator==0.0.4 peft deepspeed
```
### 3.14 启动报错 SadTalker Error: invalid load key, 'v'.
在启动文件的时候,发现报错,我仔细去找这个问题,最后发现,应该是模型权重的下载有误,特别是关于`mapping`的两个`pth`文件有时候下载的时候没有174MB的内存,理论上大小如下。
```bash
149M checkpoints/mapping_00109-model.pth.tar
149M checkpoints/mapping_00229-model.pth.tar
```
所以遇到这个问题,建议重新下载这两个文件即可,提供以下三种渠道下载权重,具体可看`README`
- [Baidu (百度云盘)](https://pan.baidu.com/s/1eF13O-8wyw4B3MtesctQyg?pwd=linl) (Password: `linl`)
- [huggingface](https://huggingface.co/Kedreamix/Linly-Talker)
- [modelscope](https://www.modelscope.cn/models/Kedreamix/Linly-Talker/summary)
git lfs clone可能有时候会出bug,那就可以直接下载这两个文件即可,如利用wget下载即可,也可以下载后重新上传到`checkpoints`
```bash
wget -c https://modelscope.cn/api/v1/models/Kedreamix/Linly-Talker/repo?Revision=master&FilePath=checkpoints%2Fmapping_00109-model.pth.tar
wget -c https://modelscope.cn/api/v1/models/Kedreamix/Linly-Talker/repo?Revision=master&FilePath=checkpoints%2Fmapping_00229-model.pth.tar
```
## 四、功能迭代问题
### 4.1 LLM大模型更新
如果要加入新的LLM大模型,可以在LLM文件夹加入选择的大模型
我这里给出一个适用于任何大型语言模型(LLM)的中文类模板。这个模板旨在具有灵活性和易于配置,同时为不同的模型提供一致的交互接口。
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
class LLMTemplate:
def __init__(self, model_name_or_path, mode='offline'):
"""
初始化LLM模板
Args:
model_name_or_path (str): 模型名称或路径
mode (str, optional): 模式,'offline'表示离线模式,'api'表示使用API模式。默认为'offline'。
"""
self.mode = mode
# 模型初始化
self.model, self.tokenizer = self.init_model(model_name_or_path)
self.history = None
def init_model(self, model_name_or_path):
"""
初始化语言模型
Args:
model_name_or_path (str): 模型名称或路径
Returns:
model: 加载的语言模型
tokenizer: 加载的tokenizer
"""
# TODO: 模型加载
model = AutoModelForCausalLM.from_pretrained(model_name_or_path,
device_map="auto",
trust_remote_code=True).eval()
tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, trust_remote_code=True)
return model, tokenizer
def generate(self, prompt, system_prompt=""):
"""
生成对话响应
Args:
prompt (str): 对话的提示
system_prompt (str, optional): 系统提示。默认为""。
Returns:
str: 对话响应
"""
# TODO: 模型预测
# 这一块需要尤其注意,这里的模板是借鉴了HuggingFace上的一些推理模板,需要根据自己的模型进行调整
# 这里的模板主要是为了方便调试,因为模型预测的时候,会有很多不同的输入,所以可以根据自己的模型进行调整
if self.mode != 'api':
try:
response, self.history = self.model.chat(self.tokenizer, prompt, history=self.history, system = system_prompt)
return response
except Exception as e:
print(e)
return "对不起,你的请求出错了,请再次尝试。\nSorry, your request has encountered an error. Please try again.\n"
else:
return self.predict_api(prompt)
def predict_api(self, prompt):
"""
使用API预测对话响应
Args:
prompt (str): 对话的提示
Returns:
str: 对话响应
"""
'''暂时不写api版本,与Linly-api相类似,感兴趣可以实现一下'''
pass
def chat(self, system_prompt, message):
response = self.generate(message, system_prompt)
self.history.append((message, response))
return response, self.history
def clear_history(self):
self.history = []
```
### 4.2 克隆语音模型替换
克隆语音模型也可以根据自己需求和克隆好的模型进行替换,具体在`webui.py`的第80行,需要调整一下权重路径,和参考音频,以及参考音频的文本。
```bash
elif voice == "克隆烟嗓音":
try:
# 设置 GPT 模型的权重路径
gpt_path = "GPT_weights权重路径"
# 设置 SoVITS 模型的权重路径
sovits_path = "SoVITS_weights权重路径"
# 加载声音克隆模型
vits.load_model(gpt_path, sovits_path)
# 设置参考音频的路径
ref_wav_path = "examples/slicer_opt/vocal_output.wav_10.wav_0000846400_0000957760.wav"
# 设置参考音频的文本
prompt_text = "你为什么要一次一次的伤我的心啊?"
# 设置要生成音频的文本
text = answer
# 设置生成音频文本的语言
text_language = "中英混合"
# 设置如何切分文本以生成音频
how_to_cut = "按标点符号切"
# 设置生成音频的保存路径
save_path = 'answer.wav'
# 使用声音克隆模型生成音频
vits.predict(ref_wav_path=ref_wav_path,
prompt_text=prompt_text,
prompt_language="中文",
text=text,
text_language=text_language,
how_to_cut=how_to_cut,
save_path=save_path)
# 返回生成的音频路径以及文本
return 'answer.wav', None, answer
except Exception as e:
# 处理异常情况
gr.Error("无克隆环境或者无克隆模型权重,无法克隆声音", e)
return None, None, None
```
## 五、交流群问题
有没有什么交流群,暂时没有,因为可能没有时间去管理,如果大家感兴趣我会搞一个,已经搞了一个,大家可以交流学习
大家有什么想法可以在视频下方留言或者私信我,我都会看的,如果交流群过期了,可以加我wx:`pikachu2biubiu`
<img src="docs/QR.jpg#pic_center" style="zoom:50%;" /> |