本文にスキップする
Version: 5.5

サブグループの例:通訳

ここでは、グループ通話(カンファレンス)で通訳サービスを提供する方法について見てみましょう。

要求事項

この例の要求事項は、次のとおりです。

  1. 通訳者が通訳のためにグループ通話に参加する
  2. すべての参加者が一緒に会話できる
  3. 通訳者が通訳中には一般参加者のボリュームを下げる

アプリケーションの設計

この例では、アプリケーションを以下のように設計しています。

  1. 通訳する言語ごとにサブグループを作成します。

  2. 通訳者は、通訳のためにその言語のサブグループに加入します。

    • T-JP:英→日の通訳。Jpのサブグループに加入する
    • T-EN:日→英の通訳。Enのサブグループに加入する
  3. 参加者は聞きたい言語のサブグループを選択します。

    • J1、J2:日本語を使う参加者。Jpのサブグループに加入する
    • E1、E2:英語を使う参加者。Enのサブグループに加入する
  4. peerUpdateの属性値をNONEに設定します。

    • 通訳するサブグループの言語は既に定義されている
  5. videoUpdateの属性値をFALSEに設定します。

    • 通訳ルームではビデオを使用しない
  6. オーディオの送受信は、必ず下表のように設定しなければなりません。

    オーディオ送信オーディオ受信
    通訳言語ごとのサブグループメインルーム
    言語ごとの参加者メインルーム言語ごとのサブグループ + メインルーム

通訳ルームの例の一般トポロジ

オーディオの流れ

通訳が必要なオーディオの流れと順序は、次のとおりです。

通訳ルームの例のオーディオトポロジ

  1. 日本語を使う参加者が日本語で発話する
  2. すべての参加者(通訳を含む)がこれを聞き取る
  3. 通訳のT-ENが英語で通訳し、通訳された英語のオーディオがEnのサブグループに流れる
  4. 英語を使う参加者(E1、E2)だけが英語のオーディオを聞き取る

PlanetKit APIの流れ

以下のような状況において、適切なサブグループAPIの呼び出しの流れと実際に通訳サービスを実装する際にサブグループに加入する方法を見てみましょう。

  • 参加者全員が通訳ルームに参加
  • 英語を使う参加者E1、E2および英語通訳のT-ENは準備完了

通訳ルームの例の流れ iOS/macOS

参加者J2が通訳サービスを利用する方法は、次のとおりです。

  1. 日本語を使うJ2がJpサブグループに加入します。
  2. Jpのサブグループにオーディオを送信した人はまだいないため、J2に送られるものはありません。
  3. J2は「Jp」を引数としてsetTagMyAudioOfMainRoom()を呼び出し、メインルームに送信するオーディオストリームにタグを付けます。
    • これは、Jpサブグループに自分のオーディオを送信するように変更することなく、オーディオストリームがJpサブグループに属することを意味する
  4. 日本語通訳のT-JPは、「Jp」を引数としてchangeMyAudioDestination()を呼び出し、自分のオーディオストリームをJpサブグループに送信するように変更します。
    • T-JPがJpサブグループにオーディオを送信する
    • T-JPのオーディオは、J2を含むすべてのJpサブグループメンバーに転送されます。
  5. J2は、T-JPの日本語通訳を聞くために、「Jp」を引数としてsetPeersAudioAutoVolumeControl()を呼び出します。
    • E1とE2のオーディオは、メインルームに送られる
    • E1とE2はそれぞれ別のサブグループにいるが、T-JPは彼らのオーディオを聞くことができる
    • J2もE1とE2のオーディオが聞き取れる
    • T-JPはこれを日本語に通訳する
    • T-JPのオーディオがJpサブグループに属するJ2に転送される
    • J2は、T-JPが通訳したオーディオとボリュームが下がったE1、E2のオーディオを聞き取る