奇想齋

歸檔 鏈接

開發彈幕朗讀器

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-2022 奈卜拉