見出し画像

配信で喋るDiscord AI Botを開発して導入頂いたので紹介と解説

今回はDiscordサーバーで配信中に複数人の発話を認識して喋るAI Botを開発し、実際にVTuberさん達に活用してもらったので、その仕組み紹介と使い方、システム内容を共有します。

※本記事の公開において「下手くそヴァロ部」の皆様には事前に掲載の許諾を頂いております。

また、本システムは今回のご相談を受けて新規開発した関係上、セットアップ等の実用性は考慮していないため環境構築などは少し手間です。

こちらと似たようなものでプロダクトとしてリリースしている配信パートナーAIシステムもあるため、興味がある方は併せてご確認ください。

※本記事の最終更新:2026/7/31


システムの概要

https://github.com/yuki-dev26/discord-ai-streamer

まず、本システムで出来ることを紹介します。

  • Discordボイスチャンネルにて、各参加者の音声を聞き取って定期的(デフォルト1分間隔)に音声で応答します

定期的な応答
  • Discordボイスチャンネルにて、各参加者の音声を聞き取ってボタンを押下したタイミングにて音声で応答します(ボタンはサーバー内の誰でも押下できるのと、スマホアプリからでも可能)

好きなタイミングで応答

主に2パターンの好きな方式でDiscord AI Botと会話が可能です。

自動で反応して欲しい場合は定期の方で、手動で好きなタイミングで反応して欲しい場合はボタン押下などの使い分けができます。


環境構築

まず本システムを使用するうえで必要な環境構築をまとめておきます(※本記事ではWindows向けの解説ですが、システム自体はMacでも使えます)

  • Node.js(LTS 22.xx.xを推奨)
    また、Microsoft C++ Build Toolsが必要になるかもです

winget install ffmpeg
  • OpenAI API
    →回答生成と音声認識に使います。

  • Aivis Cloud API
    →AIのボイス部分に使います。

今回はVTuber(なるき)さんに協力頂き合成音声モデルを構築しましたが、作成方法に関しては以下の記事を参考にしてください。

※難易度が高い場合は有償で代行も可能です。


Discord Bot作成と招待

まず、前準備としてDiscordで開発者モードをONにします。

開発者モードをON

そして、Discord for DevelopersにアクセスしてBotを作成していきます。

https://discord.com/developers/applications
名前付けて作成

作成したらBotの設定をしていきます。
まずは一般情報でアプリアイコンや概要などを必要に応じて設定しましょう。(身内で使う程度なら名前とアイコンくらいでいいと思います)

名前・アイコンなどを設定

Botを非公開にする(任意)

※Botを公開しない場合に非公開にする設定です。

基本的な情報を設定できたら、インストール設定に遷移して「インストールリンク」の箇所を「オフ」にして保存します。

インストールリンクをオフ

そしてBotページに遷移して「公開Bot」の箇所をオフにします。

公開Botをオフ

Botをサーバーに招待

OAuth2ページに遷移して「スコープ」の箇所に以下のチェックを入れます。

  • bot

  • applications.commands

下にスクロールして「Botの権限」にも同様に以下のチェックを入れます。

  • チャンネルを表示

  • メッセージを送る

  • メッセージ履歴を読む

  • 接続

  • 発言

  • 音声検出を使用

チェックが完了したら下にスクロールして生成されたURLを開きます。

そうするとDiscord側で接続の案内が出るので、入れたいサーバーを選択して追加をします。

Discord側で認証

これでDiscordのサーバーにBotが入ります。

ちなみにさっきチェックした内容はリロードなどすると元に戻りますが、それは正常な挙動なのでご安心ください。


システム共有と使い方

こちらが実際のシステムファイルとなります。

git clone https://github.com/yuki-dev26/discord-ai-streamer.git
https://github.com/yuki-dev26/discord-ai-streamer/releases

ライセンスはMITで公開しています。


.envとキャラ設定の記入

まず、環境変数の主要な設定を説明します。(OpenAI・Aivis CloudのAPIに関しては別記事でも解説しているので省略)

DISCORD_TOKEN:Botページの「トークン」の箇所からリセットして取得できる文字列を入れてください。

DISCORD_TOKEN

DISCORD_CLIENT_ID:OAuth2ページのクライアントIDを入れてください。

DISCORD_CLIENT_ID

.envファイルの設定が完了したらprompts/system.mdにBotのキャラ設定を記入して準備は完了です。


システムの使い方

最初に依存関係を入れるため以下のコマンドを実行してください。

npm install

次にシステムの起動については以下のコマンドとなります。

npm run dev

これでシステムが立ち上がるのでDiscordのボイスチャンネルに入ってBotを呼び出す流れとなります。
※Windows環境の場合はstart.batを用意しているので、それを実行でも同じことが可能です。

仕様としては、

  • 定期的に自動で応答:/join

  • ボタン手動で応答:/talk(ボタンはサーバー内の誰でも押下できるのと、スマホアプリからでも可能です)

となり、このコマンドをチャンネルで送信するとBotがボイスチャンネルに入室します。

入室コマンドによって仕様が異なる

ボイスチャンネルにてBotがいる状態で話すと、

  1. OpenAI Transcriptions API で文字起こし

  2. OpenAI Responses API で返答を生成

  3. Aivis Cloud APIで音声生成して応答

という流れで配信中の発話をもとに応答してくれます。

また、ボイスチャンネルに入っているユーザーごとに発話内容を認識するので今回のような複数人での配信でも有用です。


さいごに

今回はDiscordのAI Botで音声会話ができるシステムを開発して実際にVTuberさんの方々に活用頂きましたがいかがだったでしょうか。

配信でも使えるように「○○分での定期応答」「任意タイミングでのボタン応答」などの工夫ができて新鮮な実装となりました。

また、本システムは単発利用の想定ということもあり今後のメンテ予定は無いですが、ご依頼や致命的なバグ等あればご連絡ください。

ご自身でカスタマイズなどするのもおすすめです!
例えばボイスや音声認識の部分をローカルにしたりなど。

以上、それでは👋

いいなと思ったら応援しよう!