Microsoft Teamsでのリアルタイムのメディア通話と会議

リアルタイム メディア プラットフォームを使用すると、ボットは、リアルタイムの音声、ビデオ、および画面共有を使用して、Microsoft Teams の通話や会議で対話できます。 リアルタイム メディア プラットフォームは、ボットが音声およびビデオ コンテンツをフレームごとに送受信できるようにする高度な機能です。 ボットは、音声、ビデオ、および画面共有メディア ストリームに生でアクセスできます。 すべてのメディア処理をリアルタイム メディア プラットフォームに依存する、よりシンプルなサービス ホスト型メディア ボットがあります。 メディア自体を処理するボットは、アプリケーション ホスト型メディア ボットと呼ばれます。

目的のユース ケース

リアルタイム メディア ボットは、生メディア ストリームへの直接アクセスを必要とする特殊なシナリオ向けに設計されています。これらの統合は、マネージド パートナーを介して提供され、場合によっては Microsoft によって認定されます。

シナリオ 説明
Cloud Video Interop (CVI) サードパーティのビデオ会議システムと Teams 会議の統合
コンプライアンス記録 規制コンプライアンスのための会議コンテンツのCaptureとアーカイブ
コンタクト センターの統合 Teams 通話を使用してエンタープライズ コンタクト センター プラットフォームを接続する

重要

会議用の AI エージェントを構築しますか? リアルタイム メディア ボットは、AI エージェントのシナリオでは推奨されません。 代わりに、次の値を使用します。

これらのアプローチは、メディア処理の複雑さとインフラストラクチャの要件なしで、会議インテリジェンスを提供します。

ユース ケースの例: コンプライアンス記録

コンプライアンス記録シナリオでは、ボットは通話または会議に参加し、1 秒あたり 50 個のオーディオ フレームを受信します。 ボットは、MiFID II、HIPAA、またはその他の業界固有の要件などの規制要件を満たすために、生メディア ストリームをキャプチャしてアーカイブします。

完全な実装例については、 ポリシー記録ボットのサンプルを参照してください。

プラットフォームは、ボットがメディアを送受信するためのシンプルなソケットのような API を提供します。 オーディオまたはビデオ パケットのリアルタイムのエンコードとデコードを処理します。 オーディオには SILK や G.722、ビデオには H.264 などのコーデックを使用します。 プラットフォームは、すべてのメディア パケットの暗号化または復号化とパケット ネットワーク送信も処理します。 ボットは、実際のオーディオまたはビデオ コンテンツのみに関係します。 リアルタイム メディア ボットは、複数の参加者との 1 対 1 の通話や会議に参加します。

メディア セッション

リアルタイム メディア ボットは、サポートする必要のあるモダリティを宣言する必要があります。 リアルタイム メディア ボットは、着信に応答するとき、またはTeams 会議に参加するときに、サポートを宣言する必要があります。 サポートされているモダリティごとに、ボットはメディアを送受信できるか、受信のみ、または送信のみが可能かを宣言します。 たとえば、1 対 1 の Teams 通話を処理するように設計されたボットは、音声の送信と受信の両方を必要とします。 ただし、ボットは発信者のビデオを受信する必要がないため、ビデオを送信するだけで済みます。 ボットと Teams の発信者または会議の間で確立された一連のオーディオおよびビデオ モダリティは、メディア セッションと呼ばれます。

メイン ビデオとビデオベースの画面共有の 2 種類のビデオ モダリティがサポートされています。 メイン ビデオは、ユーザーの Web カメラからビデオを転送するために使用されます。 ビデオベースの画面共有により、ユーザーは画面を共有できます。 プラットフォームにより、ボットは両方のビデオの種類を送受信できます。

Teams 会議に参加すると、ボットはメディア セッションごとに最大 10 の複数のメイン ビデオ ストリームを同時に受信できます。 ボットは、会議の複数の参加者を見ることができます。

次のセクションでは、一連のフレームとしてメディアを送受信するボットについて詳しく説明します。

フレームとフレーム レート

リアルタイム メディア ボットは、メディア セッションのオーディオおよびビデオ モダリティと直接対話します。 ボットは一連のフレームとしてメディアを送受信しており、各フレームはコンテンツ ユニットです。 1 秒のオーディオが 50 フレームのシーケンスとして送信されます。 各フレームには、音声コンテンツの 1/50 秒である 20 ミリ秒が含まれています。 1 秒のビデオは 30 枚の静止画像のシーケンスとして送信されます。 各画像は、次のビデオ フレームの 1/30 秒前のわずか 33.3 ミリ秒で表示されるようになっています。 1 秒あたりに送信またはレンダリングされるフレーム数は、フレーム レートと呼ばれます。

