ライブ配信:Discord風の音声・ビデオルームがDiscourseに標準搭載 🎙

:warning: この機能を Voice から Live に名称変更しました。プラグイン名は Discourse Live、または単に Live と呼ばれます。

去年の末、Discourse に Discord スタイルの音声・ビデオルームを直接追加する実験的な機能 Resenha を公開しました。外部アプリは不要で、サイドバー内でピアツーピア WebRTC を使用します。

この実験は成功しました。私たちはそれ以来、自社の会議で使用しており、本日ついに正式リリースを迎えます:Resenha は Voice に改名され、すべての Discourse インストールに同梱されるコアプラグインとして提供されます。:tada:

得られる機能

  • サイドバー優先のルーム — クリックして参加または退出し、アニメーション付きの発話インジケーターとともにライブの参加者アバターを確認できます。通話中でもフォーラムの閲覧が可能です。ルートの変更もポップアップウィンドウもなく、コンパクトな通話ウィジェットがサイト内を移動しながらあなたについてきます。
  • ビデオと画面共有 — 各ルームにはタイルグリッドを持つフルページが用意されており、カメラや画面共有は瞬時に切り替わります。また、視聴者の数に応じて品質が自動的に調整されます。
  • 背景ぼかし — MediaPipe の人物セグメンテーションがブラウザ内で完全に実行され、ライブプレビューと強度の調整が可能になります。
  • ノイズ抑制 — ライトウェイトからスタジオグレードまで、WebAssembly オーディオワークレットとして動作する3つのAIエンジン(RNNoise、DTLN、DeepFilterNet3)から選択できます。
  • ライブ字幕 — オプトイン方式で、ローカルで WebGPU 経由で実行される NVIDIA Parakeet 音声認識によって駆動される視聴者側のキャプションです。多言語対応、最先端技術、ローカル AI。通話の文字起こしをトピックの下書きに直接記録することもできます。
  • ダイレクトコール — ユーザーカードやプロフィールから直接誰かに通話できます。
  • ルーム別テキストチャット — 実際の Discourse チャットに対応しています:各通話は、そのルームのチャットチャンネル内に独自のスレッドを持ちます。
  • ルーム権限と管理 — 公開、グループ制限、非公開ルーム;グループによるユーザーのルーム作成ゲート;ミュート、ディフン、ユーザー別音量、キック。
  • テーマ付きオーディオキュー — 参加/退出音や着信音はあなたのチャット通知サウンドパックに従うため、Voice はサイトの他の部分と同じようなサウンドになります。

仕組み

デフォルトでは、すべてがピアツーピアです:Discourse サーバーはシグナリングのみを処理し、メディアは DTLS-SRTP 暗号化により参加者の間で直接流れます。追加のインフラストラクチャはゼロで、音声では最大約50人、ビデオでは最大10人のルームに適しています。

すべての音声およびビデオ処理(ノイズ抑制、背景ぼかし、字幕)は、各参加者のデバイス上でローカルで実行されます。サードパーティへの送信はありません。

より大きな規模の通話が必要ですか? プラグインをクラウドまたはセルフホストされた LiveKit サーバーに向かせ、すべてのルーム(または一部のルームのみ)をそこからルーティングしてください。そうすることで、ルームサイズに関係なく、各参加者はトラックを正確に1回だけ公開します。LiveKit ルーティングされたルームでは通話を録画でき、Discourse のルーム UI から直接録画を制御できます。

有効にする方法

:discourse: Voice は当社のすべてのホスティングプランで利用可能です。大規模な通話向けの LiveKit 統合は、当社の Business および Enterprise プランで利用可能であり、セルフホスター :discourse-bw: は独自の LiveKit サーバーに向かせることができます。

Voice は Discourse に同梱されているため、インストールする必要はありません。管理 > 設定 > プラグイン > voice enabled でオンにします。プラグインはデフォルトで “Watercooler” ルームをシードするため、すぐに集まることができます。

そこから、voice_allowed_groups がルームへの参加者を、voice_create_room_allowed_groups がルーム作成者を制御します(デフォルトでは管理者、モデレーター、TL2)。ビデオはデフォルトでオンです。ダイレクトコールは voice_direct_calls_allowed_groups でいくつかのグループを選択するまでオフのままです。字幕は voice_subtitles_enabled によってオプトイン式です(WebGPU が必要で、各ユーザーは一度だけ約 2.5 GB のモデルをダウンロードします)。

