奇想斋

关于 文章 友链 订阅

开发弹幕朗读器

2021-10-19

最近有成为透明无声系vtuber的打算,为了增加娱乐效果,搞了一个弹幕朗读器。因为不想花太多时间,所以就选了Python,准备快速解决。

如何朗读

我直接用了Windows操作系统内置的语音合成功能:SpVoice。用PyWin32可以调用该接口。

首先需要安装PyWin32:

pip install pywin32

示例代码:

import win32com.client

speaker = win32com.client.Dispatch("SAPI.SpVoice")
speaker.Speak("你好,世界!")

如何获取弹幕

Owncast

我使用的第一个直播平台是Owncast,是一个开源、可以自己搭建的直播工具。Owncast内置了聊天室功能,获取其聊天记录有两种接口:

其一是webhook,可以添加一个钩子,让Owncast每次收到新消息时把消息推送到指定接口(文档)。但是该方法需要有公网IP。这里,我的弹幕朗读器运行在本地,还需要内网穿透,比较麻烦。

其二是拉取,利用Owncast提供的一个GET接口可以获取最近的弹幕列表。我们可以循环调用该接口,然后记录一下当前的时间戳,每次发现有新弹幕就朗读出来。使用该接口需要access token,可以在Owncast的管理后台获取。其URL是:

http://your.owncast.site/admin/access-tokens/

最后的代码见Gist

Twitch

Twitch的聊天系统比较有意思,佢等在提供聊天机器人接口的时候用了IRC协议而非Web协议。所以用Python上的一些IRC开源库即可。Twitch官方就提供了一个Python2实现的机器人的例子。稍微改一改即可使用在Python3上。

用到了一个Python的IRC库

pip install irc

最后的代码见Gist


Powered by Pandoc ©️ 2017-2021 奈卜拉
欢迎致信 nebula_moe@outlook.com