home · archive · links · projects

開發彈幕朗讀器

最近有成爲透明無聲系vTuber的打算,爲了增加娛樂效果,搞了一個彈幕朗讀器。因爲不想花太多時間,所以就選了Python,準備快速解決。

如何朗讀

我直接用了Windows操作系統內置的語音合成功能:SpVoice。用PyWin32可以調用該接口。

首先需要安裝PyWin32:

pip3 install pywin32

示例代碼:

import win32com.client

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

如何獲取彈幕

Twitch的聊天系統比較有意思,他們在提供聊天機器人接口的竟然用的是IRC接口。所以,你甚至可以用nc命令上去直接手工操作:

[nebulabbadub@arch ~]$ nc irc.chat.twitch.tv 6667
< PASS oauth:<Twitch OAuth token>
< NICK <user>
> :tmi.twitch.tv 001 <user> :Welcome, GLHF!
> :tmi.twitch.tv 002 <user> :Your host is tmi.twitch.tv
> :tmi.twitch.tv 003 <user> :This server is rather new
> :tmi.twitch.tv 004 <user> :-
> :tmi.twitch.tv 375 <user> :-
> :tmi.twitch.tv 372 <user> :You are in a maze of twisty passages, all alike.
> :tmi.twitch.tv 376 <user> :>
JOIN #channel

注意登錄之後的提示語:

You are in a maze of twitsy passages,all alike.

這其實是一個彩蛋,來自70年代PDP-10計算機上的冒險遊戲:Colossal Cave Adventure,簡稱Adventure。這是世界上第一部交互式小說,也是第一部冒險遊戲和文字冒險遊戲。

這款遊戲後來在Atari遊戲機上還有一個改編的圖形版:Adventure,被認爲是歷史上第一個帶彩蛋的遊戲(就是《頭號玩家》裏面的那個)。

因爲IRC是一個非常古老而成熟的文本協議,所以開發的時候只需要用Python上的一些IRC開源庫即可。Twitch官方就提供了一個Python2實現的機器人的例子。稍微改一改即可使用在Python3上。

裏面用到了一個Python的IRC庫,需要提前安裝上:

pip3 install irc

最後的代碼在這裏


© Licensed under CC BY-NC-SA 4.0 if not specified otherwise.
Email: dzshy [at] outlook [dot] com