AI Vtuber一款聚合了多种大模型技术的虚拟主播

news2024/11/17 2:37:08

大家好,笔者荒生,今天调研了一款比较不错的开源项目AI-Vtuber,和大家一起分享。

AI-Vtuber是一款数字人虚拟直播软件,聚合了多种多种市面主流大模型技术,可谓牛得一逼。包括:支持ChatGPTClaudeChatGLM智谱AI文心一言Google BardGoogle Gemini等等一系列的 Chat 技术;支持VITSBert-Vits2VALL-E-XOpenVoiceclone-voiceEdge-TTS等多种的语音技术;同时也支持So-Vits-SVCDDSP-SVC变声技术。

是不是感觉技术栈满当当的,这还没完。最让笔者感觉牛逼的还是对接了多种数字人平台,包含:Live2DVtube StudioUE5EasyAIVtuber。而且还支持一键接入多种国内外直播平台,像B站抖音快手小程序YouTube和近年来最火爆的TikTok

此时此刻,有没有一点懵逼的感觉,老实说,其实笔者第一反应就是如此。

项目框架

如果大胆的想象一下,不妨将其称之为互联网技术的终点就是 AI 数字人。好了,笔者先带大家看看项目的整体架构吧

有没有很惊讶,AI Vtuber几乎能够模拟出人类肢体主要的特征。当然,笔者尝试了这些技术。整体来看,厂商接口效果肯定更好,开源算法目前只能做验证替代。但是,笔者坚信不久的将来,AI 智能虚拟人一定会完美实现。

上面,看完这个比较宏大的架构,我们也来简单分析下作者是如何实现的。

代码剖析

  • config.json 配置文件
  • api.py 接口主程序
  • main.py GUI 界面主程序
  • webui.py WEBUI 界面主程序
  • utils 文件夹,Chat、T2ST、S2TT 和通用类相关功能的封装实现
  • data 文件夹,存储数据文件、违禁词、文案等
  • Live2D 文件夹,存储 Live2D 源码及模型

前端工程

整个项目以webui.py文件作为入口,使用NiceGUI这个 Python 框架为整个项目的编写 Web 前端。

后端工程

讲真,作者的后端工程整体就比较粗糙了,整个后端架构不是很合理。

后端工程主要包含:api.py接口代码、main.py界面代码、config.json全局配置代码。

整个项目都是基于各种算法接口直接的配合调用,代码相对简单。如果想自行尝试的同学,可以先本地部署需要的开源算法,然后通过127.0.0.1进行配置调用。针对厂商的商业 AI 服务,则需要先申请权限后才能使用。

针对对接第三方直播平台,作者主要采用了两种方式:第三方 SDK爬虫逆向,具体如下:

  • Bilibili:SDK(bilibili-api-python),具体地址:https://github.com/Nemo2011/bilibili-api)
  • 抖音:websockets 接口 + protobuf2 协议方式
  • 快手:https + websockets 接口 + protobuf2 协议方式
  • 视频号:HTTP 回调方式
  • 斗鱼:websockets 接口方式
  • Youtube:SDK(pytchat),具体地址:https://github.com/EbenKouao/youtube-live-chat-fetch-python
  • twitch:HTTP 方式
  • Tiktok:SDK(TikTokLive),具体地址:https://github.com/isaackogan/TikTokLive

做个小结

好了,以上就是整个技术就是介绍,笔者做个小结:

  • 作者以当前的主流AI技术为复合基础,搭建了一个技术全面,脉络清晰的数字人平台,梳理好了当前的技术栈。但是采用的技术较通用,相对比较简单。
  • 整个项目单点架构,用作本地验证可以,如果落地生产,则需要做一个较大的重构。比如:代码框架优化;内存队列改远程分布式队列;内存/文件存储改远程缓存/对象存储;算法使用懒加载机制;Chat 接口支持Stream机制。

以上就是本期的全部内容,笔者荒生,谢谢大家的观看,点赞评论加关注笔者也值得拥有。下面是一些项目链接,大家可以自行查阅,或者私信笔者留言询问。

  • NiceGUI:https://nicegui.io/
  • 老项目地址:https://github.com/0x648/luna-ai
  • 新项目地址:https://github.com/Ikaros-521/AI-Vtuber

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1506594.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言学习--练习4(二维数组)

目录 1.统计有序数组中的负数 2.矩阵对角线元素和 3.最富有客户的资产总量 4.托普利兹矩阵 5.矩阵中的幸运数 6.二进制矩阵中的特殊位置 7.岛屿的周长 1.统计有序数组中的负数 //直接遍历二维数组即可 int countNegatives(int** grid, int gridSize, int* gridColSize) …

20240310-2-数组(Array)

数组(Array) 面试中最常见的就是围绕数组进行出题,主要原则数组可以随机读取,一般遇到数组相关的题目,都不是直观看到的那样。第一步暴力解法,第二步是否可以排序,是否可以二分,是否…

【Linux】线程封装_互斥

欢迎来到Cefler的博客😁 🕌博客主页:折纸花满衣 🏠个人专栏:题目解析 🌎推荐文章:【LeetCode】winter vacation training 目录 👉🏻线程封装Thread.cpp 👉&am…

给 spyter/all-spark-notebook 添加scala支持

spyter/all-spark-notebook默认没有安装scala notebook,需要手动添加。 你可以创建一个新的 Dockerfile,在其中添加你需要的配置和组件。以下是一个简单的例子: FROM jupyter/all-spark-notebook:x86_64-ubuntu-22.04 #冒号后可以是latest&a…

Masked Generative Distillation(MGD)2022年ECCV

