Voicevoxを利用した小規模向けのシンプルなDiscord読み上げボット
このプロジェクトは日本語のみ対応します。他の言語(英語を含め)はサポート範囲外です。
This project is intended only for Japanese TTS. Other languages, including English, are NOT supported.
voicevox-tts-discord のフォークです
This is a fork of voice-tts-discord
元のプロジェクトと比べてkagome front、remote replaceとGoを使用せず、セットアップがよりシンプルになっています。
- 指定のチャンネルの読み上げ
- ボイチャが始まったときの通知と自動入室
- 0.2.2からスパム防止のため、1分以内のセッションでは通知を行わなくなり、その後の1分間に始まったセッションの入室通知も行わなくなります。
- 入室、退室の時IDの読み上げ
- ユーザー辞書、グローバル辞書
Refactor
元のプロジェクトから引き継いたコードはすべてBSD-3-Clause Licenseです。
(説明がない限りでは、すべてBSD-3-Clause License (c) Notoiroです)
RuriSapphireによって書かれたコードはすべてMIT License (c) RuriSapphireです。
(MITライセンスの場合、ファイル先頭部分に説明があります)
- Git
- Node.js v20以上 (aptでインストールするとv18がインストールされることがありますのでご注意ください)
- Voicevox Engine
- Discord APIのトークン
- FFmpeg
-
Discordのトークンを取得します
- Discord Developer Portal
New Application
からアプリケーションを作りますAPPLICATION ID
をコピーしますhttps://discord.com/oauth2/authorize?client_id=APPLICATIONID&scope=bot&permissions=3148800
のAPPLICATIONID
をコピーしたIDに置き換え、招待用のURLになります
Permissions について
この bot は、以下の Permissions を使用します
OAuth2: bot
Bot Permissions: Read Messages / View Channels, Send Messages, Connect, Speak
Bot
→Add Bot
Build-A-Bot
のReset Token
を押してトークンを生成します- その下の
MESSAGE CONTENT INTENT
を有効にします
読み上げのため、
MESSAGE CONTENT INTENT
は必須です -
Voicevox Engineを入れます
- Voicevoxの公式から自分の環境に合ったやつをダウンロードしてくる(Engineのリポジトリが最新じゃないのでフル版のEngine部分だけ使う)
- vv-engineフォルダの中の
run
を実行する(違う名前になる場合があります)--port
でポート指定してください(わからない場合は--port 2970
)。同じコンソールでVoicevoxとdaizu-ttsを動かしたいときには、最後に&をつけます。 例: VOICEVOXフォルダで./vv-engine/run --port 2970 &
-
環境を整えます
- 好きな方法でNode.jsを入れます(Node.js v20以上が必要です)
- 好きな方法でGitを入れます
- 好きな方法でFFmpegを入れます(Linuxならパッケージマネージャーから入れるといい)
-
起動します
git clone https://github.com/TamakiRuri/daizu-tts.git; cd daizu-tts
cp sample.json config.json
- config.jsonを編集します
VOICEVOX_ENGINE
は2970を自分の指定したポートに合わせますTMP_DIR
は音声のキャッシュディレクトリ、頻繁に書き換わるのでシステムのメモリ上で保存するキャッシュメモリが好ましいですTOKEN
は上のBotトークンです。忘れたらもう一回Reset Tokenで再生成できます。PREFIX
は読み上げない文章につけるプリフィックスSERVER_DIR
はサーバーの設定ファイルが保存されるディレクトリです。そのまま使うならservers
ってフォルダを作っておいたほうがいいでしょう。OPUS_CONVERT
はOpus(オープンソースな音声フォーマット)(BSD-3License)への変換機能の設定です。bitrate
はビットレート、threads
はスレッド数です。DICT_DIR
はグローバル辞書を保存するディレクトリです。その中の辞書を編集することでグローバル辞書を追加できます。
npm install
npm run production
- 招待用のURLでサーバーへ招待します。
- SystemdのServiceのサンプルは/servicesに保存されています。
/start //初めて利用する時のチュートリアル
/auto //自動接続・ボイスチャット検知有効/無効
/setchannel //ボイスチャット検知の通知チャンネルを現在のチャンネルに設定
/connect //ボイスチャットに接続
/disconnect //ボイスチャットから切断
/setvoice //話者を変更(選択肢の上限が25のため、4つに分けられています)
/help //ヘルプ
もし問題がありましたら、issueで書いてくれると助かります。