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-mshibata
...
(.venv) ~/app/jtalkbot % jtalkbot --version
jtalkbot 0.1.0
使いかた
設定ファイルの準備
はじめに jtalkbot-config.json ファイルを編集します。ライブラリ内にサンプルファイルが jtalkbot-config-sample.json として入っていますので、これをコピー、リネームして使ってください。
jtalk-config.json ファイルの例
{
"token": "__ENTER_YOUR_TOKEN_HERE__",
"libopus": "/opt/local/lib/libopus.dylib",
"open_jtalk": "/opt/local/bin/open_jtalk",
"open_jtalk/x": "/opt/local/lib/open_jtalk/dic",
"open_jtalk/m": "/opt/local/lib/open_jtalk/voice/mei/mei_normal.htsvoice",
"voice/hello": "みなさんこんにちは。",
"text/start": "読み上げを始めます。",
"text/end": "読み上げを終わります。"
}
token
文字列型。Discord によって発行されたボットアカウントのトークンを記述します。
libopus
文字列型。Opus ライブラリの場所をフルパスで記述します。ファイル名は macOS では libopus.dylib、Linux では libopus.so、Windows では libopus.dll などになっていることが多いでしょう。
open_jtalk
文字列型。open_jtalk コマンドの場所をフルパスで記述します。あらかじめコマンドを実行してみて適切に動作することを確認しておいてください。
open_jtalk/x
文字列型。open_jtalk コマンドの -x オプションに渡す辞書ディレクトリの場所をフルパスで記述します。
open_jtalk/m
文字列型。open_jtalk コマンドの -m オプションに渡す HTS 音声ファイルの場所をフルパスで記述します。
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
2020-08-25 19:25:57 INFO Opus library is loaded.
2020-08-25 19:26:00 INFO Logged in as MyBot#0123.
ボットを停止するときは Ctrl+C を押します。
ボットの動作
ボットアカウントが招待されている Discord サーバー(ギルドともいいます)において、そのサーバーのオーナーであるユーザー(ギルドマスター)がボイスチャンネルに接続したとき、同じボイスチャンネルに同時に接続します。接続中は、そのボイスチャンネルと 同名のテキストチャンネル に投稿されたメッセージをボイスチャンネルにて読み上げます。サーバーのオーナーがボイスチャンネルから切断すると読み上げ動作を停止し、同時にボイスチャンネルからも切断します。
現時点ではこれだけです。
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jtalkbot-0.4.3.tar.gz.
File metadata
- Download URL: jtalkbot-0.4.3.tar.gz
- Upload date:
- Size: 11.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/1.12.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8731e0e13fa1acea01d5a52d1b6d3e8206695cd66d4b57eba433b2c52de5ad7c
|
|
| MD5 |
36710b43565af62cada0666bdd018422
|
|
| BLAKE2b-256 |
3ac63e671843c11958e2e483d8f6544db0d8711a189a34d2b0dfba9f3d88aa5e
|
File details
Details for the file jtalkbot-0.4.3-py3-none-any.whl.
File metadata
- Download URL: jtalkbot-0.4.3-py3-none-any.whl
- Upload date:
- Size: 10.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/1.12.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0dca8b758cfeccfde24dc780e40578011b5ea1bd37b535abacf575136fc2e413
|
|
| MD5 |
8b34efd6eb96566748de2039a0f5a693
|
|
| BLAKE2b-256 |
13071ea873aac787411cec040484f8014f1af56863eece4aaae5b2e0ecce1172
|