尝试基于大模型的原神对话系统
2025-06-24 12:26:14
来源:新华网
一、简介。
这个项目是一个大模型+尝试游戏,与原神内人物的对话系统成功实现。演示视频:https://www.bilibili.com/video/BV1b48ceuell。
github地址:https://github.com/goodluckydog/GenshinTalk。
模型下载链接:
链接:https://删除pan.bai掉du.com/中s/1q文n8g7deljWLPKFUGCov61Awd=yo用vn。
提取码:yovn。
音频培训可执行文件下载地址:
链接:https://删除pan.bai掉du.com/中s/1a文NIrSC7G6L5y1q_bsQebNg?p再wd=rl用ol。
提取码:rlol。
整个项目分为三部分:
- 声音读取
- 大模型对话:以后我将介绍如何基于中文预训练模型Atom训练自己的大模型。
- 文本输出:使用BertVITS2训练所需角色的声音,并输出,完成对话。
- 成功运行项目,需要下载一系列模型它们分别是:
- bert:直接放在根目录下。
- Atom:这个建议是根据你自己下载的,由于还有其它各种各样的东西。
- 语音模型:放在./CapsWriterOffline/models可以下载。
- 模型下载地址:
- 2.声音读取。
2.1项目介绍。
github原项目地址:HaujetZhao/CapsWriter-Offline: CapsWriter 离线版,一个好用的 PC 语音输入工具的终端 (github.com)。
B站视频教程:https://www.bilibili.com/video/BV1t4y1d75s。
这个项目已经打包了exe执行文件,使用非常方便,但是为了构建对话系统使用前需要下载两个模型:
paraformer:我用作者给出的百度网盘链接下载了这个模型。
- punc_ct-transformer:虽然网盘链接也有,但是我实际上会缺少文件(config.yaml和tokens.json),最后,选择使用git下载成功解决。
- 标点模型:git clone https://www.modelscope.cn/damo/punc_ct-transformer_cn-en-common-vocab471067-large-onnx.git punc_ct-transformer_cn-en。
2.2接口调整。
为了构建一个完整的系统,我根据源代码设置了一个界面。
分析:如果不使用作者打包的exe执行文件,要启动程序,需要单独操作./CapsWriterOffline下的start_client.py和start_server.py,前者是控制麦克风输入的,后者是加载模型。
界面:将麦克风收集到的输入转换为文本并返回程序,我修改了client端的代码,并将其集成到根目录中的genshin_talk.在py中c;因此,根目录只需要在后续使用中同时启动。
genshin_talk.py。和。start_server.py。就可以了。3.大模型对话
其实一开始我只是想学习如何使用大模型。c;最后的对话系统属于饺子,在这一部分,我将介绍如何训练一个我喜欢角色的大模型。
3.1数据。
根目录下有LLM文件夹,可用于训练自己的大模型,首先,你需要在LLM/Data下创建自己的数据集.json文件,以下形式:
刻晴的数据集是我手打的,主要来源是(自己打字太费时间了,我只做了100条数据,请根据自己的需要制作自己的角色数据集,也可以根据自己的理解添加数据):
原神中刻晴的好感对话。
- 原神中刻晴的主线故事:https://www.bilibili.com/video/BV1hr4y1F7H。
- 3.2开始训练。
去LLM文件夹下的config.yaml修改LLM__dataset_path,修改为自己创建的数据集的路径。
- LLM/config.yaml里还有一个LoRA_save_path,这是您使用大模型微调后的LoRA信息,也可以修改为自己喜欢的路径
- 运行keqing.py可以开始训练。
- 训练前,程序会自动从hugingface下载Atom模型,这是一个适合中文的大型标杆llama2模型。然而,huggingface在中国是不允许访问的c;因此,当这部分程序首次运行时,需要使用魔法。大型模型,我下载了大约13个G。默认存储地址为:C:\Users\用户名\.cache\huggingface\hub。
- 一点关于数据集的坑:这个数据集第一次处理后,以后,您将更改原始文件而不更改文件名称,它不会再处理文件了。如果您想更改数据集,需要先去C:\Users\用户名\.cache\huggingface\datasets\generator下删除了之前缓存的文件夹。
- 根据数据集的丰富性,大模型的训练效果决定了,如果你对这段对话有自己的情感需求,在制作数据集时,您可以有意识地制作相关数据(比如价值观,人生观)
- 四、文本输出。
4.1项目介绍。
为了增强对话的体验感,选择使用其他老板制作的BertVITS2模型来训练相应角色的声音。
项目原创视频:BV1hp4y1K78E
项目原创github地址:https://github.com/Stardust-minus/Bert-VITS2
BertVITS2-2.3集成版教程:https://www.bilibili.com/video/BV13p4y1d7v9c;声音训练时,2.3整合版的教程也完全使用。
如果你想训练原神、崩铁、鸣潮相关人物的声音,然后可以去主页 | AI-Hobbyist 下载资源网络磁盘我还需要使用魔法来访问这个网站。
4.2接口调整。
训练模型后,您的模型文件将保存在根目录中,Data\项目名称\models\下,以G开头的.#xfff0在pth中c;选择模型并保存其路径,去webui.py修改这一行代码:
net_g。
- =
get_net_g。 (。model_path。="您刚刚保存的模型路径",version。="2.3",device。="cuda:0",hps。=hps。)。当你在训练这个项目时,你一定会尝试测试,这时你会看到一系列的参数。您在网页上看到的参数,可对应./LLM/config.yaml设置,至少把speaker换成自己创建的名字。五.总结。
- genshin_操作根目录talk.py和start_server.py,等待双方加载模型,然后按下Caps Locks可以对话。
如有任何问题,请联系我,邮箱:[email protected] QQ:2744334724。
- 如果可以,请给我一个star,这对我来说很重要。
-
【责任编辑:新华网】