当前位置:   article > 正文

写个AI虚拟主播:看懂弹幕,妙语连珠,悲欢形于色,以一种简单的实现_python虚拟主播开发

python虚拟主播开发

这不是你期望的介绍深度学习大模型的文章。而是使用人人都能理解、编程、运行的简单技术(包括机器学习和非机器学习技术),通过一系列工程进行整合、组装,从而实现一个 AI 虚拟主播的故事。

muvtuber

让 AI 成为虚拟主播:看懂弹幕,妙语连珠,悲欢形于色,以一种简单的实现

元宇宙终于不再铺天盖地,ChatGPT 又来遮天蔽日。看不下去了,那当然是选择——加入这虚浮的演出,诶嘿~(误)

想法

蹭热度的想法是这样:元宇宙 => 皮套人,ChatGPT => 中之人,放到一起:AI 主播!

咳,实际上没那么假大空啦。真实的故事是这样:

既然我可以让 AI 看懂你的心情,并推荐应景的音乐,以一种简单的实现,那么,我还想再进一步!让 AI 站到唱机背后,聆听你的故事,为你播出此时此刻萦绕心中、却难以言表的那段旋律。曲终意犹未尽当时 ,一段 AI 细语入耳更入心 —— 机器不是冰冷的玩具,她比你更懂你,至少她更懂那个真实的你:她不会说谎,而你每天都在骗自己。

这个想法指向的产品是一个 AI 电台,我把它叫做 muradio。在细化设计的过程中,我不得不考虑电台的传播问题。我当然可以在本地完成一切,让 AI 电台只为你一人播,这样实现起来还简单;但是,电台果然还是要大家一起分享吧。所以,我考虑用一种现代的方式——视频直播。

那么,在实现 muradio 之前,先让 AI 学会直播吧!

设计

我把这个 AI 主播叫做 muvtuber 1

人是如何做的

要设计一个直播的机器,其实很简单。首先考察人是如何完成直播的:

  • 首先需要一个人作为主播:这个人是会动会说话的,心情是会写在脸上的;(只是以普遍理性而论,非必要条件,更非歧视残障人士。)
  • 在开始前有一个预订的主题,也可能没有;
  • 主线:推进主题:打游戏、一起看、点歌 …;
  • 支线:主线被弹幕打断,转而与观众互动:聊天;
  • 最后,需要一个直播推流工具,比如 OBS。

互动是直播的灵魂。直播没有主题仍是直播,而没有了互动就成了电视。简单起见,我们先忽略主题问题,只考虑注入灵魂的互动实现。互动的过程如下:

  • 观察:看到弹幕
  • 过滤:选择性忽略一些没有意义或太有意义的话
  • 思考:对过滤后留下来的话进行思考 => 回应的话
  • 过滤:想到的部分话可能是不适合说出的,也要过滤掉
  • 发声:把回应说出来
  • 动作与表情:伴随观察、思考、表达这个流程的动作控制、表情管理。

用机器模拟人

清楚了直播的处理过程,就容易用机器模拟:

  • 主播:我们可以用 Live2D 模型来作为主播本人。
  • 看弹幕:使用弹幕姬类程序,暴露接口即可:func danmaku(room) chan text
  • 思考:机器文本生成:func chat(question) answer
  • 发声:机器语音合成:func tts(text) audio
  • 过滤:func filter(text) bool
  • 动作表情:Live2D 模型可以具有动作、表情,可以通过某种方式驱动。

Live2D 和弹幕姬是现成的解决方案,而从看弹幕、到思考、到发声的整个流程也是非常模块化、函数式的,直观清晰。难点是如何让 Live2D 模型动起来?

模型何时该摆什么样的表情,何时该做什么样的动作?真人主播解决这个问题靠得是本能,虚拟主播解决这个问题靠得是动捕——归根到底还是人。看来现实不能直接借鉴,那么只好做个抽象了。

我认为,表情是心情的反映,动作是表达的延伸。淦我写不清关于心情 => 表达 => 动作,所以 动作 = f(心情) 的观点

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/363328
推荐阅读
相关标签