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-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 サーバー(ギルドともいいます)において、そのサーバーのオーナーであるユーザー(ギルドマスター)がボイスチャンネルに接続したとき、同じボイスチャンネルに同時に接続します。接続中は、そのボイスチャンネルと 同名のテキストチャンネル に投稿されたメッセージをボイスチャンネルにて読み上げます。サーバーのオーナーがボイスチャンネルから切断すると読み上げ動作を停止し、同時にボイスチャンネルからも切断します。
現時点ではこれだけです。
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.4.0.post1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8badb8b771a8d7e9152a19557d0b2ef9d22c8e8f5e307fed5fdfff2cde88508e |
|
MD5 | f627cfb2a0a95c4ac35809a4305be9ff |
|
BLAKE2b-256 | 646ff9362c01a5579ca8d5595fda70fa1a078ef334939544ba7ea41043327d69 |