Datawhale干货
作者:仲泰,Datawhale成员
1. 作者知乎:https://www.zhihu.com/people/yong-tan-39-67
2.我用GPT搭建了一个虚拟女友-哔哩哔哩:https://b23.tv/GYYwMcq
3. 五月学习:ChatGPT应用组队学习来了!
本项目是Datawhale四月学习的优秀分享。
心路历程
从去年年底ChatGPT问世以来,我对LLMs做了很多学习探索,从最初体验各种好玩的prompt,到开放API后部署QQ,VX的GPT机器人,套壳做镜像版GPT等,到忍痛开通GPT Plus,到几个账号被封,最后再到加入Datawhale,参加AIGC学习活动,我已经从一个无知的小白,成长为一个有经验的小白了,非常幸运在这段时间里认识了许多志同道合的伙伴和前辈,感谢你们的不吝赐教与无私分享,让一个AI本科生看到了希望。
我是那种想法很多但不太爱敲代码的人,我曾经梦想创业,拥有自己的公司和品牌,自高中起就做着各种尝试,但是理想很丰满,现实很骨感,目前的职业规划是AI产品经理(因为我相信产品经理是CEO最好的预科)。LLM的出现,极大地帮助了我这样代码能力一般(能看懂代码,但想要实现某种功能写出对应的代码比较吃力)的人来说无疑是巨大的福音。在这几个月里,陆陆续续看到国内外基于大语言模型做的很多项目,新的开源大模型发布,每每看到这样的讯息都让我热血沸腾。
在Datawhale四月AIGC的学习活动中,我决心要做一个自己满意的作业,起初我是尝试AI+教育方向的,因为我认为GPT凸显了应试教育的低效和短视,并且本科教育与社会生产存在一定的知识脱节,所以我想尝试用AI工具赋能K12或本科教育,改善现状,但后来我发现GPT存在一定的事实错误,但教育是严肃的严谨的,尽管我做的一些尝试是有一定价值的,但短期来看很难落地。
因此我换赛道到了AI+游戏上,我认识到近些年很多新兴技术的落地往往是从游戏行业开始的,因为具有娱乐性质更容易进入大众视野,最终我选择了虚拟女友这个方向,学习借鉴了一些开源项目,最终也算是实现了预期的效果。
![ad620ef87de69fcf3d1f758d487a987a.png](https://img-blog.csdnimg.cn/img_convert/ad620ef87de69fcf3d1f758d487a987a.png)
实现思路
整个项目是由四个部分组成的,首先ChatGPT大家很熟悉,然后Vits是一个语音合成模型,前段时间很火的AI孙燕姿也是基于这个技术做的,然后Unity是游戏开发引擎,Live2D是一种应用于电子游戏的绘图渲染技术,简单讲就是做皮套人的。
![c5c6eeecab679983dc850a1e65f851c6.png](https://img-blog.csdnimg.cn/img_convert/c5c6eeecab679983dc850a1e65f851c6.png)
项目整体思路其实挺简单的,首先我们先去Live2D官网下载一个untiy的SDK,然后再选一个用的比较多的也比较可爱的皮肤,直接导入到unity里面就行,然后就是写一个接入GPT的脚本,可以加一个预设,比如:你叫小糖,请扮演我可爱的女朋友。最后再写一个脚本调用Vits的API就行了。
![7852be392f7fb3ae4f74b2c7718251f7.png](https://img-blog.csdnimg.cn/img_convert/7852be392f7fb3ae4f74b2c7718251f7.png)
具体代码详见后续package文件内。
![cdf4cd00e410f160a2d4c64a919ae6e9.png](https://img-blog.csdnimg.cn/img_convert/cdf4cd00e410f160a2d4c64a919ae6e9.png)
这个基于GPT的虚拟女友相比于以前传统的那种虚拟人,更加私人定制,自由度更高,比如再做一个捏脸系统,用户可以选择自己喜欢的角色和声音,然后以前像siri,天猫精灵这样的语音助手回答的内容比较固定单一,但是得益于chatgpt这样的生产式大语言模型,虚拟人每次的反馈都会是一个惊喜,再比如可以迭代一个语音识别的功能,用户不用打字只需要说话就可以和虚拟人进行互动。
基于虚拟女友这个想法出发,其实可以优化包装成别的产品,比如vtuber,手机手表语音助手,企业数字人客服,还有游戏里的NPC。
![1237bf0a527a98e1ae72c941d6a4fdc3.png](https://img-blog.csdnimg.cn/img_convert/1237bf0a527a98e1ae72c941d6a4fdc3.png)
这版AI虚拟女友做的比较仓促,还是有一定的优化空间的,比如:
人称错乱,有时虚拟人的回答会用“她”而不是“我”
延迟较高,等待时间稍长
上下文记忆较短,体验欠佳
肢体动作和口型较为单一
人物情感不够丰富
可以采用微调模型训练,使用metahuman或VRoid建模,对输入的文本进行情感分析来改善
具体流程
Live2D人物准备
前往https://www.live2d.com/zh-CHS/download/cubism-sdk/下载
![36c37f146b1f115fea1e863ef7d5ebad.png](https://img-blog.csdnimg.cn/img_convert/36c37f146b1f115fea1e863ef7d5ebad.png)
打开unity,新建一个2D项目
![4cddac8dcf20ebc1099d0757450d8694.png](https://img-blog.csdnimg.cn/img_convert/4cddac8dcf20ebc1099d0757450d8694.png)
访问下载https://gitee.com/DammonSpace/vits-chatgpt-live2d-unity-wife,将SDK和package直接导入即可
![f7e656b8baee6e3dac34ccdee2b126bf.png](https://img-blog.csdnimg.cn/img_convert/f7e656b8baee6e3dac34ccdee2b126bf.png)
![a0a4e38af7086a5fcfa6f5a4af3df859.png](https://img-blog.csdnimg.cn/img_convert/a0a4e38af7086a5fcfa6f5a4af3df859.png)
找到项目内的sample场景拖拽出来
![8e41f4dd9cfadd466371be767989c741.png](https://img-blog.csdnimg.cn/img_convert/8e41f4dd9cfadd466371be767989c741.png)
这时候可能会遇到一个报错
![5d7beba81455c505833565960941d2ee.png](https://img-blog.csdnimg.cn/img_convert/5d7beba81455c505833565960941d2ee.png)
解决办法:Edit->Project Settings->Player, 勾选上Allow Unsafe Code选项
![82f6ecf8444886316ac973c261c0c9f3.png](https://img-blog.csdnimg.cn/img_convert/82f6ecf8444886316ac973c261c0c9f3.png)
到此人物就加载完成了
本地vits部署
首先要安装anaconda(安装教程略)
git lfs install
git clone https://huggingface.co/spaces/zomehwh/vits-uma-genshin-honkai
如果模型安装失败,可以到这里手动下载:https://huggingface.co/spaces/zomehwh/vits-uma-genshin-honkai/tree/main/model
注意这里可能会报错安装pyopenjtalk依赖失败 解决办法可以查看链接:https://www.bilibili.com/video/BV13t4y1V7DV/
conda create -n vits
activate vits
cd <项目文件夹>
pip install -r requirements.txt
注意这里可能会报错安装pyopenjtalk依赖失败 解决办法可以查看链接:https://www.bilibili.com/video/BV13t4y1V7DV/
部署完成后运行python app.py 复制URL打开
![799f91608af99166c8dfd88cb9847ecc.png](https://img-blog.csdnimg.cn/img_convert/799f91608af99166c8dfd88cb9847ecc.png)
页面下方有个use via API,点进去可查看API调用方法,记得安装gradio_client(安装教程略)
![6760d295be7789aff57accd8b773eddc.png](https://img-blog.csdnimg.cn/img_convert/6760d295be7789aff57accd8b773eddc.png)
GPT和VITS的API接入
将你的APIkey填写到GPT脚本的Open AI_Key处
![4f1ceb2fbf9ebf0292324047bad21d91.png](https://img-blog.csdnimg.cn/img_convert/4f1ceb2fbf9ebf0292324047bad21d91.png)
将http://127.0.0.1:7860/run/GetSpeech填写到vits的脚本里
![d1377ace709f5a59b4e2ff8e33a56307.png](https://img-blog.csdnimg.cn/img_convert/d1377ace709f5a59b4e2ff8e33a56307.png)
最后,点击Game,然后改一下显示的分辨率,再运行项目即可
![94f45e05072fb5eb76538d04b580ab56.png](https://img-blog.csdnimg.cn/img_convert/94f45e05072fb5eb76538d04b580ab56.png)
打开控制台,可以看到每次生成语音的耗时,显卡配置越好,生成所耗时间就越短,体验就越好
![390fb35b190c9ede7a732b57f85406b8.png](https://img-blog.csdnimg.cn/img_convert/390fb35b190c9ede7a732b57f85406b8.png)
后记
在新时代来临之时,不少同学会感到迷茫,在知乎上也有很多相关提问,“XXX会不会失业”,“觉得AI是风口,我该如何学习”,“普通人如何利用GPT赚钱”等等。而在我看来为在AIGC的猛烈冲击下,心态很重要:
第一是要拥抱未来,持续学习
保持开放心态:“君子善假于物也”,我们需要拥抱AI时代并保持开放和乐观的心态,不畏惧新技术所带来的挑战。更新知识结构:在AI时代,我们需要不断更新自己的知识结构,特别是与AI相关的领域(如计算机科学、数据分析、统计学等),最近看到一句话说的挺好,“不是每个人生来都握着一副好牌,但学好数学+编程+机器学习,一定是王牌”。深度思考:既要持续关注AI领域的动态和趋势,使自己始终与时代同步,又要警惕追风捉影,深度思考问题,需求的本质。
第二是要应用场景并解决问题,实现自我和社会价值
深入行业:我们需要深入研究所处行业的需求和痛点,并发现AI技术可以解决的具体问题。创新与发展:通过挖掘AI技术的新应用场景,推动整个行业的创新与发展,并实现个人价值的提升。比如ControlNet为斯坦福计算机在读华人博士开发。传播AI:作为AI的使用者,我们可以帮助更多的人了解和使用AI技术,从而解决实际生活中的问题,促进个人和社会的进步。
参与学习:ChatGPT应用组队学习来了!
一起“收藏、点赞”三连↓