LinuxでDiscordで動くVoiceVoxを動かす

天才lenlinoさん Discordで動く読み上げbotを作って公開されています。

動かしたのでメモしました


https://lenlino.com/?p=2447

python 3.11をインストール

こちらのGitからvoicevox_engineをダウンロードする 0.16.0は動かなかったので0.15.0にした

https://github.com/VOICEVOX/voicevox_engine/archive/refs/tags/0.15.1.zip

https://github.com/VOICEVOX/voicevox/releases/download/0.13.4/voicevox-linux-cpu-0.13.4.tar.gz

tar -zxvf voicevox-linux-cpu-0.13.4.tar.gz

で解凍

cd voicevox_engine


python3 -m pip install -r requirements.txt

python3 run.py –voicevox_dir=”/home/VOICEVOX”

https://github.com/lenlino/DiscordVoiceVox.git

cd DiscordVoiceVox

python3 -m pip install -r requirements.txt

pip install py-cord==2.5.0

pip uninstall romajitable

pip install git+https://github.com/lenlino/romajitable

main.py 1274行目のguild.voice_client.playingをguild.voice_client.is_playing()

963行目ぐらいのif counter > 200: でtempの保存数を設定

ffmpeg

https://ffmpeg.org/

ダウンロード> Linux > linux static build

amd64

curl -O https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz

unxz -c ffmpeg-release-amd64-static.tar.xz | tar xvf –

export PATH=/home/ffmpeg-6.1-amd64-static:$PATH

voicevox.service

[Unit]
Description=VoiceVox

[Service]
Type=simple
User=root
ExecStart=python3.11 run.py --voicevox_dir=/home/VOICEVOX
WorkingDirectory=/home/voicevox_engine

[Install]
WantedBy=multi-user.target

discordvoicevox.service

[Unit]
Description=Discord VoiceVox
After=voicevox.service

[Service]
Type=simple
User=root
ExecStart=python3 main.py
WorkingDirectory=/home/DiscordVoiceVox
Environment=PATH=/home/ffmpeg-6.1-amd64-static:/root/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
[Install]
WantedBy=multi-user.target

Discordアプリ作成

https://discord.com/developers/applications

Bot > Reset Tokenを押して トークンを取得する1度しかとれないので大事に保存する

Privileged Gateway Intents の3つにチェックを入れる

OAuth2のページでBOT招待のURLを作る
パーミッションは70257664