Text
Page: 1
Kaigi on Rails 2025における
subscreenの実装について
うなすけ
北陸Ruby会議01
2025-12-06
Page: 2
自己紹介
Name: うなすけ
Work: フリーランス
Kaigi on Rails Organizer
GitHub https://github.com/unasuke
Fediverse https://mstdn.unasuke.com/@unasuke
X https://x.com/yu_suke1994
Page: 3
Kaigi on Railsとは
Kaigi on Rails is an approachable, inclusive, web-
focused tech conference, designed tolower the
barrier of entry to participatingin conferences.
Kaigi on Railsのコアコンセプトは「初学者から上級者までが楽しめ
るWeb系の技術カンファレンス」 です。
[cited from `https://kaigionrails.org/2025/about/']
Page: 4
Kaigi on Rails 2025
EN/JA
Page: 5
Kaigi on Rails 2025
国際カンファレンスっぽい!
Page: 6
Kaigi on Rails 2025は国際カンファレンス?
「これができてれば国際カンファレンス」という基準はない
と、思ってるけど……
海外からの参加者
英語による発表
英語によるアナウンス
ビザ取得支援
同時通訳
字幕
Page: 7
Kaigi on Rails 2025は国際カンファレンス?
「これができてれば国際カンファレンス」という基準はない
と、思ってるけど……
海外からの参加者
英語による発表
英語によるアナウンス
ビザ取得支援
同時通訳
字幕
Page: 8
Kaigi on Rails 2025の国際化
JA → EN の同時通訳
発表数的に厳しい
EN → JA の同時通訳
こちらを用意した
全員分のレシーバーを用意するのは厳しい
同時通訳のリソースが十分ではない
→ 字幕も用意したいよね
Page: 9
カンファレンスと字幕
VimConf 2024
https://pocketalk.jp
Observability Conference Tokyo 2025
https://www.cuckoo.so/jp/
Page: 10
Kaigiと字幕
RubyKaigi
https://github.com/ruby-no-kai/takeout-app
https://github.com/ruby-no-kai/signage-app
東京Ruby会議12
https://github.com/tokyorubykaigi12/captioner
Fork?
Page: 11
keynote speakers
Page: 13
new Falcon app
Falconのアプリって作ったことない
ありますか?KaigiEffectで触った人はいる?
リアルタイム文字起こしのアプリって作ったことない
さっきのコードを読めばなんとなくわかるけど
リアルタイムにデータを配信するアプリって……
Action Cableではない
WebSocketならちょっとあるけど、WebSocketなの?
Page: 24
Vibe Coding (9/22)
本番4日前にやることではない
Page: 25
Vibe codingまとめ
まずはAIと壁打ちして方針決め
これは6月頃からやっていた
方針をもとに手元でVibe coding
Claude Max
AWSの環境を構築するTerraformは人力
やるべきことがわかっているので
Page: 26
できたもの
https://github.com/kaigionrails/shirataki
ffmpegで配信を受け取り、音声をAmazon Transcribeに流す
Transcribeの結果をBedrockで英訳する
日本語とAI訳をValkeyにstreamする
Valkey経由でstreamされた字幕情報をFalconがSSEする
https://github.com/kaigionrails/terraform/pull/18
Valkey serverless
shiratakiが動くEC2
shiratakiにリクエストを流すALB
などなど
Page: 27
Kaigi on Rails 2025での構成
Page: 28
トラブル集
本番環境で動かない
配信が止まると全てが止まる
同時通訳との兼ね合い
(BedrockのAPI call quotaにひっかかる)
Page: 29
本番環境で動かないトラブル
検証環境では動いていたのに本番で動かない!
ブラウザからのSSE受信ができていない
EC2上のプロセスは動いている
Page: 30
本番環境で動かないトラブル
検証環境では動いていたのに本番で動かない!
ブラウザからのSSE受信ができていない
EC2上のプロセスは動いている
理由
本番へのドメイン登録忘れ
ブラウザ(というかOS)がNXDOMAIN?をキャッシュ?
ドメイン登録とOS再起動で解決
Page: 31
配信が止まると全てが止まるトラブル
https://x.com/sora_h/status/1971479957508587953
Page: 32
配信が止まると全てが止まるトラブル
インターネットへの接続が不安定
Cloudflareへのストリーミングが止まる
するとCloudflareからのストリーミングも止まる
ffmpegによる受信プロセスが終了し、おしまい
Page: 33
配信が止まると全てが止まるトラブル
インターネットへの接続が不安定
Cloudflareへのストリーミングが止まる
するとCloudflareからのストリーミングも止まる
ffmpegによる受信プロセスが終了し、おしまい
解決策
手元PCでログをずっと見守る
止まったら再起動
部屋から「字幕止まってる」という報告があれば再起動
Page: 35
同時通訳セッションのトラブル
音声の言語は動的に変えられない
環境変数で現在の言語を指定している
同時通訳のセッションはJAもENも流れてくる
翻訳がいらない
Page: 36
同時通訳セッションのトラブル
音声の言語は動的に変えられない
環境変数で現在の言語を指定している
同時通訳のセッションはJAもENも流れてくる
翻訳がいらない
解決策
セッション切り替えのタイミングで素早く設定を切り替えて再起動
英語セッションが終わったら戻す
Page: 37
なんとかKaigi on Rails 2025を乗り切った
おおむね動いていた(と思う)
用意したリソースは十分だった
t3.mediumを4台だっけ?(うろおぼえ)
ないよりマシ、くらいのものは提供できたのでは?
Page: 38
見えてきた課題
前述の問題
配信が止まったときの復旧
動的な翻訳の有無
SSEの再接続
エラーになったら画面リロード
メトリックを取る
今何人見てるのか
属人化
自分の脳内にしかない手順
Page: 39
AIに書かせてみてどうだった?
時間がないときには本当に助かる
質はまあ……それなり
自分のコードじゃない感じ
責任は自分にあるのはそう
「自分で書いた」感は本当に希薄
Page: 40
「自分で書きたい」という想い
https://github.com/unasuke/shirataki/tree/hokurikurk01
北陸Ruby会議01に向けて少し手を入れた
ffmpegの再起動
view
OpenTelemetry
このdiffはほぼ手で書いた
Page: 42
まとめっぽく
自分たちのカンファレンスは自分たちで作りたい
カンファレンスをやるのは楽しい
Rubyを書くのは楽しい