我们好,笔者荒生
,今日调研了一款比较不错的开源项目AI-Vtuber
,和我们一起分享。
AI-Vtuber
是一款数字人虚拟直播软件,聚合了多种多种市道干流大模型技能,可谓牛得一逼。包括:支持ChatGPT
、Claude
、ChatGLM
、智谱AI
、文心一言
、Google Bard
、Google Gemini
等等一系列的 Chat 技能;支持VITS
、Bert-Vits2
、VALL-E-X
、OpenVoice
、clone-voice
、Edge-TTS
等多种的语音技能;同时也支持So-Vits-SVC
、DDSP-SVC
变声技能。
是不是感觉技能栈满当当的,这还没完。最让笔者感觉牛逼的仍是对接了多种数字人渠道,包含:Live2D
、Vtube Studio
、UE5
、EasyAIVtuber
。并且还支持一键接入多种国内外直播渠道,像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),具体地址:github.com/Nemo2011/bi…)
- 抖音:websockets 接口 + protobuf2 协议方法
- 快手:https + websockets 接口 + protobuf2 协议方法
- 视频号:HTTP 回调方法
- 斗鱼:websockets 接口方法
- Youtube:SDK(pytchat),具体地址:github.com/EbenKouao/y…
- twitch:HTTP 方法
- Tiktok:SDK(TikTokLive),具体地址:github.com/isaackogan/…
做个小结
好了,以上便是整个技能便是介绍,笔者做个小结:
- 作者以当时的干流AI技能为复合基础,搭建了一个技能全面,脉络清晰的数字人渠道,梳理好了当时的技能栈。可是采用的技能较通用,相对比较简单。
- 整个项目单点架构,用作本地验证能够,假如落地生产,则需求做一个较大的重构。比如:代码结构优化;内存队列改长途分布式队列;内存/文件存储改长途缓存/目标存储;算法运用懒加载机制;Chat 接口支持
Stream
机制。
以上便是本期的全部内容,笔者荒生
,谢谢我们的观看,点赞
、评论
、加重视
笔者也值得拥有。下面是一些项目链接,我们能够自行查阅,或许私信笔者
留言问询。
- NiceGUI:nicegui.io/
- 老项目地址:github.com/0x648/luna-…
- 新项目地址:github.com/Ikaros-521/…