個人のリポジトリから Resenha プラグインを実行していた場合は、同梱の Voice プラグインがそれを置き換えるため、機会があれば app.yml から削除してください。

ステータス

これはまだ初期段階です。数ヶ月間毎日自社で使用しており、小規模なグループには非常にうまく機能していますが、コミュニティ全体に開放する前にチームでテストしてください。デフォルトのピアツーピアパスでは通話録画はなく、ユーザーフラグ、キック、「通話終了」を超えるモデレーションツールはまだロードマップ上にあります。

フィードバックをお待ちしています

試してみて、どうだったか教えてください! バグ、アイデア、質問はこのトピックで歓迎します。PR も歓迎です。今まではかつてないほど簡単になりました:コードは core にあります。:microphone:

「いいね!」 69

ちょっと待って…うわ…動画もあるの?

Man's Mind Blown Reaction

最高!

「いいね!」 13

うわ、本当ですか?

セルフホスト環境でこれをテストする方法はありますか?例えば、別のDockerコンテナを使うとか。

「いいね!」 2

再ビルドして最新バージョンに更新し、管理画面で新しいプラグインを有効にするだけです。それ以外の特別な操作は不要です。

「いいね!」 6

Discourse風のボイスルームとビデオルームのことですか? :innocent: :grin:

「いいね!」 14

つまり、Nats の公開鍵/秘密鍵、サブドメイン、Coturn サーバー、そして作成しようとしていたすべてのスクリプトを置き去りにして、セキュアな Livekit サーバーをブリッジとして使用できるということでしょうか?

たとえ引き続き作業が必要になったとしても、これを構築してくれてありがとうございます!

「いいね!」 3

つまり、インスタンスでSTUN/TURN用の専用Coturnを使いたいなら、それで構いません。LiveKitも同様で、使いたいならどうぞお使いください。

アウトオブボックスで通話を行うために必須というわけではありませんが、そのような柔軟性も提供しています。

「いいね!」 3

素晴らしいニュースですね!こうなる予感はしていましたが、@Falcoさん、ありがとうございます。

「いいね!」 4

投稿が新しいトピックに分割されました:Exposing LiveKit status in site settings serializer

元の告知を見逃してしまいましたが、これには本当にワクワクしてしまい、前回のアップデートからたった4日しか経っていないにもかかわらず、discourseをアップデートしてしまいました。

みんなに使ってもらうのが待ちきれないです!

ありがとうございます!!! :tada:

大きな質問ですが、誰でもビデオルームを作成できるのでしょうか?それとも、権限や信頼度レベルに基づいて制限できるのでしょうか?

追記:有効化後にコントロールが見つかりました。

「いいね!」 4

すごい :clap: !Discourseはすでにかなり充実した機能セットを備えていると思います。一部のDiscordコミュニティを代替できるだけでなく、本気で競い合えるレベルにまでなっていると感じます。

「いいね!」 10

3件の投稿が新しいトピックに分割されました:カメラと画面共有の細粒度権限

グループによって制限することができます。

「いいね!」 3

Kerehn-1: Cool Cat in Sunglasses

「いいね!」 2

チャットのように、ボイチャプラグイン用のウィンドウを表示できるボタンがあると便利だと思います。そのウィンドウには、チャンネルとユーザー一覧を表示し、検索機能も備えていると良いですね。特にモバイルでの利用時に役立ちます。ただのアイデアです :sweat_smile:

「いいね!」 1

ボイスルームはチャットに表示されますが、それでご希望のものは見つかりますか?

このボタンはボイスルーム用ではなく、すべてのチャット用です。ここからボイスルームに参加したり、退出したりできます👌

「いいね!」 3

結果のスクリーンショットを送ってもらえますか?この部分(サロン/チャット)があまりよく理解できないので :sweat_smile:

お、本当に試せるよ。voice chat enabledの設定をオンにして、チャット画面を最大化すればいいだけだよ :slight_smile:

音声チャットは有効になっていますが、フルスクリーンで何も変化が見えません。もし私が完全に勘違いしているなら、すみません :rofl:

OK、見つけました :sweat_smile: ご迷惑をおかけしてすみません

「いいね!」 1