レビュー:コミュニティにDiscordスタイルのボイスルームを追加する 🎙

みなさん、こんにちは!Resenha という実験的なプラグインを紹介します。これは、外部アプリを必要とせず、Discourse のサイドバーに直接音声・ビデオチャットルームを追加するものです。ピアツーピアの WebRTC を使用します。

output

リブで試す

:point_right: https://discourse-on-a-pi5.falco.dev/

(はい、Raspberry Pi 5 で動作しています。これほど軽量なのです。)

仕組み

サイドバーのルームをクリックして参加し、再度クリックして退出します。デフォルトでは、すべてのメディアは WebRTC を介してピアツーピアで送信されます。Discourse サーバーはシグナリングのみを処理し、メディアは処理しません。大規模な通話が必要なサイトは、オプションで LiveKit メディアサーバー(LiveKit Cloud またはセルフホスト型)を介してルームをルーティングできます。インストール時にデフォルトの「ウォータークーラー」ルームが作成されるため、コミュニティはすぐに会話を開始できます。

機能

  • サイドバー優先の UX — Discord スタイルで、アニメーション付きの発話インジケーター付きのルームとライブ参加者アバターがサイドバーに表示されます
  • ビデオと画面共有 — オプションのカメラビデオと画面/タブ共有、フルルームページ、タイル/プレゼンテーションレイアウト、フルスクリーンサポート
  • 永続的な通話ウィジェット — フォラムを閲覧中に付随する、ドッキングされたリサイズ可能なミニ通話ウィジェット(ビデオ含む)
  • 音声とビデオの設定 — デバイスセレクター、ライブマイクテスト、入力感度ゲート、WebAssembly ノイズ抑制(DTLN)、MediaPipe 背景ぼかし — すべてブラウザ内でローカル処理
  • ルームチャット — 各ルームは、実際の Discourse チャットチャンネルとスレッドをバックエンドとするテキストチャットを備えています
  • ステージルーム — AMA やコミュニティ通話用の、スピーカー/オーディエンスルームとリクエストキュー付きの発言権
  • ルーム権限 — パブリック、グループ制限、プライベートルーム、サイドバーのロックバッジ、投稿内のルームリンク用のルームハッシュタグ
  • 参加者コントロール — ユーザーごとの音量、ミュート、デafen、キックを含むコンテキストメニュー、AFK 自動ミュート/切断、自動ユーザーステータス
  • ルーム管理 — グループによるユーザールーム作成の制限、スタッフ CRUD UI、プログラム制御用の完全な REST API
  • デフォルトでゼロインフラ — DTLS-SRTP 暗号化付きの純粋なブラウザ WebRTC、SFU/MCU 不要
  • オプションの LiveKit 統合 — 個別にルームをオプトインするか、大規模通話のために LiveKit Cloud または独自の LiveKit サーバーを介してすべてをルーティング、管理者ヘルスパネルと Webhook ベースの調整機能付き

ステータス

:warning: ベータ版 — デフォルトのピアツーピアモードは、小規模グループ(2〜10 参加者)でテスト済みで良好に動作しています。大規模なルームの場合は、LiveKit(Cloud またはセルフホスト型)をプラグインに指定してください。それ以外はすべて同じように動作します。

インストール

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/xfalcox/resenha.git

Admin > Settings > Plugins > resenha enabled で有効化してください。

フィードバック歓迎

これは実験的なものです — バグ、アイデア、質問はすべてこのトピックで歓迎します。PR も歓迎です!


注:これは official プラグインではありません。

「いいね!」 54

レビュー、素晴らしい、大好きです、私の同胞よ、ありがとう

「いいね!」 12

インストールして約30分でセットアップが完了し、動作も順調なようです!いくつか機能の変更/追加を希望します。

