数字人的未来:数字人对话系统 Linly-Talker + 克隆语音 GPT-SoVITS

2024-02-25 23:52

本文主要是介绍数字人的未来:数字人对话系统 Linly-Talker + 克隆语音 GPT-SoVITS,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

🚀数字人的未来:数字人对话系统 Linly-Talker + 克隆语音 GPT-SoVITS

https://github.com/Kedreamix/Linly-Talker

2023.12 更新 📆

用户可以上传任意图片进行对话

2024.01 更新 📆

  • 令人兴奋的消息!我现在已经将强大的GeminiPro和Qwen大模型融入到我们的对话场景中。用户现在可以在对话中上传任何图片,为我们的互动增添了全新的层面。
  • 更新了FastAPI的部署调用方法。
  • 更新了微软TTS的高级设置选项,增加声音种类的多样性,以及加入视频字幕加强可视化。
    • 更新了GPT多轮对话系统,使得对话有上下文联系,提高数字人的交互性和真实感。

2024.02 更新 📆

  • 更新了Gradio的版本为最新版本4.16.0,使得界面拥有更多的功能,比如可以摄像头拍摄图片构建数字人等。
  • 更新了ASR和THG,其中ASR加入了阿里的FunASR,具体更快的速度;THG部分加入了Wav2Lip模型,ER-NeRF在准备中(Comming Soon)。
  • 加入了语音克隆方法GPT-SoVITS模型,能够通过微调一分钟对应人的语料进行克隆,效果还是相当不错的,值得推荐。
  • 集成一个WebUI界面,能够更好的运行Linly-Talker。

在最近一段时间,我在尝试探索,如何克隆声音,因为在数字人对话系统中,虽然可能能够重建特定的人,但是还是存在一个问题:声音是用固定的人声生成的,导致没有真实性,如果我们能够去克隆出对应的声音,并且结合特定的数字人,那是否就完成了一个数字人的完整复刻。

于是我就研究了一段时间,后面发现了两个非常有意思的项目,分别是GPT-SoVITSXTTS两个开源项目,我认为这两个算是现在最好的两个开源项目了,像OpenVoice之类的效果还是比较差,火山效果不错,但是没有开源。

除此之外,我后续集成到了Linly-Talker之中,做了一个WebUI,能够通过我3~10s的语音大概克隆我的声音,同时也可以使用一分钟克隆训练的语音来操作,如果使用多一点的预料能够得到更好的效果,希望和大家一起努力,成功复刻出一个完整的数字人

具体也可以关注我B站的演示的视频🚀数字人的未来:Linly-Talker+GPT-SoVIT语音克隆技术的赋能之道和Linly-Talker WebUI🚀: 在对话时悄悄偷走你的声音🎤

GPT-SoVITS(推荐)

感谢大家的开源贡献,我借鉴了当前开源的语音克隆模型 GPT-SoVITS,我认为效果是相当不错的,项目地址可参考https://github.com/RVC-Boss/GPT-SoVITS

他有以下功能:

  1. 零样本文本到语音(TTS): 输入 5 秒的声音样本,即刻体验文本到语音转换。
  2. 少样本 TTS: 仅需 1 分钟的训练数据即可微调模型,提升声音相似度和真实感。
  3. 跨语言支持: 支持与训练数据集不同语言的推理,目前支持英语、日语和中文。
  4. WebUI 工具: 集成工具包括声音伴奏分离、自动训练集分割、中文自动语音识别(ASR)和文本标注,协助初学者创建训练数据集和 GPT/SoVITS 模型。

之前很多方法都是少样本,比如OpenVoiceXTTS,我之前也想着使用他们来进行实现语音克隆部分,但是很遗憾的是,并没有感觉有很好的效果,其实XTTS还是不错的,如果我们简单用麦克风🎤说几句话作为参考来进行克隆,我觉得效果还是可以的。

但是如果遇到比较高的要求,我觉得可能就需要更好的模型,并且成本也要打压下来,所以我就看到了这个GPT-SoVITS,我觉得这个模型是相当厉害的,少样本的TTS能做,也能做跨语言支持,这样我们很有可能就可以体验到奥巴马讲中文之类的,这样就可以完成视频翻译的一些任务了,所以我是很推崇这样的简单微调,效果又好的方法的。

为了尊重作者,在Linly-Talker并没有把GPT-SoVITS的全套代码搬过来,我写了一个关于语音克隆的类,大家可以将训练好的模型参数中,就可以在本项目使用经过语音克隆后的TTS了,希望大家玩的开心,玩的愉快。

如果使用语音克隆模型,可能需要python为3.10,pytorch为2.1左右可能比较好,我的环境已经测试过了,简单来说,先安装GPT-SoVITS的环境,再直接pip intsall -r requirements_app.txt即可使用

