site-logo

JAWS PANKRATION 2024

JAWS PANKRATION 2024の同時翻訳と配信環境のアーキテクチャ概要を公開!!

2024/8/22

JAWS PANKRATION 2024 実行委員です。

今回の同時翻訳と配信環境の概要についてです。

Architecture

3年前に開催したJAWS PANKRATION 2021ではPoketalkという翻訳デバイスを用いましたが、JAWS PANKRATION 2024ではデバイスレスを実現するために自前で自動翻訳を作ったというところが大きな特徴です。

同時翻訳ということをもっと具体的にプロセスに書き出すと、

  • スピーカーの音声をスピーカーが話す言語でテキストに書き起こし、
  • テキストに書き起こしたものをさらに翻訳してテキストに出力する

という二段構えになります。そこに対しての議論が何度も行われました。OBSでWhisper modelという言語モデルを用いて、文字起こしをするということも考えましたが、テストの過程で、パフォーマンスと動作が不安定でうまく動かない部分がありました。

最終的に、WebブラウザのSpeech Recognitionで対応することにしました。

Speech Recognition自体はJavaScriptで呼べます。Speech Recognitionで取得した音声データを文節ごとにチャンクに分割します。チャンクに分割されたことをトリガーにバックエンドのAmazon API Gatewayに送り、そこからAWS Lambdaを呼び出します。呼び出されたAWS Lambdaはパラメータとして書き起こされた文字列を持っており、Amazon Translateに対して翻訳リクエストをだします。翻訳されたものは後からサマリーをつくるためにAmazon DynamoDBに保存したりもしますが、Amazon IVS Chat Room機能を使ってクライアント側に配信し、クライアントのブラウザに翻訳字幕を表示させます。

同時視聴者数の表示(1分間ごと)は、Amazon EventBridgeでAWS Lambdaを呼び出し、Amazon IVSのチャンネルの視聴者数をAPIで取得し、Amazon Dynamo DBに格納していきます。Amazon IVSのTimed-Metadata機能でフロント側にも送ります。

前回のイベント同様にGoogle SpreadSheetで登壇者情報を管理しており、Google Sheets APIを用いて、オペレーター向けWebページに表示し、同時視聴者数もオペレーター向けWebページ上に表示します。Amazon Workspaces上でオペレーター向けWebページを開いたところを、OBS Studioで切り取り、まとめたものを配信動画として、Amazon IVS Low-Latency Stream Channelに流します。流したものは、Viewer側のフロントエンド側からSDKで読み込むことができるので、これで字幕や同時視聴者数などのリアルタイム情報が表示されるようになります。

アクセスポイントになってくるViewerのエンドポイント、つまり配信サイトであったり、オペレーター向けWebページはすべてAWS Amplifyでホストしています。このあたりは、JavaScript、React、Next.jsといったフロントエンドの技術を用いて実現しています。

今回、この同時翻訳&配信環境は実行委員の松井さん前原さん榊原さん小板橋さんにて実装しています。

本環境の実装以前に設計の相談など、アドバイザリーとして、AWSのTodd SharpさんHao Chenさんにも多大なるご協力をいただきました。また、Amazon IVSの利用・コスト面でもサポーターとしてご協力いただいています。

今回、スポンサーでもあるAmazon IVSチームからTodd Sharpさんのセッションはこちらになります。

https://jawspankration2024.jaws-ug.jp/ja/timetable/TT-61/

Amazon IVSにDeep Diveできるこちらのセッションをお楽しみに!


©JAWS-UG (AWS User Group - Japan). All rights reserved.