一个在windows系统上用于给AI虚拟主播在bilibili上开播的工具。
注意:本项目只能实现各个平台的对接与结果呈现,相关语言模型,筛选器模型,TTS模型需要自行准备以对接
本项目处于早期阶段,欢迎任何issue和pr。
运行
git clone git@github.com:Waterwzy/AI_live_host_for_windows.git
cd AI_live_host_for_windows
./setup.bat这样,你就可以在虚拟环境下安全地运行项目了。
在上述平台中申请权限,等待一周左右,你会在对应邮箱中获得access_key_id,access_key_secret。
在幻星-互动玩法中,你可以获得你的主播身份码。
此外,你需要找一个GPT-so-vits的api服务(或者直接部署本地)以及语言模型(可以是你自己的模型,也可以是有prompt的网络模型),准备至少一个语言模型的api_key。
有了足够的配置,现在可以开始进行相关环境配置了。
打开config.json文件,填入相关信息。(文件里的描述很完整了,这里不再赘述)
注意:我不建议你使用beta功能,有bug且高度不可控
本项目不可以帮你搭建直播场景,相关直播场景的搭建,live2d的准备需要个人完成
建议使用的直播场景搭建工具:哔哩哔哩直播姬,OBS Studio
建议使用的live2d播放工具:VTube Studio(如果你有能力,可以直接使用pylive2d,后续版本可能会补上接口)
在项目目录下运行:
./run.bat或者直接使用venv环境下的python解释器运行 main.py 亦可。
-
项目能够实现的功能
- 监听直播间消息(具体类型:进入直播间,给直播间点赞,直播间弹幕,直播间礼物,直播间大航海)
- 对弹幕的筛选以及指令反馈:去除不易于AI主播处理的弹幕,在程序内处理有关命令的弹幕。
- 对正常的聊天类型弹幕,交给AI主播处理,进行TTS,并进行输出和相应反馈。
- 增加游戏功能,让AI主播可以和人类通过弹幕进行互动游戏(功能选择开启,开启并启动该游戏后会启动一个pygame窗口,可导入OBS,
game文件夹下的main.py为游戏主程序,firefly.png和player.png可以随意更换,需要保证文件名一致,像素不超过40*40,game_origin.py文件作为游戏参考,可以进行键鼠操作,基本游戏逻辑相同)。 - 接入vts接口,可以更加高效地处理表情触发(注意:在首次打开vts后,运行程序时,需要手动同意vts的插件请求,后续只要不关闭vts就不需要再次同意)。
- (new update)增加消息合并功能:当有多个消息进入处理,且当前消息处理消息暂未返回时,会主动取消当前任务,将待处理消息合并后一起发送,合并次数存在上限,可在config文件中更改(注意:此策略可能会消耗额外tokens,请按需使用)
-
关于输出
所有输出文件储存在
logs文件夹中,其中:-
command.jsontext.jsontodo_raw.json``game.json为中间文件(日志),分别存储直播命令+经过筛选的弹幕,语言模型的输出,初始消息列表,游戏命令列表。 -
livetext.txt存储除弹幕外之前提到的所有监听到的消息,可以直接导入OBS。 -
output.txt存储语言模型的输出,可以直接导入OBS。 -
mode.txt储存当前模式,分为chat和singing两种,可以直接导入OBS。
-
-
关于指令
现阶段不支持自定义指令,支持的指令有:
remtext操作权限仅限于主播(需在配置文件中设置),房管,可以清除模型的记忆。(prompt,预设对话除外)翻唱 歌曲名/编号可以进行相关角色翻唱(配置文件中可以设置条件),仅支持在AI目录中保存的歌曲。点歌 歌曲名可以进行点歌,前提是你自己开一个点歌机。(这好像不是我们的指令,但我们可以保证相关弹幕不会被语言模型处理)- 以
#开头的弹幕不会进行处理。 - 输入
game进行游戏(配置文件设置条件),输入相应坐标(例如A5,不区分大小写)进行行动。
好像没什么可说的了(?),想到什么再来补充吧。