次のセクションでは、リアルタイムのメディア通話や会議で使用されるオーディオおよびビデオ形式について詳しく説明します。

オーディオおよびビデオ形式

オーディオ形式では、オーディオ 1 秒あたり 16,000 サンプルとして表され、各サンプルには 16 ビットのデータが含まれています。 20 ミリ秒のオーディオ フレームには、640 バイトのデータである 320 のサンプルが含まれています。

ビデオ形式では、いくつかの形式がサポートされています。 ビデオ形式の 2 つの重要なプロパティは、フレーム サイズとカラー フォーマットです。 サポートされているフレーム サイズには、360 ピクセルである 640x360、720 ピクセルである 1280x720、および 1080 ピクセルである 1920x1080 が含まれます。 サポートされているカラー フォーマットには、ピクセルあたり 12 ビットの NV12 とピクセルあたり 24 ビットの RGB24 が含まれます。

720 p のビデオ形式には、720 の 1280 倍である 921,600 ピクセルが含まれています。 RGB24 カラー フォーマットでは、各ピクセルは 3 バイトとして表されます。これは、赤、緑、青の各色成分 1 バイトを含む 24 ビットです。 単一の 720 p RGB24 ビデオ フレームには、921,600 ピクセル× 3 バイト/ピクセルの 2,764,800 バイトのデータが必要です。 可変フレーム レートで、720 p RGB24 ビデオ フレームを送信することは、毎秒約 80 メガバイトのコンテンツを処理することを意味します。 80 メガバイトは、ネットワーク送信前に H.264 ビデオ コーデックによって大幅に圧縮されます。

プラットフォームの高度な機能により、ボットはエンコードされた H.264 フレームとしてビデオを送受信できます。 独自の H.264 エンコーダーまたはデコーダーを提供するボットがサポートされているか、生の RGB24 または NV12 ビットマップにデコードされたビデオ ストリームは必要ありません。

次のセクションでは、どの会議参加者が話しているか、つまりどの会議参加者がアクティブで支配的なスピーカーであるかについて詳しく説明します。

アクティブで支配的なスピーカー

複数の参加者で構成される Teams 会議に参加すると、ボットは、どの会議参加者が話しているかを識別できます。 アクティブ スピーカーは、受信した各オーディオ フレームでどの参加者が聞こえているかを識別します。 主要な話者は、グループ会話で最もアクティブまたはドミナントな参加者を識別しますが、音声はすべてのオーディオ フレームで聞こえません。 さまざまな参加者が交代で話すと、支配的なスピーカーのセットが変わる可能性があります。

次のセクションでは、ボットによって行われたビデオ サブスクリプション要求について詳しく説明します。

ビデオ サブスクリプション

1 対 1 の通話では、ボットがビデオの受信を有効にしている場合、ボットは発信者のビデオを自動的に受信します。 Teams 会議では、ボットはプラットフォームにどの参加者を表示するかを示す必要があります。 ビデオ サブスクリプションは、ボットが参加者のメイン ビデオまたは画面共有コンテンツを受け取る要求です。 会議の参加者が会話を行うと、ボットは必要なビデオ サブスクリプションを変更します。 ボットは、主要な話者セットの更新または画面共有である参加者を示す通知に基づいてビデオ サブスクリプションを変更します。

次のセクションでは、インストールする必要があるものと、アプリケーション ホスト型メディア ボットを開発するための要件について詳しく説明します。

開発者向けリソース

アプリケーション ホスト型メディア ボットを開発するには、Visual Studio プロジェクト内に Microsoft.Graph.Calls.Media.NET ライブラリの NuGet パッケージをインストールする必要があります。

アプリケーション ホスト型メディア ボットには、.NET または C# と Windows Server が必要です。 詳細については、アプリケーション ホスト型メディア ボットの要件と考慮事項を参照してください。

注:

アプリケーションでホストされるメディア ボットには、次のような重要なインフラストラクチャ投資が必要です。

  • ビデオ処理用の GPU 機能を備えた VM のWindows Server
  • 高帯域幅、低遅延のネットワーク接続
  • 同時実行呼び出し/会議を処理するスケーラブルなコンピューティング
  • コーデック処理に関するメディア処理の専門知識

この方法を選択する前に、シナリオで生メディア アクセスが本当に必要かどうかを評価します。

コード サンプル

サンプルの名前 説明 Graph
ポリシー記録ボット このサンプルでは、ボットがコンプライアンス記録のためにメディア ストリームを受信する方法を示します。 表示

次の手順

関連項目

CVI とコンプライアンス記録の場合