DiscordのTTS BOTをつくってもらった

こんにちは、かず猫です。

Discordで通話するときに、チャット勢の発言を全然拾えなかったので、TTS(Text to Speech)Botを導入しよう。と思ったら、思ったような挙動のものがなかったので、いろいろ調べながら作ってみた。といっても、検索して出てきたものをほぼそのまんま使ってるだけ。

その後、最低限の機能しか自分では作れなかったので、ジャンドさんに作ってもらった…というか、ほとんど作り直してくれた。ありがたい。

今回の記事は完全に自分用の日記です。自分のサーバでカスタムできるTTS BOTを導入したい場合は、以下の記事が参考になりそうです。

お手軽に導入したい場合、一般公開してある、招待するだけのBotを使うのがいいかもしれません。

どうしてTTS Botが必要か

親フラだったり電車の中だったり、喋れない状況の人が通話に参加してくることがそれなりにあるんですけど、TTS Bot導入前は通話にいる人がチャットを見るしかなかったんですよね。

ゲーム中だったりするとチャットを常に見るのは無理だし、そもそもチャットが来たときに気づかないことも結構あります。

そんなときに便利なんですよこの子は。

自作段階

MusicBotのときは英語で調べると大量に情報が出てきたから困らなかったけど、今回は日本語を読めるTTSじゃないと意味が無いので、地味に情報が少なかった(英語のTTSは結構ある)。

使う状況を考えて、最低限ほしい条件が、

  • 日本語対応
  • 特定テキストチャンネルのみコマンド無しで読み上げ
  • 24時間可動のために、VPS上で動く

自分でこの部分だけ作ってみました。というか、基本的には以下の記事からそのまんま。特定チャンネルのみ読み上げるようにするようにちょっと付け足したりしただけ。

nWorld: Discord用に簡単なTTS Botを使ってみた。

 

Pythonの知識はゼロだったので、if文の書き方からしらべたりした。Pythonに触るのはほぼ初めてで、Pythonってすげー!ってなった。インデントとかでif文の構造が決定するのには本当にびっくりした。

ジャンドさんに投げた

上記のBotを使っていると、問題発生。まず、二人が同時にテキストを入力すると、同時に2つ読み上げて耳がやられる。コレを改良しようと思ったんだけど、なんせプログラミングができない。

そこでジャンドさんに相談したら、サクッと解決してくれた。あなたが神か。このときはそのあたりの処理だけ改良してもらった。

そしてまた数日経ったある日、気まぐれに

ってつぶやいたんだ。単純にほしい機能があったんだけど、自分でやるには時間が掛かりそうだったからね。そしたら、

速攻で反応してくれた。やっぱり神だった。んで、どういうのが作りたいのか言って、数日でできたのがこちら。てか早くない?

Japanese TTS Bot – かず猫のさいと

作ってもらったのは、

  • VCへの接続/切断のコマンド
  • 自動で部屋を移動
  • callmeで自分の呼び方を変える ←頼んでないのにつけてくれた。すき。
  • TTS用のチャット欄をクリーニング

ジャンドさんありがとう。さっき、お礼にアマギフ投げつけてきました。

毎日大活躍してくれてます。

 

2018/11/07 追記:

このページにGoogle検索からたどり着く人がそれなりにいるようですが、実際に作る必要があるケースはかなり少ないように思います。

それでも、細かくカスタマイズしたい場合はPythonの知識さえあれば、大抵のことはできそうです。

時間があれば、最低限のBotをCentOS7で構築する手順について書こうと思います。

2019/2/22 追記:

相変わらず検索での順位が高いようで、その上mastodonで導入方法を聞かれたりもしたので、配布を具体的に考えています。

現在、TTS BOTの根幹のソースコードを書いてくれたジャンドさんから配布OKとの許可をもらったため、Japanese TTS BOTの配布の準備中です。

それに先立って、まずはOpen JTalkのインストール方法についての記事を書いています。DiscordのBotアカウントの記事等も書いて、最終的にJapanese TTS Botくんのインストール方法まで辿りつきたいです。

かず猫

インターネット初心者です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください