このBotには2つのオプション依存があります
- メモリと少しの遅延を代償に、巨大なネット辞書を利用してより自然な読みを提供するKagome front
- 少しの遅延を代償に、英語をカタカナ語に変換してくれる辞書などを利用できるReplace Http
これらの構築には若干の手間がかかるのでこれらを導入するかを予め決めておくことをおすすめします
- 動作確認済のLinuxはUbuntuまたはArch
- GUIは不要
- CPUはCUDAなしならIntel 8世代のi3程度あるといい(マルチエンジンならi5以上推奨)
- メモリはフル機能なら
物理4GB+スワップ6GBぐらいを目安に、それ以外なら以下を参考に- OS本体に500MB~1GB
- Bot本体に100~200MB
- エンジンが1個辺り1.5〜5GB程度
- (オプション)Kagome frontに2.5~3GB
- (オプション)Replace Httpに100~500MB
- ストレージはボイスエンジン抜きで10GBぐらいいると思う
- Arm系CPUは未検証なのでx86_64推奨
- CUDA使うならGPUもあるといい
以下の物を入れる。説明はArchだけど適宜自分のLinuxと読み替えてインストールすること。
- Git
- ffmpeg
- Node.js
- pnpm
Git, ffmpegはバージョンあんまり気にしなくて良いのでパッケージマネージャで。
sudo pacman -S git ffmpegNode.jsはあんまり古いと動かないのでnで入れる。(Archならパッケージマネージャからでもいい。)
paru -S node-n # AURヘルパーならなんでも
sudo n latestNode.js入れたらpnpmを入れる
sudo npm i -g pnpmDiscord Developer PortalにアクセスしてNew Applicationを押す。
名前は適当に。チェックボックスは入れる。
APPLICETION IDをコピーしてメモ帳にでも貼り付けておく。
ついでにアイコンとか名前とかいい感じに設定する。
左のBotを押してBotのタブを開く。
Reset Tokenを押してトークンを生成する。生成されたトークンをコピーしてメモ帳にでも貼り付けとく。
下にスクロールしてMESSAGE CONTENT INTENTオンにする。
お好みで公開Botにしたくない場合はPUBLIC BOTをオフにする
各エンジンごとに微妙に差異があります。
VOICEVOX系でAPIに互換性があればこのリストにないエンジンでも利用できます。
このリストにはエンジン部分のみ起動できてLinux上でもちゃんと聞ける品質で生成できるエンジンのみ乗っています。
なお1つ選んでやってもいいし全部やってもいいです。
3.1.a VOICEVOXの場合
VOICEVOXは活発に開発されている音声合成ソフトウェアです。
声いっぱいあるし、容量も軽いのでエンジンに迷ったらこれ!
Click to Expand.
VOICEVOXの公式から環境に合ったものをダウンロードする。 GPUがあるならGPU版、CPUだけならCPU版。
この後の構築の関係でtar.gzバージョンを推奨。
使うのはVOICEVOXフォルダ内のvv-engineフォルダの中身だけなのでそれだけ取り出せばOK。
動くかチェック(Ctrl+Cで終了)
./run3.1.b SHAREVOXの場合
SHAREVOXはVOICEVOX派生の音声合成ソフトウェアです。
体感だけどCPUだとVOICEVOXより合成が速い気がする。
Click to Expand.
Githubリポジトリから環境に合ったものをダウンロードする。
GPUがあるならnvidiaがついてるものを、CPUだけならcpuって付いてるものを。
7z.001が拡張子のファイルを選んでください。
展開したら`run``に実行権限をつけて動くかチェック(Ctrl+Cで終了)
chmod +x run
./run3.1.c COEIROINKの場合
COEIROINKは少し特殊ながら面白い音声合成ソフトウェアです。
デフォルトの声だけでなく、MYCOEIROINKによって他のユーザーが作成した声を追加したり、自分で音声ライブラリになることだってできる!音声ライブラリのサイズがめっちゃでかい!VOICEVOXと似てるようで全然違う個性とロマンの塊みたいなソフトです。v2になってからLinuxで動かすことが難しくなっていた中わざわざWine使って実装したv2 API対応が公式Linuxビルドによって生きることになって私は嬉しいです。
Click to Expand.
公式から環境にあったものをダウンロードする。
展開する。おそらくはengineとspeaker_infoがあればいいのだけど、ちゃんとルートのフォルダがあるので全部展開したほうがわかりやすいと思う。
ダウンロードページの下の方にある音声ダウンロード、またはMYCOEから好きな音声ライブラリをダウンロードしてくる。
公式のガイドの通りに導入する。
動くかチェック(Ctrl+Cで終了)
cd engine
./engine古い情報
COEIROINKにはネイティブで動くv1とWine経由で動くv2があります。
構築こそ大変手間がかかりますが、それでもなおMYCOEによるボイス拡張は魅力です。 そのため自分が叩いたコマンドラインや参考資料などを載せますが、それでも自力での構築が必須であり、あなたが怠惰な初心者の場合は非推奨のボイスエンジンになります。
- Githubからクローンしてくる
- Linuxネイティブで動きます。
- CUDAも動きます。
c-1.6.0+v-0.12.3及びc-1.6.0+v-0.12.3+gpuが動作します。- 依存関係が地獄。
- pyenvにてバージョン3.8.10に固定
- VOICEVOXのオプションが利用できます。
- 声は公式からダウンロードする。
requirements.txtを以下のように書き換え
diff --git a/requirements.txt b/requirements.txt
index 0fa096c..0d59f35 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -40,7 +40,7 @@ pycparser==2.20
# via cffi
pydantic==1.8.2
# via fastapi
-pyopenjtalk @ git+https://github.com/VOICEVOX/pyopenjtalk@a85521a0a0f298f08d9e9b24987b3c77eb4aaff5
+pyopenjtalk @ git+https://github.com/VOICEVOX/pyopenjtalk@master
# via -r requirements.in
python-multipart==0.0.5
# via -r requirements.in
コマンドラインは以下の通り
python -m venv ./.venv
pip install torchaudio
pip install pydantic==1.9.1
pip install espnet resampy typeguard==2.13.3
pip install -r requirements.txt
pip install typing-extensions==4.5.0
pip install numpy==1.23.0実行
python run.py参考資料
- https://zenn.dev/hojicha/articles/a5663b0b3c524a
- https://zenn.dev/sansuke05/articles/ad971fe2607f81
- https://qiita.com/0kq/items/3194f5f3a3fbc541150b
- 公式からダウンロードしてくる
engineフォルダのengine.exeをWine経由で起動すれば動く。- CPU版は普通に動く。GPU版は頑張ればまともに動きそうな雰囲気はあるもののあんまりまともには動かない。
- オプションが不明のためポート指定やコア数指定はできません。
Click to Expand.
巨大なネット辞書であるNeologd辞書を利用してより自然な読みを提供します。
元々は必須の依存で、固有名詞や漢字、更には細かな日本語の表現などの読み品質を圧倒的に改善する、このBot強みでもありますが、今はもうなくても動きます。
sudo pacman -S gogit clone git@github.com:notoiro/kagome_front.git
cd kagome_frontgo build main.go動くかチェック(Ctrl+Cで終了)
./mainClick to Expand.
英語の読み辞書など巨大な辞書向けにNim製の置換ツールを利用できます。 なくても動きます。
paru -S nimgit clone git@github.com:notoiro/replace_http.git
cd replace_httpnimble builddictsという名前のフォルダを作る
mkdir dictsその中に辞書を配置すればロードされます。
動くかチェック(Ctrl+Cで終了)
./ReplaceHttpgit clone git@github.com:notoiro/kana.git
cd kanaテンプレートから設定ファイルを生成するスクリプトがあるのでそれを使って生成します。
node scripts/generate_config.js > config.json5
nano config.json5 # vimでもnvimでもkwriteでもいい各設定の説明は一応ファイル内にあります。わからなければnode scripts/generate_config.js --minで最小構成用の設定を作ることもできます。
pnpm install複数窓のターミナルが必要なのでGUIがない場合はscreenとかbyobuを使って起動してください。
VOICEVOX系なら--port ポート番号でポート指定、--cpu_num_threads コア数でコア数指定、--use_gpuでGPU使用等のオプションが利用できます。
COEIROINKなら50032固定です。
Bot側の設定とか見ながらいい感じに起動します。
./run --port 2970 --cpu_num_threads 2 # VOICEVOX./engine # COEIROINK./main # --port 2971./ReplaceHttp # 2972npm run productionhttps://discord.com/oauth2/authorize?client_id=APPLICATIONID&scope=bot&permissions=2184268864のAPPLICATIONIDを2.1でコピーしたIDに置き換えてからブラウザで開く。
services配下のサービスファイルを自分の環境に合わせて編集する。
サービス用のフォルダを用意
mkdir -p ~/.config/systemd/user編集したやつを~/.config/systemd/userにコピーする。
systemdに認識させる
systemctl --user daemon-reload有効にして起動する
systemctl --user enable kana.service
systemctl --user start kana.service





