Discordのテキストチャット読み上げbotの作り方を紹介!

Discordでテキストチャット読み上げをしてくれる読み上げbotは様々存在しますが、作り方がわかれば自分で作ってみたいという人もいるでしょう。そんな人に向けて、Discordのテキストチャット読み上げbotの作り方を紹介します。

Discordのテキストチャット読み上げbotの作り方を紹介!のイメージ

目次

  1. 1Discordのテキストチャット読み上げbotの作り方
  2. 事前準備
  3. プログラミング言語の選定
  4. Bot Token の設定
  5. Botをサーバーに招待
  6. Pythonの導入
  7. 音声合成Open JTalkの導入
  8. ffmpegのインストール
  9. Botのコーディング作業
  10. 使い方
  11. 最後に

Discordのテキストチャット読み上げbotの作り方

Discordのテキスト読み上げbotはプログラミング言語の知識さえあれば可能です。この記事ではその作り方を紹介します。

事前準備

Discordのテキストチャット読み上げbotを作成するための事前準備をしましょう。

Discordの登録

Discordのアカウントを未所持の場合は作成する

Discordのアカウントを所持していない場合は作成してください。Webページ・アプリどちらからでも可能です。

Discord | Your Place to Talk and Hang Out

プログラミング言語の選定

Discordのテキストチャット読み上げbotを作成する際に利用するプログラミング言語の選定をしましょう。

discord.py

Discordのbotは様々なプログラミング言語で開発ができますが、今回は「discord.py」(Python)を利用します。

Botアカウントの作成

「New Application」をクリック

下記リンク先からbotのアカウントを作成します。右上の「New Application」をクリックしましょう。

Discord Developer Portal — API Docs for Bots and Developers
作成するbotの名前を入力

作成するbotの名前を入力します。

入力完了後「Create」をクリック

入力が完了したら「Create」をクリックします。

アイコン部分をクリックしてbotのアイコンを変更

botのアイコンを設定してください。

アイコン画像を選択したら「Save Change」をクリック

「Save Change」ボタンで保存します。

「Bot」メニューをクリック

次に「Bot」タブをクリックしましょう。

「Add Bot」をクリック

「Add Bot」をクリックします。

「Yes,do it!」をクリックして作成完了

「Yes,do it!」をクリックすれば、bot用アカウントの作成が完了します。

Bot Token の設定

「Click to Reveal Token」をクリック

TOKEN部分にある「Click to Reveal Token」をクリックしましょう。

botを運用するコードで利用するTOKEN

ここに記載されている英数字がTokeのコードです。これは後で利用します。

Botをサーバーに招待

「Oauth2」に切り替え

作成したbot用アカウントをサーバーに招待/追加します。「Oauth2」タブに切り替えましょう。

「bot」にチェックを入れる

「bot」にチェックを入れます。

必要に応じてbotに権限を付与する

必要に応じて下側にある、botに付与する権限も設定しておきましょう。

URLをコピーする

生成されたURLをコピーします。

botを追加したいサーバーを選択する

新しいタブでコピーしたURLを開くとサーバーへの招待画面になります。招待したいサーバーを選択してください。

「認証」をクリックする

「認証」をクリックしましょう。

「私は人間です」にチェックを入れる

「私は人間です」にチェックを入れます。

botのサーバー認証完了

「認証しました」と表示されればOKです。

Pythonの導入

まずはPythonを導入しましょう。下記サイトからPython3をインストールします。

Welcome to Python.org
「Python 3.9.1」をクリックしてインストーラーをダウンロード

「Download」にカーソルを合わせ「Python 3.9.1」をクリックします。インストーラーを任意の場所に保存しましょう。

「Add Python 3.9 to PATH」にチェックを入れる

ダウンロードしたインストーラーを起動し、「Add Python 3.9 to PATH」にチェックを入れます。

「Install Now」をクリックしてPythonのインストール開始

「Install Now」をクリックしてインストールを実行してください。ユーザーアカウント制御画面が表示されたら「はい」を押せばOKです。

Pythonのインストール完了

インストールが完了したら上記のようになります。「Close」で閉じて大丈夫です。

Windows10の場合はスクリプトの実行を許可しておく

Windows10の場合はWindows PowerShellを開いて次のコマンドを一度だけ実行し、スクリプトの実行を許可しましょう。

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