Masked Generative Distillation(MGD)2022年ECCV 摘要 **目前的蒸馏算法通常通过模仿老师的输出来提高学生的表现。本文表明,教师还可以通过引导学生特征恢复来提高学生的代表性。从这个角度来看,我们提出的掩模生成蒸馏&#x…

扩展学习|系统理解数字经济

文献来源:[1]肖静华,胡杨颂,吴瑶.成长品:数据驱动的企业与用户互动创新案例研究[J].管理世界,2020,36(03):183-205.DOI:10.19744/j.cnki.11-1235/f.2020.0041. [2]陈晓红,李杨扬,宋丽洁等.数字经济理论体系与研究展望[J].管理世界,2022,38(02):208-22413…

微信小程序跳转到其他小程序

有两种方式,如下: 一、appid跳转 wx.navigateToMiniProgram({appId: 目标小程序appid,path: 目标小程序页面路径,//不配的话默认是首页//develop开发版;trial体验版;release正式版envVersion: release, success(res) {// 打开成功…

yudao-cloud 学习笔记

前端代码 浏览器打开 https://cloud.iocoder.cn/intro/ F12 执行代码 var aaa $(".sidebar-group-items").find("a"); var ll[]; var tt[]; for(var i0;i<aaa.length;i ){ ll.push("https://doc.iocoder.cn" $(aaa[i]).attr("href&quo…

电动车窗开关中MOS管的应用解析

随着科技的不断发展&#xff0c;电动车窗系统已经成为现代汽车中不可或缺的一部分。而MOS&#xff08;金属氧化物半导体&#xff09;管的应用&#xff0c;为电动车窗开关注入了新的活力&#xff0c;极大地提高了其使用寿命和安全性。 一、MOS的优越性能 MOS管以其卓越的开关…

记录西门子:IO隔离SCL编程

在PLC变量中创建IO输入输出 在PLC类型中创建输入和输出&#xff0c;并将PLC变量的输入输出名称复制过来 创建一个FC块或者FB块 创建一个DB块 MAIN主程序中&#xff1a;

【JavaEE初阶系列】——计算机是如何工作的

目录 &#x1f388;冯诺依曼体系 ❗外存和内存的概念 ❗CPU中央处理器—人类当今科技领域巅峰之作之一 &#x1f6a9;如何衡量cpu &#x1f6a9;指令&#xff08;Instruction&#xff09; &#x1f388;操作系统&#xff08;Operating System&#xff09; &#x1f388;…

超越基础:提升你的数据采集策略与IP代理的高级应用

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

软件测试 需求

文章目录 1. 需求1.1 什么是需求1.2 为什么要有需求1.3 测试人员眼中的需求1.4 如何深入理解需求 2. 测试用例的概念2.1 什么是测试用例2.2 为什么要有测试用例 3. 软件错误&#xff08;BUG&#xff09;的概念4. 开发模型和测试模型4.1 软件的生命周期4.2 瀑布模型&#xff08;…

[SAP] ABAP注释快捷键修改

在使用ABAP编辑器的时候&#xff0c;原有的添加代码注释和取消代码注释的快捷键未生效&#xff0c;这时我们可以考虑对注释快捷键进行修改 在事务码SE38(ABAP编辑器)屏幕右下角&#xff0c;点击【Options选项】图标 在【键盘】|【命令】输入栏中输入"comment"关键字…

mac上更改vscode快捷键

以移动当前行代码为例 mac上的vscode&#xff0c;默认移动当前行代码的快捷键是⌥↑即option↑按键 现在我想改成command↑ 步骤如下 1.打开vscode-code-首选项-键盘快捷键 2.打开快捷键列表 3.输入move line&#xff0c;找到要改动的这个快捷键 当前行-右键-更改键绑定&…

LTspice(14) Noise仿真

LTspice(14) Noise仿真 好久没有更新LTspice的教程了&#xff0c;大家想了没&#xff1f; 截止目前LTspice已经更新到24.0.9。界面发生了一些变化&#xff0c;但主要功能并不受影响&#xff0c;新的版本改了UI&#xff0c;找东西更加方便了&#xff0c;界面如下图1所示。 图1…

JavaEE+springboot教学仪器设备管理系统o9b00-springmvc

本文旨在设计一款基于Java技术的教学仪器设备销售网站&#xff0c;以提高网站性能、功能完善、用户体验等方面的优势&#xff0c;解决现有教学仪器设备销售网站的问题&#xff0c;并为广大教育工作者和学生提供便捷的教学仪器设备销售渠道。本文首先介绍了Java技术的相关基础知…

checking file system on C

1、win7系统 开机检查C盘&#xff0c;虽然可以ESC取消检查&#xff0c;每次操作很麻烦&#xff0c;且没有意思 2、注册表清空BootExecute数值数据 1&#xff09;打开注册表 WinR &#xff08;快捷键&#xff09;输入“regedit”&#xff0c;回车 2&#xff09;位置HKEY_LOCAL…

怎么在运行框执行脚本和软件?

1.新建一个文件夹&#xff08;随便命名&#xff09; 2.右击此电脑点击属性 3.点击高级系统设置 4.点击环境变量 5.选中Path,点击编辑 6.点击编辑&#xff0c;粘贴你刚刚文件夹的地址 7.所有窗口全部点击确定 8.你可以把常用的软件快捷方式复制到文件夹里&#xff08;比如微…

QT画图功能

QT画图功能 每个QWidget都自带的功能&#xff0c;继承了QPainteDevice都可以使用QPainter来进行绘图。 画图需要调用paintEvent绘制事件&#xff0c;paintEvent事件时QWidget类自带的事件。 重写paintEvent事件。&#xff08;重写事件&#xff1a;如果父类有某个方法&#xff…