目录
这个专栏是团队进度的周报,会每两周更新一次团队在本项目上的进展,权当备份。
大语言模型部分
#阶段1 4月5日#
目标:完成大语言模型CharacterGLM-6B的本地部署,参数设置和使用,完成语音克隆模型的本地部署
实施:本地部署如下,参数info设置可调
#阶段2 4月11日#
目标:尝试实现LLM生成response对接GPT-SoVITs模型使用的api进行生成语音任务
实施:在脚本内编辑代码,通过给予api文本并接受返回的音频流写入本地
语音克隆模型部分
目标:通过AutoDL走一遍GPT-SoVITS的部署流程
具体实施:
开启部署网页
在JupyterLab的终端中输入echo {}> ~/GPT-SoVITS/i18n/locale/en_US.json && source activate GPTSoVits && cd ~/GPT-SoVITS/ && python webui.py,点击输出的链接即可跳转
准备训练集语音
在对应游戏的wiki中通过开发者模式获取语音。由于本次部署仅为初步测试,仅选择了几条情绪较弱,语气较少,音调连贯的语音作为训练集。
下载后,上传到云端。
打标
游戏语音仅有人声且已经切分处理,不用自己处理音频,因此直接跳到处理音频文本。
部署网页对接了几种语言的自动识别语音工具,导入语音文件夹后选择开启ASR即可。
校对
输入打标后获得的字幕文本的路径,点击终端输出的网页,进入校对页面。
虽然自动识别的准确率看着蛮高的,稳妥起见还是对着音频输入相应的原生文本。
全部输入后点击Submit Text和Save File,即可保存校对结果。
训练
输入语音和字幕的路径,其他参数保持默认,sovits训练完后训练GPT
推理
选好模型后点击开始TTS推理,完成后点击终端输出的链接,进入网页。
上传输入音频和输入文本。经过几次测试后感觉这一步挺重要的,很大程度上决定了输出音频的语气,最好输入音频和输入文本的应用场景一致。
因为本项目的应用场景不需要很长的文本,这里怎么切分音频就不用太考虑了。
最后导出音频。
本项目主要需要此步骤的sovits模型和gpt模型,最后的音频用于评估模型的好坏。
总结:模型部署还是比较简单,途中没有出现bug。
图像生成模型部分
目标:尝试本地部署Stable Diffusion Web UI,并探索符合项目需求的图像风格。
具体实施:
WebUI的下载与安装
去年在SD1.5大火的时候就尝试过WebUI,因此此次的配置并不难,从Github仓库拉取更新了一下本地代码,并且根据引导重新配好了环境,区别似乎在于PyTorch的版本更高了,但页面和功能还是熟悉的样子。
Fine-tune模型与LoRA的收集
本次的MomoTalk项目是源于BA,因此需要能够生成其中的人物,这自然是借助LoRA实现,兴致勃勃地在Civitai上下载了一个看起来不错的爱丽丝LoRA和Q版人物LoRA,结果用标准SD1.5生成后得到了一张一言难尽的图片:
人物特征基本满足,但完全没法看,因此只能寻求下载一个Fine-Tune的SD,最后,在简单的筛选后选择了对动漫人物更有理解的meinamix,从而拿到了一个比较不错的效果。
虽然光环有明显的错乱,手也不甚科学,但至少人物上不再是抽象了。
图像生成的尝试
下一步就是尝试能否让爱丽丝表现出各种各样的动作和表情,从而穿插到对话当中。在最后的对接当中,文本模型将会给出一个“表情描述“字段,而这个字段就是Prompt里唯一需要替换的东西。
经过尝试,爱丽丝的动作维持在几个相对固定的状态,而表情上的变化则更是难以控制,但毕竟图像只是辅助整个语音系统的介质之一,因此也就不过多苛求了。
用户界面部分
目标:制作登录界面
具体实施:
制作登录界面UI
先使用了python tkinter进行尝试
制作效果不美观且代码冗长
最后决定使用PyQt5进行用户界面设计,PyQt5提供了丰富的功能和组件,可以轻松实现各种复杂的界面设计和交互功能。无论是文本输入框、按钮、菜单还是图形绘制,PyQt5都提供了强大的支持,使得可以创建出吸引人且功能完善的沉浸式对话软件。
下图是登录界面的雏形