Update README.md
Browse files
README.md
CHANGED
|
@@ -16,6 +16,7 @@
|
|
| 16 |
|
| 17 |
</div>
|
| 18 |
|
|
|
|
| 19 |
**2023.12 更新** 📆
|
| 20 |
|
| 21 |
**用户可以上传任意图片进行对话**
|
|
@@ -34,6 +35,12 @@
|
|
| 34 |
- **加入了语音克隆方法GPT-SoVITS模型,能够通过微调一分钟对应人的语料进行克隆,效果还是相当不错的,值得推荐。**
|
| 35 |
- **集成一个WebUI界面,能够更好的运行Linly-Talker。**
|
| 36 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 37 |
---
|
| 38 |
|
| 39 |
<details>
|
|
@@ -93,11 +100,41 @@ Linly-Talker的设计理念是创造一种全新的人机交互方式,不仅
|
|
| 93 |

|
| 94 |
|
| 95 |
> 查看我们的介绍视频 [demo video](https://www.bilibili.com/video/BV1rN4y1a76x/)
|
| 96 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 97 |
|
| 98 |
###### 模型文件和权重,请浏览“模型文件”页面获取。
|
| 99 |
|
| 100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 101 |
**HuggingFace下载**
|
| 102 |
|
| 103 |
如果速度太慢可以考虑镜像,参考[简便快捷获取 Hugging Face 模型(使用镜像站点)](https://kedreamix.github.io/2024/01/05/Note/HuggingFace/?highlight=镜像)
|
|
@@ -129,7 +166,7 @@ model_dir = snapshot_download('Kedreamix/Linly-Talker')
|
|
| 129 |
```bash
|
| 130 |
# 移动所有模型到当前目录
|
| 131 |
# checkpoint中含有SadTalker和Wav2Lip
|
| 132 |
-
mv Linly-Talker/
|
| 133 |
|
| 134 |
# SadTalker的增强GFPGAN
|
| 135 |
# pip install gfpgan
|
|
@@ -142,4 +179,164 @@ mv Linly-Talker/GPT_SoVITS/pretrained_models/* ./GPT_SoVITS/pretrained_models/
|
|
| 142 |
mv Linly-Talker/Qwen ./
|
| 143 |
```
|
| 144 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 145 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
|
| 17 |
</div>
|
| 18 |
|
| 19 |
+
|
| 20 |
**2023.12 更新** 📆
|
| 21 |
|
| 22 |
**用户可以上传任意图片进行对话**
|
|
|
|
| 35 |
- **加入了语音克隆方法GPT-SoVITS模型,能够通过微调一分钟对应人的语料进行克隆,效果还是相当不错的,值得推荐。**
|
| 36 |
- **集成一个WebUI界面,能够更好的运行Linly-Talker。**
|
| 37 |
|
| 38 |
+
**2024.04 更新** 📆
|
| 39 |
+
|
| 40 |
+
- **更新了除 Edge TTS的 Paddle TTS的离线方式。**
|
| 41 |
+
- **更新了ER-NeRF作为Avatar生成的选择之一。**
|
| 42 |
+
- **更新了app_talk.py,在不基于对话场景可自由上传语音和图片视频生成。**
|
| 43 |
+
|
| 44 |
---
|
| 45 |
|
| 46 |
<details>
|
|
|
|
| 100 |

|
| 101 |
|
| 102 |
> 查看我们的介绍视频 [demo video](https://www.bilibili.com/video/BV1rN4y1a76x/)
|
| 103 |
+
>
|
| 104 |
+
> 在B站上我录了一系列视频,也代表我更新的每一步与使用方法,详细查看[数字人智能对话系统 - Linly-Talker合集](https://space.bilibili.com/241286257/channel/collectiondetail?sid=2065753)
|
| 105 |
+
>
|
| 106 |
+
> - [🔥🔥🔥数字人对话系统 Linly-Talker🔥🔥🔥](https://www.bilibili.com/video/BV1rN4y1a76x/)
|
| 107 |
+
> - [🚀数字人的未来:Linly-Talker+GPT-SoVIT语音克隆技术的赋能之道](https://www.bilibili.com/video/BV1S4421A7gh/)
|
| 108 |
+
> - [AutoDL平台部署Linly-Talker (0基础小白超详细教程)](https://www.bilibili.com/video/BV1uT421m74z/)
|
| 109 |
+
> - [Linly-Talker 更新离线TTS集成及定制数字人方案](https://www.bilibili.com/video/BV1Mr421u7NN/)
|
| 110 |
+
|
| 111 |
+
## TO DO LIST
|
| 112 |
+
|
| 113 |
+
- [x] 基本完成对话系统流程,能够`语音对话`
|
| 114 |
+
- [x] 加入了LLM大模型,包括`Linly`,`Qwen`和`GeminiPro`的使用
|
| 115 |
+
- [x] 可上传`任意数字人照片`进行对话
|
| 116 |
+
- [x] Linly加入`FastAPI`调用方式
|
| 117 |
+
- [x] 利用微软`TTS`加入高级选项,可设置对应人声以及音调等参数,增加声音的多样性
|
| 118 |
+
- [x] 视频生成加入`字幕`,能够更好的进行可视化
|
| 119 |
+
- [x] GPT`多轮对话`系统(提高数字人的交互性和真实感,增强数字人的智能)
|
| 120 |
+
- [x] 优化Gradio界面,加入更多模型,如Wav2Lip,FunASR等
|
| 121 |
+
- [x] `语音克隆`技术,加入GPT-SoVITS,只需要一分钟的语音简单微调即可(语音克隆合成自己声音,提高数字人分身的真实感和互动体验)
|
| 122 |
+
- [x] 加入离线TTS以及NeRF-based的方法和模型
|
| 123 |
+
- [ ] `实时`语音识别(人与数字人之间就可以通过语音进行对话交流)
|
| 124 |
+
|
| 125 |
+
🔆 该项目 Linly-Talker 正在进行中 - 欢迎提出PR请求!如果您有任何关于新的模型方法、研究、技术或发现运行错误的建议,请随时编辑并提交 PR。您也可以打开一个问题或通过电子邮件直接联系我。📩⭐ 如果您发现这个Github Project有用,请给它点个星!🤩
|
| 126 |
+
|
| 127 |
+
> 如果在部署的时候有任何的问题,可以关注[常见问题汇总.md](https://github.com/Kedreamix/Linly-Talker/blob/main/常见问题汇总.md)部分,我已经整理了可能出现的所有问题,另外交流群也在这里,我会定时更新,感谢大家的关注与使用!!!
|
| 128 |
|
| 129 |
###### 模型文件和权重,请浏览“模型文件”页面获取。
|
| 130 |
|
| 131 |
|
| 132 |
+
接下来还需要安装对应的模型,有以下下载方式,下载后安装文件架结构放置,文件夹结构在本文最后有说明。
|
| 133 |
+
|
| 134 |
+
- [Baidu (百度云盘)](https://pan.baidu.com/s/1eF13O-8wyw4B3MtesctQyg?pwd=linl) (Password: `linl`)
|
| 135 |
+
- [huggingface](https://huggingface.co/Kedreamix/Linly-Talker)
|
| 136 |
+
- [modelscope](https://www.modelscope.cn/models/Kedreamix/Linly-Talker/summary)
|
| 137 |
+
|
| 138 |
**HuggingFace下载**
|
| 139 |
|
| 140 |
如果速度太慢可以考虑镜像,参考[简便快捷获取 Hugging Face 模型(使用镜像站点)](https://kedreamix.github.io/2024/01/05/Note/HuggingFace/?highlight=镜像)
|
|
|
|
| 166 |
```bash
|
| 167 |
# 移动所有模型到当前目录
|
| 168 |
# checkpoint中含有SadTalker和Wav2Lip
|
| 169 |
+
mv Linly-Talker/checkpoints/* ./checkpoints
|
| 170 |
|
| 171 |
# SadTalker的增强GFPGAN
|
| 172 |
# pip install gfpgan
|
|
|
|
| 179 |
mv Linly-Talker/Qwen ./
|
| 180 |
```
|
| 181 |
|
| 182 |
+
为了大家的部署使用方便,更新了一个`configs.py`文件,可以对其进行一些超参数修改即可
|
| 183 |
+
|
| 184 |
+
```bash
|
| 185 |
+
# 设备运行端口 (Device running port)
|
| 186 |
+
port = 7860
|
| 187 |
+
# api运行端口及IP (API running port and IP)
|
| 188 |
+
mode = 'api' # api 需要先运行Linly-api-fast.py,暂时仅仅适用于Linly
|
| 189 |
+
|
| 190 |
+
# 本地端口localhost:127.0.0.1 全局端口转发:"0.0.0.0"
|
| 191 |
+
ip = '127.0.0.1'
|
| 192 |
+
api_port = 7871
|
| 193 |
+
|
| 194 |
+
# L模型路径 (Linly model path)
|
| 195 |
+
mode = 'offline'
|
| 196 |
+
model_path = 'Qwen/Qwen-1_8B-Chat'
|
| 197 |
+
|
| 198 |
+
# ssl证书 (SSL certificate) 麦克风对话需要此参数
|
| 199 |
+
# 最好调整为绝对路径
|
| 200 |
+
ssl_certfile = "./https_cert/cert.pem"
|
| 201 |
+
ssl_keyfile = "./https_cert/key.pem"
|
| 202 |
+
```
|
| 203 |
+
|
| 204 |
+
## 启动WebUI
|
| 205 |
+
|
| 206 |
+
之前我将很多个版���都是分开来的,实际上运行多个会比较麻烦,所以后续我增加了变成WebUI一个界面即可体验,后续也会不断更新
|
| 207 |
+
|
| 208 |
+
现在已加入WebUI的功能如下
|
| 209 |
+
|
| 210 |
+
- [x] 文本/语音数字人对话(固定数字人,分男女角色)
|
| 211 |
+
- [x] 任意图片数字人对话(可上传任意数字人)
|
| 212 |
+
- [x] 多轮GPT对话(加入历史对话数据,链接上下文)
|
| 213 |
+
- [x] 语音克隆对话(基于GPT-SoVITS设置进行语音克隆,内置烟嗓音,可根据语音对话的声音进行克隆)
|
| 214 |
+
|
| 215 |
+
```bash
|
| 216 |
+
# WebUI
|
| 217 |
+
python webui.py
|
| 218 |
+
```
|
| 219 |
+
|
| 220 |
+

|
| 221 |
+
|
| 222 |
+
|
| 223 |
+
|
| 224 |
+
现在的启动一共有几种模式,可以选择特定的场景进行设置
|
| 225 |
+
|
| 226 |
+
第一种只有固定了人物问答,设置好了人物,省去了预处理时间
|
| 227 |
+
|
| 228 |
+
```bash
|
| 229 |
+
python app.py
|
| 230 |
+
```
|
| 231 |
+
|
| 232 |
+

|
| 233 |
|
| 234 |
+
最近更新了第一种模式,加入了Wav2Lip模型进行对话
|
| 235 |
+
|
| 236 |
+
```bash
|
| 237 |
+
python appv2.py
|
| 238 |
+
```
|
| 239 |
+
|
| 240 |
+
第二种是可以任意上传图片进行对话
|
| 241 |
+
|
| 242 |
+
```bash
|
| 243 |
+
python app_img.py
|
| 244 |
+
```
|
| 245 |
+
|
| 246 |
+

|
| 247 |
+
|
| 248 |
+
第三种是在第一种的基础上加入了大语言模型,加入了多轮的GPT对话
|
| 249 |
+
|
| 250 |
+
```bash
|
| 251 |
+
python app_multi.py
|
| 252 |
+
```
|
| 253 |
+
|
| 254 |
+

|
| 255 |
+
|
| 256 |
+
现在加入了语音克隆的部分,可以自由切换自己克隆的声音模型和对应的人图片进行实现,这里我选择了一个烟嗓音和男生图片
|
| 257 |
+
|
| 258 |
+
```bash
|
| 259 |
+
python app_vits.py
|
| 260 |
+
```
|
| 261 |
+
|
| 262 |
+
加入了第四种方式,不固定场景进行对话,直接输入语音或者生成语音进行数字人生成,内置了Sadtalker,Wav2Lip,ER-NeRF等方式
|
| 263 |
+
|
| 264 |
+
> ER-NeRF是针对单独一个人的视频进行训练的,所以需要替换特定的模型才能进行渲染得到正确的结果,内置了Obama的权重,可直接用
|
| 265 |
+
|
| 266 |
+
```bash
|
| 267 |
+
python app_talk.py
|
| 268 |
+
```
|
| 269 |
+
|
| 270 |
+

|
| 271 |
+
|
| 272 |
+
## 文件夹结构
|
| 273 |
+
|
| 274 |
+
所有的权重部分可以从这下载
|
| 275 |
+
|
| 276 |
+
- [Baidu (百度云盘)](https://pan.baidu.com/s/1eF13O-8wyw4B3MtesctQyg?pwd=linl) (Password: `linl`)
|
| 277 |
+
- [huggingface](https://huggingface.co/Kedreamix/Linly-Talker)
|
| 278 |
+
- [modelscope](https://www.modelscope.cn/models/Kedreamix/Linly-Talker/files) comming soon
|
| 279 |
+
|
| 280 |
+
权重文件夹结构如下
|
| 281 |
+
|
| 282 |
+
```bash
|
| 283 |
+
Linly-Talker/
|
| 284 |
+
├── checkpoints
|
| 285 |
+
│ ├── hub
|
| 286 |
+
│ │ └── checkpoints
|
| 287 |
+
│ │ └── s3fd-619a316812.pth
|
| 288 |
+
│ ├── lipsync_expert.pth
|
| 289 |
+
│ ├── mapping_00109-model.pth.tar
|
| 290 |
+
│ ├── mapping_00229-model.pth.tar
|
| 291 |
+
│ ├── SadTalker_V0.0.2_256.safetensors
|
| 292 |
+
│ ├── visual_quality_disc.pth
|
| 293 |
+
│ ├── wav2lip_gan.pth
|
| 294 |
+
│ └── wav2lip.pth
|
| 295 |
+
├── gfpgan
|
| 296 |
+
│ └── weights
|
| 297 |
+
│ ├── alignment_WFLW_4HG.pth
|
| 298 |
+
│ └── detection_Resnet50_Final.pth
|
| 299 |
+
├── GPT_SoVITS
|
| 300 |
+
│ └── pretrained_models
|
| 301 |
+
│ ├── chinese-hubert-base
|
| 302 |
+
│ │ ├── config.json
|
| 303 |
+
│ │ ├── preprocessor_config.json
|
| 304 |
+
│ │ └── pytorch_model.bin
|
| 305 |
+
│ ├── chinese-roberta-wwm-ext-large
|
| 306 |
+
│ │ ├── config.json
|
| 307 |
+
│ │ ├── pytorch_model.bin
|
| 308 |
+
│ │ └── tokenizer.json
|
| 309 |
+
│ ├── README.md
|
| 310 |
+
│ ├── s1bert25hz-2kh-longer-epoch=68e-step=50232.ckpt
|
| 311 |
+
│ ├── s2D488k.pth
|
| 312 |
+
│ ├── s2G488k.pth
|
| 313 |
+
│ └── speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch
|
| 314 |
+
├── Qwen
|
| 315 |
+
│ └── Qwen-1_8B-Chat
|
| 316 |
+
│ ├── assets
|
| 317 |
+
│ │ ├── logo.jpg
|
| 318 |
+
│ │ ├── qwen_tokenizer.png
|
| 319 |
+
│ │ ├── react_showcase_001.png
|
| 320 |
+
│ │ ├── react_showcase_002.png
|
| 321 |
+
│ │ └── wechat.png
|
| 322 |
+
│ ├── cache_autogptq_cuda_256.cpp
|
| 323 |
+
│ ├── cache_autogptq_cuda_kernel_256.cu
|
| 324 |
+
│ ├── config.json
|
| 325 |
+
│ ├── configuration_qwen.py
|
| 326 |
+
│ ├── cpp_kernels.py
|
| 327 |
+
│ ├── examples
|
| 328 |
+
│ │ └── react_prompt.md
|
| 329 |
+
│ ├── generation_config.json
|
| 330 |
+
│ ├── LICENSE
|
| 331 |
+
│ ├── model-00001-of-00002.safetensors
|
| 332 |
+
│ ├── model-00002-of-00002.safetensors
|
| 333 |
+
│ ├── modeling_qwen.py
|
| 334 |
+
│ ├── model.safetensors.index.json
|
| 335 |
+
│ ├── NOTICE
|
| 336 |
+
│ ├── qwen_generation_utils.py
|
| 337 |
+
│ ├── qwen.tiktoken
|
| 338 |
+
│ ├── README.md
|
| 339 |
+
│ ├── tokenization_qwen.py
|
| 340 |
+
│ └── tokenizer_config.json
|
| 341 |
+
└── README.md
|
| 342 |
+
```
|