discord.pyを利用するために必要なライブラリをインストールする

discord.pyを利用するために必要なライブラリのインストールもコマンドプロンプトで実行しておいてください(Windowsの場合のコード)。

py -3 -m pip install -U discord.py

音声合成Open JTalkの導入

Microsoft Visual Studio2019のCommunityをインストール

まずはMicrosoft Visual Studioを導入します。Communityエディションのもので構いません。

Visual Studio IDE、コード エディター、Azure DevOps、App Center - Visual Studio
「C++によるデスクトップ開発」にチェックを入れてインストールする

上記のインストール画面では「C++によるデスクトップ開発」をチェックして、「インストール」をクリックしてください。

Cドライブ直下に任意の名前でフォルダを作成(例としてopenjtalk)

Cドライブの直下に「openjtalk」など任意の名前でフォルダ作成します。

「hts_engine_API-1.10.tar.gz」をダウンロードして解凍(2段階)する

次にHTSエンジンをダウンロードします。名前に「API」と記載のあるファイルをダウンロードして、7-Zipなどで2段階に分けて解凍します。

hts_engine download | SourceForge.net
解凍したHTSエンジンのAPIのフォルダを 作成した任意のフォルダ(c:\openjtalk)へ解凍後のフォルダごと移動

解凍したら先程作成したフォルダ(openjtalk)に解凍後のフォルダごと移動してください。

「Path」を「編集」する

環境変数(コントロールパネル→システムとセキュリティ→システム→システムの詳細設定→環境変数)でnmake.exeのパスを通します。

既存の環境変数の後ろに「;」をつけてパスを追加

Pathの環境変数の「編集」を押し、変数値の後ろに追加(Win8.1以前は「;」で区切る)します。

HTSエンジンのAPIをビルドする

次のコマンドをコマンドプロンプトで走らせます(最後の行はエンターで実行)。赤字部分は適宜変更してください。

call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
cd c:\openjtalk\hts_engine_API-1.10
nmake -f Makefile.mak
nmake -f Makefile.mak install

「c:\hts_engine_API」が作成されたことを確認

「c:\hts_engine_API」フォルダとファイルが作成されたことを確認してください。完了してもコマンドプロンプトはそのままにしておきます。

「open_jtalk-1.11.tar.gz」をダウンロードして解凍(2段階)する

Open JTalkを導入します。「open_jtalk-1.11.tar.gz」をダウンロードして7-Zipなどで2段階に分けて解凍します。

Open JTalk download | SourceForge.net
解凍した「open_jtalk-1.11」フォルダを作成した任意のフォルダ(c:\openjtalk)へ解凍後のフォルダごと移動

解凍した「open_jtalk-1.11」フォルダを作成した任意のフォルダ(C:\openjtalk)へ移動します。

Open JTalkをビルドする

先程の続きでコマンドを走らせます(最後の行はエンターで実行)。赤字部分は適宜変更してください。

cd c:\openjtalk\open_jtalk-1.11
nmake -f Makefile.mak
nmake -f Makefile.mak install

エラーが表示されるが問題ない

コマンド上でエラーが表示されますが問題ありません。

「C:/open_jtalk/bin/open_jtalk.exe」が作成されていればOK

「C:/open_jtalk/bin/open_jtalk.exe」が作成されているか確認しましょう。

「open_jtalk_dic_shift_jis-1.11.tar.gz」をダウンロードして解凍(2段階)する

また、「open_jtalk_dic_shift_jis-1.11.tar.gz」をダウンロードします。

Open JTalk download | SourceForge.net
解凍後のフォルダ名を「dic」へ変更する

7-Zipなどで2段階に分けて解凍し、解凍後のフォルダを「dic」へ変更します。

「dic」ファイルを「c:\open_jtalk\bin」へ移動

「c:\open_jtalk\bin」の中へ移動してください。

ボイスデータをダウンロードして解凍(2段階)する

ボイスデータは下記サイトの「~m001-1.05.tar.gz」をダウンロードします。

Open JTalk - Browse /HTS voice/hts_voice_nitech_jp_atr503_m001-1.05 at SourceForge.net
ボイスデータのファイルを「c:\open_jtalk\bin\」へコピーする

