arduino:esp8266iptalk

はじめに

長いことアクセシビリティ研究会及び情報処理学会周りの中継業務を行ってきました。特にアクセシビリティ研究会では字幕 作成が一つの課題になっています。つまり、字幕をどのように中継に入れるか、という課題です。具体的には異なる字幕作業者 のなか、なるべくシンプル(機材が多くない、接続が複雑にならない)に維持するためにはどのようなセッティングがよいのかという ことを数年間さまよい続けてきました。このページでは特にIPTalkとの連携についてまとめます。

字幕保証に関して、高精度な人力はやはりIPTalkがよく利用されているため、このIPTalkからのテキストをもらってしまえばOKなわけです。IPTalkにもブラウザでアクセスすれば字幕が見れる機能があるので、同じローカルネット内にいればこの機能で全然問題ないわけです。一方、中継を行うと、中継用PCは別ネットワークにつながっている必要があります。これに関してはIPTalk側も中継ネットワークにincludeしてしまえば良いわけです。しかしながら、なかなか出先で中継を行うと、会場ネットワークが融通が効かなかったり、モバイル端末を利用した場合、ケーブル接続PCが利用できない(ペガサスさんが利用できない)問題があるほか、ポケットWIFIなんかだと、動作環境的にドキドキしてしまうわけです。

  • 全員を中継ネットワークにぶら下げるのが、帯域及び、環境構築の面(ケーブル接続ができなくなる)で困難

そこで、いろいろ考えて見た結果なんですが、ESP8266 を字幕用ネットワークに入れて、ESP8266が直接UDPでIPTalkから表示用文字を取得、それをケーブルにつながった中継用PCに対してシリアル通信で出力する。という流れにすると手間を掛けず(もう一度PCを用意して、そのPCから中継用にデータを送るとかって、超めんどくさい)に字幕取得が可能だなと考えるに至りました。というわけで前置き長くなりましたが、ESP8266を使って、IPTalk経由で表示用字幕を取得し、それをシリアル通信でPCに送るまでの流れをここに記述していきます。ちなみにIPTalkはレガシーなので、文字コードはもちろんShift JISです。utf標準の世界ではひと手間加えねばなりません。栗田さん、utf対応にしてください(泣)。もっと言ってしまえば、栗田さんがIPTalkからの表示用文字列をシリアルデバイスに直接吐き出してくれる機能があれば完璧なんですけどね。栗田さん忙しいのと、私しか使わないのにそんな機能はつけないよなと思ったわけです。

環境

まず利用する環境ですが、

  • 中継用PC(Mac or Windows)、OBSを利用して配信
  • ESP8266(中継用PCに接続)
  • 無線LANルーター(ESP8266とIPTalkグループが接続)

の構成とします。中継用PCのインターネット接続はモバイル回線や会場回線等のIPTalkグループとはと異なるLANになることが前提です。

参照リンク(忘備録)

  • arduino/esp8266iptalk.txt
  • 最終更新: 2019/09/08 15:06
  • by baba