機能 ステータス
ルーム名の変更 :cross_mark: 未実装
ルームの削除 :cross_mark: 未実装
デフォルトのルーム名の変更 :cross_mark: ハードコード済み
ルームとDiscourseカテゴリの関連付け :cross_mark: サポートされていません
ルームごとの権限設定 :cross_mark: サポートされていません
自動有効期限切れルームの作成 :cross_mark: サポートされていません
ルームの説明/トピック :cross_mark: サポートされていません
「いいね!」 10

これは素晴らしいです。アルファ版からリリースされた後、チームがこれを公式にする計画はありますか?

「いいね!」 7

現在、公式にする予定はありません。これは主に、この技術の可能性とDiscourseとの統合方法を探るためのものだからです。

とはいえ、他のすべてと同様に、お客様が何を望むかによります。

「いいね!」 9

これは素晴らしいですね、Falco!あなたがリストアップしたことについて、かなりの数の応用例が見えます。このようなフィーチャープラグインは、Discourse Metaを頼れるプラットフォームにするのに間違いなく役立ちます!

「いいね!」 4

新しい部屋を作成するオプションはどこにありますか?

これは実験的な技術プロジェクトであり、本番サイト向けの完成されたソリューションではないため、それに対応するUIはありません。

「いいね!」 2

今のところ#experimentalは必要ではないでしょうか?

クールなプラグインです

「いいね!」 3

これを数日間試していますが、素晴らしいです!!!

フォーラム/チャットのディスカッションを口頭での会話に簡単に「アップグレード」できるという問題を美しく解決してくれます。長年にわたり、他のプラットフォームに切り替える必要性や、リソースを大量に消費する(試みとしての)統合されたビデオ会議との間で苦労してきました。

もしさらに発展させることをお考えでしたら、チャットとの統合を望みます。チャットから直接、チャットのメンバーのためにプライベートな音声ルームを起動できれば(その後、きれいに整理して)、それはまさに素晴らしいでしょう。そして、チャットは追加のコメント、ファイル、リンクなどをドロップするための完璧な場所として残ります。

さらに望むこと(あれば最高です)は次のとおりです。

  1. ビデオのオプション(このような軽量な技術では技術的に不可能かもしれません)

  2. 関連トピックやチャットを統合するのに十分な賢さを持つAI文字起こし。これは会議の記録係として本当に驚異的でしょう。

「いいね!」 11

フィードバックありがとうございます!それがまさに私の目標でした!

間違いなく、それは論理的な次のステップであり、それをバックアップするためのエフェメラル(一時的な)ルームが用意されます。

SFU/MCUなしで、アップロードが十分な人向け、またはオプションでサポートを追加することで、どちらも十分に実現可能です。

「いいね!」 7

これは完璧でした。しばらくはアップデートしませんが、ESRがリリースされてこのプラグインを含める際に、2月に最後にアップデートする予定です。

とても楽しみにしていますし、実現することを願っています。

「いいね!」 2

「ウォータークーラー」チャットルームのアイコンを bottle-water に変更する可能性はありますか?

「いいね!」 3

ルームを管理するためのUIが新しく追加されました。

「いいね!」 10

Falcoさん、このプラグインをありがとうございます:heart:

素晴らしい仕事です: অনুগ্রহ করে

「いいね!」 1

本番環境でテスト中です。フィードバックを持って戻ります!レビューしましょう :brazil:

「いいね!」 1

このケースでは、リングの方が良いかもしれません。部屋の中にいて、自分のプロフィールまたは他の誰かのプロフィールをクリックすると、ホームページに戻ってDOMが更新されます。

Discourse Chatのケバブメニューパターンを使用した部屋の詳細画面が利用可能になりました

「いいね!」 2

デフォルトのテーマでは重ならないので、パディングのペースを調整するためにテーマを調整してみてはいかがでしょうか?

image

これは現在修正されました。

「いいね!」 3

最近のニュースを受け、プラグインに新しい機能を追加しました。AI駆動のノイズフィルターです。

管理者はサイト設定(デフォルト:オフ)で利用可能にでき、その後、ユーザーはボイスチャットルームで自分のユーザーをクリックすることでオプトインできます。

「いいね!」 6