7-Zipなどで2段階で解凍し、「~.htsvoice」を「c:\open_jtalk\bin\」へコピーします。

テストとして読み上げたい文章を入力して「input.txt」として保存

音声テストをしましょう。メモ帳などで「input.txt」の名前で読み上げたい内容を簡単に入力して作成します。

コマンドを実行して音声ファイルを作成するテスト

下記コマンドを入力してください。

cd C:/open_jtalk/bin
open_jtalk.exe -m nitech_jp_atr503_m001.htsvoice -x dic -ow output.wav input.txt

input.txtに入力した内容が再生されれば成功

「output.wav」が生成され、「input.txt」の内容が再生されれば成功です。

ffmpegのインストール

Windowsマークをクリック

次にffmpegのインストールをします。下記サイトへアクセスしてWindowsマークをクリックしましょう。

ffmpeg ダウンロードページ
「Windows builds from gyan.dev」を利用する

「Windows builds from gyan.dev」を利用します。

「ffmpeg-release-full.7z」をダウンロード

「ffmpeg-release-full.7z」をダウンロードします。

解凍したフォルダを「ffmpeg」に変更

7-Zipなどで解凍し、フォルダ名を「ffmpeg」に変更します。

ffmpegフォルダを「c:\open_jtalk\bin」へ保存

「ffmpeg」フォルダを「c:\open_jtalk\bin」へ保存します。

「c:\open_jtalk\bin\ffmpeg\bin」をPathの環境変数に追加

先程環境変数を変更した場合同様に、「c:\open_jtalk\bin\ffmpeg\bin」をPathの環境変数として(Win8.1以前は「;」で区切り)追加してください。

「ffmpeg -version」コマンドが通るかどうかで動作確認

ffmpegが問題なく実行できるかどうかは「ffmpeg -version」コマンドが通るかどうかで確認します。

Botのコーディング作業

「read_bot.py」と「voice_generator.py」を「c:\open_jtalk\bin」へ保存する

Discordの読み上げbotはコードを実行して利用します。下記のサイトのコード(2種類)をコピペしてメモ帳で作成し、同じファイル名で「UTF-8」で「c:\open_jtalk\bin」へ保存しましょう。

Discordのチャットを読み上げるbotの作成
「あなたのTOKEN」部分に「Bot Tokenの設定」のTokenを貼り付け

作成した「read_bot.py」の一番下の「あなたのTOKEN」部分には「Bot Tokenの設定」のTokenを貼り付けて保存します。

コードの編集は可能ですが、プログラミング言語の知識がある人向けです。そちらの知識がなくここで手詰まりになった場合、まずは言語の知識をつけることをおすすめします。

使い方

「read_bot.py」ファイルをドラッグアンドドロップ

「read_bot.py」ファイルをコマンドプロンプトにドラッグアンドドロップします。

エンターキーで実行

エンターキーで実行しましょう。

botがログインする

読み上げbotがDiscordのサーバーにログインします。

ボイスチャンネルに参加して「.join」を送信

適当なボイスチャンネルに参加し、テキストチャットで「.join」と送信しbotをボイスチャットに参加させます。

読み上げて欲しい内容を送信

botに読み上げて欲しい内容をテキストチャットに入力すれば読み上げてくれます。

botをチャットから退室させる場合のコマンド

botを退室させる際は「.bye」とテキストチャットで送信してください。

最後に

botの作り方は、プログラミング言語の知識ある人には難しいものではないものの、ない場合はコーディングなどコピペでもエラーが生じた場合などきつい部分があります。ある程度の知識がある場合に作成してみてください。

Thumb「Discord」のおすすめBot10選!
この記事では、Discord(ディスコード)の2019年おすすめBotを10個紹介します。紹...
Thumb「Rythm bot」のコマンドの使い方をくわしく解説!
Rythm botのコマンドの使い方や操作をご存知ですか?そもそもコマンドとはという方や招待...
Thumb「Discord 」音楽Botを2つ使う方法!「Rythm2」の導入方法を解説!
今回は「Discord 」音楽botを2つ使う方法からRythm/Rythm2の導入方法につ...

関連するまとめ

Original
この記事のライター
八千草 蛍
分かりやすく気軽に読める記事を書いてまいりたいと思います。よろしくお願いいたします。