導入手順
Windows環境を前提にした導入手順です。 Ubuntu Server向けの手順は、今後必要に応じて別ページ化する予定です。
大まかな流れは、AivisSpeechを起動し、Discord Botを作成して、
Pythonファイルと同じフォルダにtoken.txtを置いて起動する形です。
前提条件
- 常用稼働できるPC
- Discordアカウント
- AivisSpeech
- Python
- FFmpeg
低スペックCPUでは音声生成に時間がかかる場合があります。 Ryzen 5 / Ryzen 7、Core i5 / Core i7 などの利用を推奨します。
1. FFmpegをインストール
PowerShellで以下を実行します。
winget install --id=Gyan.FFmpeg -e --location C:\ffmpeg
インストール後、必要に応じてPCを再起動してください。
2. Pythonを用意
通常のPythonインストール、またはポータブルPythonを利用できます。 環境を汚したくない場合はポータブルPythonが便利です。
Pythonを用意した後、Botに必要なパッケージをインストールします。
python -m pip install "discord.py[voice]" soundfile requests
ポータブルPythonを使っている場合は、python.exeがあるフォルダで以下のように実行してください。
./python.exe -m pip install "discord.py[voice]" soundfile requests
3. AivisSpeechをインストール
AivisSpeechをインストールし、起動して画面が表示されれば準備完了です。
AivisSpeech公式サイト: https://aivis-project.com
Pythonコード内のデフォルト話者は、コハク ノーマルを想定しています。 コハクをインストールしていない場合、読み上げに失敗する可能性があります。
コハクモデル: AivisHubモデルページ
AivisSpeechが実行中の場合、以下のURLから利用可能な話者情報を確認できます。
http://127.0.0.1:10101/speakers
4. Discord Botを作成
Discord Developer Portal でBotを作成します。
Discord Developer Portal: https://discord.com/developers/applications
Bot Token
Bot項目内でトークンをリセットし、TOKENを発行します。
発行したTOKENは後でtoken.txtに保存します。
Privileged Gateway Intents
- Presence Intent:OFF
- Server Members Intent:OFF
- Message Content Intent:ON
このBotはメッセージ本文を読み上げるため、Message Content Intent が必要です。
VC人数判定や自動切断がうまく動かない場合のみ、 Server Members Intent をONにして再確認してください。
OAuth2 URL Generator
スコープは以下を選択します。
botapplications.commands
Botの権限は以下を選択します。
- チャンネルを表示
- メッセージを送る
- メッセージ履歴を読む
- 接続
- 発言
- 音声検出を使用
連携タイプはギルドのインストールを選択し、 Generated URL に表示されたURLからDiscordサーバーへBotを招待します。
5. Bot起動前の準備
token.txtファイルを作成します。- 読み上げに使うPythonファイルと同じフォルダに置きます。
token.txt内に、発行したBot Tokenを貼り付けて保存します。- AivisSpeechを起動します。
- 読み上げに使うPythonファイルを起動します。
起動例:
cd "C:\Users\User\Documents\DiscordPython\python-3.11.9-embed-amd64"
./python.exe "C:\Users\User\Documents\DiscordPython\Main\Aivis-DiscordBot-α4.py"
6. Discord側で初期設定
Bot起動後、Discordのスラッシュコマンドで読み上げチャンネルを設定します。
/set_read_channel
読み上げチャンネルを設定していない場合、読み上げは行われません。
その他のコマンドは/helpから確認できます。