文本大模型+SOVITS实现自定义微信小号聊天机器人
前置准备
- 阿里云百炼开通APIKEY,用于后续调用文本模型(如果有本地部署的模型这一步可以调过)
- 下载GPT-Sovits整合包(需要保证显卡显存在4G以上),我这里使用版本是v2
- 从网上下载别人训练好的角色语音模型
- 角色参考音频(5秒内)
某大佬写的sovits教程:GPT-SoVITS指南
实现
一. 启动TTS模型
1.确保角色语音模型以及放到了对应文件夹中,如果语音模型是v1版本的就放在不带版本后缀的文件夹中

- 因为我们需要的是api调用语音模型,所以这里在控制台启动api_v2.py
注意这里一定要用整合包的环境启动(我一开始用本地环境启动,结果就是下载了一大堆依赖,最后还是没能启动)
语音模型相关api在该文件里有详细注释,主要包括了/tts生成音频文件,/set_gpt_weights切换GPT模型,/set_sovits_weights切换Sovits模型
二. 使用SpringAI调用大模型
- 设置好对应角色的prompt,不会写的话可以直接查
- 调用文本模型的得到回复,将回复作为输入生成音频
回复内容大概长这样:
(視線を逸らし、エアポッドを触りながら)「…東の路地の子たち、最近警戒してるから。静かに行くんだよ。」
()中的内容为动作或心理,只有「」中的内容是说话内容,所以要进行处理保留方括号内的内容modify_text
生成音频(这里http参数从上到下分别是文本内容(要生成的语音内容),文本语言,参考音频地址,参考音频语言,参考音频文本,切分方式,并行数)
因为进行语音推理的时候是需要有参考的音频的,所以要提前准备,参考音频文本指音频的内容。 切分方式不用管和我一致就行,并行数应该是可以提高生成速度的没试过。
总之最后的得到了文本内容以及音频地址(上面图片的txtAndAudioPathDTO)
三 wxAuto实现微信自动回复
没啥好说的,就是python的第三方库,原理好像是监控桌面上的微信,然后进行自动回复(期间不能使用键盘鼠标)
逻辑很简单,将监听到的消息作为参数,调用springboot暴露的接口就行。
四.效果展示
暂时每找到发送语音的方法,qq上应该可以实现。
可扩展的点:
- 支持通过"/"等为开头的问候为提示方式,进行角色语音模型的切换
- 单独设置一个文件夹存放对应角色可以使用的图片,通过分析情感来发送符合对话场景的图片
- 尝试增加知识库,内容可以是对话场景或者把前面的SystemPrompt放在知识库中
- 提供前端页面,允许可视化的管理(暂时没思路)
- 考虑将音频放在临时文件中(因为发送后也相当于存储了一份),考虑将音频上传到对象存储中
- 云端部署
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
