A discord bot talking Japanese.
Project description
jtalkbot
A Discord bot talking Japanese
Discord のテキストチャンネルに投稿されたメッセージを同名のボイスチャンネルで読み上げるボットプログラムです。
動作環境
以下のプログラム/ライブラリが正常に動作しているシステムが必要です。
- Python 3.8 以降
- Open JTalk(
open_jtalk
コマンド) - Opus ライブラリ(discord.py の音声機能に必要)
それぞれの導入方法はお使いのシステムによって違いますので各自でお調べください。私は macOS で MacPorts を使っています。
導入
pip install jtalkbot
します。
依存関係が設定されているのでプログラムの実行に必要なモジュールはあわせて自動的にインストールされます。
インストールが終わると、jtalkbot
コマンドが使えるようになっています。
例
~/app % mkdir jtalkbot
~/app % cd jtalkbot
~/app/jtalkbot % python3 -m venv .venv
~/app/jtalkbot % source .venv/bin/activate
(.venv) ~/app/jtalkbot % pip install jtalkbot
...
(.venv) ~/app/jtalkbot % jtalkbot --version
jtalkbot X.Y.Z
使いかた
設定ファイルの準備
はじめに jtalkbot-config.json
ファイルを編集します。ライブラリ内にサンプルファイルが jtalkbot-config-sample.json
として入っていますので、これをコピー、リネームして使ってください。
NOTE: バージョン 0.5.1 で設定ファイルの項目名を変更しました。
NOTE: バージョン 0.5.0 で設定ファイルの項目名を変更しました。
jtalk-config.json
ファイルの例
{
"token": "__ENTER_YOUR_TOKEN_HERE__",
"open_jtalk_flags": "-x /opt/local/lib/open_jtalk/dic -m /opt/local/lib/open_jtalk/voice/mei/mei_normal.htsvoice",
"voice_hello": "みなさんこんにちは。",
"text_start": "読み上げを始めます。",
"text_end": "読み上げを終わります。"
}
token
文字列型。Discord によって発行されたボットアカウントのトークンを記述します。
open_jtalk_flags
文字列型。open_jtalk
コマンドに渡すコマンドラインオブションを記述します。読み上げに使用されます。
voice_hello
文字列型。ボットが Discord の音声チャンネルに接続したとき最初に発声するあいさつを記述します。
text_start
文字列型。ボットがテキストチャンネルの投稿の読み上げを開始するときにそのテキストチャンネルに投稿するメッセージを記述します。
text_end
文字列型。ボットがテキストチャンネルの投稿の読み上げを停止するときにそのテキストチャンネルに投稿するメッセージを記述します。
ボットの実行
パッケージと一緒にインストールされる jtalkbot
コマンドを実行します。このとき次の順で設定ファイルを探し、最初に見つかったものを読みこみます。
./jtalkbot-config.json
~/jtalkbot-config.json
~/.local/jtalkbot-config.json
{パッケージのインストール先ディレクトリ}/jtalkbot-config.json
- 環境変数
JTALKBOT_CONFIG
で指定されたファイル
起動するとログを表示しながら待機し続けます。
~/app/jtalkbot % jtalkbot
INFO:jtalkbot.__main__:config file: /Users/xxxx/jtalkbot-config.json
INFO:jtalkbot.__main__:Opus library is loaded.
INFO:jtalkbot.__main__:Logged in as MyBot#nnnn.
ボットを停止するときは Ctrl+C
を押します。
ボットの動作
ボットアカウントが招待されている Discord サーバー(ギルドともいいます)において、そのサーバーのオーナーであるユーザー(ギルドマスター)がボイスチャンネルに接続したとき、同じボイスチャンネルに同時に接続します。接続中は、そのボイスチャンネルと 同名のテキストチャンネル に投稿されたメッセージをボイスチャンネルにて読み上げます。サーバーのオーナーがボイスチャンネルから切断すると読み上げ動作を停止し、同時にボイスチャンネルからも切断します。
現時点ではこれだけです。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for jtalkbot-0.6.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 44c199cad68267e9802459e462580c177b853a9ae992594c41380fa302a31f46 |
|
MD5 | 445ba89132ca0c07fe4cc6f7bf250831 |
|
BLAKE2b-256 | 4f8aa699a131de53de1ea0c9d67d129eb121ff8db91c1e3661ae2e32c7f08cb9 |