Speech-to-Textを利用してゲーム実況中(スプラトゥーン2)の暴言を検出する。

一言でいうと、暴言をカウントして配信中に表示するための装置です。

概要

 自分もスプラトゥーン2で態度が悪くなる自覚があるので配信中に口が悪くなるのを技術的に検知してみようと思う。ここではGoogle Speech-to-Textを利用して、ゲーム実況中の発言をテキスト化し、特定のワードを検知した際にそれを通知する仕組みの作成について解説する。

利用技術

ソースコードはここ https://github.com/mogeta/calm_down

* Go (WebsocketとHTMLのサーブ)
* Python3
* OBS
* 各種配信サイト

動作確認はWindows,Mac両方で確認済み

構成図




解説

 まずは自分のマイクからAPIへ音声を流し込みたいのでサンプルを利用する。
サンプルの中からPythonをチョイス。理由は一番親しみがあるやつなので。

データの受信、HTMLの表示はGo側で行う。深い理由はないが、一つ一つのコードがやることを簡潔にしつつ、サーバ書くならGoが気楽だったのでという理由。


HTML側は特に解説することがない。普通にWebsocketを受信してデータを表示するだけ。
OBSにはHTMLを表示する機能があるためこちらを利用すれば目的は達成。

実践



課題

  • 舌打ちは認知しない。カウントできたら楽しそう
  • 声の大きさも表示させると良いかも
  • 普通に認知したテキスト表示してるだけでも楽しいので表示させる。
  • データストアを用意してないので用意する。
  • 精度はそれなり。マイク変えたら良くなるかな。
  • 辞書マッチングは適当すぎるのでタイミングを見てちゃんとしたロジックに
というわけで、配信中に使えるおもしろガジェットは何個かアイディアがあるので随時作成していこうと思う。


0 件のコメント :