除此之外,还需要根据原作者的说明放入对应路径,我的预训练模型和存放位置已给出,可参考https://huggingface.co/Kedreamix/Linly-Talker

pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 --index-url https://download.pytorch.org/whl/cu118
# 安装对应的依赖
pip install -r VITS/requirements_gptsovits.txt# 启动如下的WebUI界面
python VITS/app.py 

在这里插入图片描述

Coqui XTTS

Coqui XTTS是一个领先的深度学习文本到语音任务(TTS语音生成模型)工具包,通过使用一段5秒钟以上的语音频剪辑就可以完成声音克隆将语音克隆到不同的语言。支持多种语言文本到语音转换,使其成为国际化应用的理想选择,这一特点特别适用于全球化的市场,其中需要生成多种语言的语音内容。所以在实验过程中,我也加入了这一部分,不过暂时使用的是默认的模型,并没有进行微调,个人认为是没有GPT-SoVITS经过微调后好的,但是其中的少样本五秒钟克隆语音还是值得称赞的。大家也可以在官方的在线体验,但是官方的可能会有生成语音限制,文字不能太长,但是还是足够我们体验了。

🐸TTS 是一个用于高级文本转语音生成的库。

🚀 超过 1100 种语言的预训练模型。

🛠️ 用于以任何语言训练新模型和微调现有模型的工具。

📚 用于数据集分析和管理的实用程序。

  • 在线体验XTTS https://huggingface.co/spaces/coqui/xtts
  • 官方Github库 https://github.com/coqui-ai/TTS

XTTS的环境也需要PyTorch 2.1所以,如果下载了GPT-SoVITS,也不妨体验一下XTTS的效果。

pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 --index-url https://download.pytorch.org/whl/cu118# 安装对应的依赖
pip install -r VITS/requirements_xtts.txt# 启动如下的WebUI界面
python VITS/XTTS.py

在这里插入图片描述

Linly-Talker WebUI

之前我将很多个版本都是分开来的,实际上运行多个会比较麻烦,所以后续我增加了变成WebUI一个界面即可体验,后续也会不断更新

现在已加入WebUI的功能如下

  • 文本/语音数字人对话(固定数字人,分男女角色)
  • 任意图片数字人对话(可上传任意数字人)
  • 多轮GPT对话(加入历史对话数据,链接上下文)
  • 语音克隆对话(基于GPT-SoVITS设置进行语音克隆,内置烟嗓音,可根据语音对话的声音进行克隆)
# WebUI
python webui.py

在这里插入图片描述

这篇关于数字人的未来:数字人对话系统 Linly-Talker + 克隆语音 GPT-SoVITS的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/747092

相关文章

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

使用Python实现文本转语音(TTS)并播放音频

《使用Python实现文本转语音(TTS)并播放音频》在开发涉及语音交互或需要语音提示的应用时,文本转语音(TTS)技术是一个非常实用的工具,下面我们来看看如何使用gTTS和playsound库将文本... 目录什么是 gTTS 和 playsound安装依赖库实现步骤 1. 导入库2. 定义文本和语言 3

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

使用PyTorch实现手写数字识别功能

《使用PyTorch实现手写数字识别功能》在人工智能的世界里,计算机视觉是最具魅力的领域之一,通过PyTorch这一强大的深度学习框架,我们将在经典的MNIST数据集上,见证一个神经网络从零开始学会识... 目录当计算机学会“看”数字搭建开发环境MNIST数据集解析1. 认识手写数字数据库2. 数据预处理的

java字符串数字补齐位数详解

《java字符串数字补齐位数详解》:本文主要介绍java字符串数字补齐位数,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java字符串数字补齐位数一、使用String.format()方法二、Apache Commons Lang库方法三、Java 11+的St

Linux系统中配置静态IP地址的详细步骤

《Linux系统中配置静态IP地址的详细步骤》本文详细介绍了在Linux系统中配置静态IP地址的五个步骤,包括打开终端、编辑网络配置文件、配置IP地址、保存并重启网络服务,这对于系统管理员和新手都极具... 目录步骤一:打开终端步骤二:编辑网络配置文件步骤三:配置静态IP地址步骤四:保存并关闭文件步骤五:重

C#原型模式之如何通过克隆对象来优化创建过程

《C#原型模式之如何通过克隆对象来优化创建过程》原型模式是一种创建型设计模式,通过克隆现有对象来创建新对象,避免重复的创建成本和复杂的初始化过程,它适用于对象创建过程复杂、需要大量相似对象或避免重复初... 目录什么是原型模式?原型模式的工作原理C#中如何实现原型模式?1. 定义原型接口2. 实现原型接口3

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想