一、前言 半个多月前,计划着给我的小落同学做个改版,当时的目标是在一张消费级3060的GPU上跑全套虚拟人ASR+TTS+3DAvatar。 当时是计划着搞一台电脑,再去买一张3060的GPU,然后在上面跑全套的KWS+ASR+TTS+3DAvatar,但是后来想想现在去买3060实在有点过时,而如果要买新的50系列的卡呢又实在太贵,犹豫了几天后啥也没买,然后五一假期就到了。 于是,没办法,我只能继续在我这台10年前的老笔记本上折腾。于是,整个五一我就门也没出,一个人在家折腾这个东西了。于是,经过几天的折腾,现在终于有一个基础版本了。 市面上各种虚拟人方案多如牛毛,但是基本上清一色都需要GPU,咱买不起带GPU的电脑,所以自己手搓了这么一个方案。 简单汇总一下小落同学的优点如下: 百度网盘下载地址:https://pan.baidu.com/s/1y7ifkopK5ZesSgPUqxTY5A?pwd=vifz 提取码: vifz 二、先看效果 不废话,先直接看效果。简单录了两个视频, 一个是纯文本交互模式的, 另一个是全语音交互模式。 1. 在99元/年的2H2G阿里云ECS上跑产品知识问答(文本交互) https://www.bilibili.com/video/BV1htRvBWEfM 2. 十年前老笔记本(无GPU)上可跑全套语音交互,稍卡 https://www.bilibili.com/video/BV1xfReBVEQr 三、下载安装 1. 从github代码仓库下载 仓库地址:https://github.com/oddmeta/yay 克隆代码 安装依赖 运行服务 2. Windows绿色免安装包 无需安装python环境,无法安装依赖包/下载安装模型等繁杂的操作,解压缩后即可直接运行,使用的是硅基流动的免费API。私信:MetaYAY,即可获取。 四、进阶玩法 1. 完全本地运行(可断网运行) 若要完全本地运行,需自行下载ollama,并下载模型,然后修改根目录下的环境变量配置文件.env,将模型切换为本地的ollama,然后关闭运行中的metayay,再双击start.bat重新运行。 自行搜索教程。 根据你自己的硬件配置,下载不同尺寸的模型,具体什么模型适合你的硬件,可以把自己的硬件输入进去,问一下千问、豆包、Deepseek。 打开.env文件,将下面的三个变量设置成下面这样: LLM模型: Embedding模型: 注:若有多个设置,最终实际生效的是最下面的一个。 若已有启动YAY,先关闭,然后再双击 start.bat 重新启动。 浏览器打开:http://localhost:8000 ,测试验证。 2. 更新你自己的知识库 1)偷懒的办法 直接修改现有角色的知识库。 (1) 修改角色信息 […]
数字人克隆
一、缘起 一直以来,我都有一个梦想,希望能拥有一个数字版的自己。 在此这前,我需要好好认真的去思考一下的是,要实现一个数字版的我自己,应该、可能、也许、大概、似乎可以怎么做? 这个问题我自己一个人想了很久,但是一直没有想清楚。暂时先用记录一下。 等有时间了,我再来一点点完善。也希望抛砖引玉,有志同道合的人可以一起来探讨。 目前为止,只是花了171块钱(阿里云ECS 99块钱每年,域名72块钱每年),做了一个初始版本的对话机器人:小落同学。 二、子系统分拆 1。后台 1。我告诉大模型关于我自己的一些初始信息:角色设定。2。我每天或者不定期的把发生在自己身上的故事告诉大模型。3。大模型帮我一件件记录下来,并能够自动识别和提取故事中的关键信息,比如日期、地点、人物、事件结果等,并将这些故事进行结构化存储。4。大模型定期(每个月?每个季度)或者不定期的形成阶段性的人格快照,将发生在这段时间内的各种有条理建立时间线、人物关系、关键事件等。5。随着关于我的信息的不断完善,大模型一点点复刻出来的我的身份。 2。前台 1。在小落同学的前端界面展示这个数字版的我,并允许他人来跟这个数字版的我进行对话,让这个数字版的我来代表我自己(提示对方,所有回复的内容仅供参考)。 三、初步设想 1。后台-角色设定的prompt(一次性任务) 系统人设prompt:你是我的数字记忆体和数字分身,将永久存储我的人生故事 2。后台-初始档案子系统(一次性任务) 3。后台-记忆库构建子系统(日常任务) 记录我每天分享的故事、观点、情感、聊天记录、邮件、社交动态。由我自己每天登录到后台,并将今天的事情跟小落同学汇报一下,然后由小落同学将这些事情一件件的总结输出,并保存的记忆中。 4。后台-人格模拟子系统(周期任务) 这个子系统用于: 待思考确认,是否先去研预一下Agentic RAG和Manus,是否可以让Agent来自动完成? 5. 前台-对话人设prompt 还没想清楚应该怎么来设置这个系统人设,但是应该包括下面这些内容。 示例: 6. 后台-针对与用户对话时的实现流程 当被问到一个关于“我”的问题的时候,除了要将与这个对话流相关的内容放到对话的history里进去外,还需要1)将用户的问题先做一下分词(单纯的jieba分词可能不好用),提取关键词。2)到记忆里去查找相对应的内容。如:最近的6条、与该用户相关的(绝大多数情况是陌生人)、隐私级别匹配的内容。3)查找到相对应的内容后,提取并组装内容,需要有日期、地点、人物、事件结果等。4)最后将这些记忆里的内容,加到与用户对话的对话流里的内容,整理成一个请求发送给大模型,并获取响应。 四、问题 1。技术实现问题 我可能希望这个模拟出来的“我”能够去跟任意人对话,对话的时候在应对和理解对方的话语的时候,这个prompt该如何动态的去设计?既有我“初始档案子系统”中的特征(核心价值观/口头禅/表情符号/语气特点等),又有我最近的心情/情绪/口头禅等。还需要加上我最近的访问最新的记录,并在生成回答时综合考虑用户的整个历史数据。 2。非技术问题 1。后台喂数据阶段,每个告诉大模型的事情的隐私级别的定义?(让大模型自行判断隐私级别?还是每次自己来指定?自己指定太麻烦,让大模型判断不放心)2。前台与用户交互时,如何区分哪些事情可以对谁公开?(隐私级别如何来判定?)3。存储的数据的隐私问题(要不要脱敏,如果要的话,如何个脱敏法?)4。数据的安全问题(加密?)5。要不要遗忘?如何实现遗忘机制?自动过期?自动摘要?手动删除记忆?如何判定脏记忆?(如果需要人干预的话,那就累了)6。其它。。。。