ブログ/公開日: 更新日:

GaavalaがChrome Web Storeに登場したら、真っ先に手に入れましょう。 ウェイトリストに登録

Gaavalaが会議音声を守る仕組み: プライバシー最優先のアーキテクチャ

会議音声は暗号化された接続でブラウザから Soniox に直接送られます。Gaavala のバックエンドはログイン、契約、使用量を管理し、会議音声を受信しません。

会議の音声はブラウザ → Sonioxへ。当社のサーバーは経路にありません。
会議の音声はブラウザから Soniox へ — 経路上に Gaavala のサーバーはありません

プライバシーの中核原則

ほとんどのSaaS翻訳ツールは、見慣れたデータフローに従います:

  1. ブラウザが会議の音声をキャプチャする
  2. 音声がベンダーのバックエンドへアップロードされる
  3. ベンダーのバックエンドが、その音声を音声認識エンジンへプロキシする
  4. 文字起こしがベンダーのバックエンド経由で返ってくる
  5. その途中で、ベンダーのサーバーが音声をログしたり、キャッシュしたり、保持したりすることが少なくない

この連鎖のすべてのホップが、信頼の境界です。すべてのホップが、ログのバグ、認証情報の漏洩、召喚状、あるいは悪意ある技術者によって、会議の中身が露出しうる場所です。音声に触れる当事者が増えるほど、誰もそれを保持していないと監査人に証明することは難しくなります。

Gaavalaは、プロキシのステップを丸ごと取り除きます。データフローはこうです:

  1. ブラウザがタブから会議の音声をキャプチャする
  2. ブラウザがSonioxへの直接のWebSocketを開く
  3. そのWebSocketを通じて音声が直接ストリーミングされる
  4. Sonioxが文字起こしを直接ブラウザへ返す
  5. Gaavalaのバックエンドは一切関与しない

あなたのマシン上で動いているChrome拡張機能が、あなたの会議音声に触れる当社のコードの唯一の部分です — そしてその拡張機能は、その音声を当社へ送りません。

なぜこのアーキテクチャを選んだのか

GaavalaをChrome拡張機能として作り直したとき、私たちは意図的なアーキテクチャ上の決定を下しました: 拡張機能は当社のバックエンドを通じてユーザーを認証し、サブスクリプションの状態を管理し、メタデータを提供する — しかし、音声経路に入ることは決してない、という決定です。理由は単純でした:

  • Soniox への直接送信は技術的な中継を減らしますが、データ保護上の義務をゼロにはしません。Gaavala とその再委託先 Soniox をまとめて評価し、処理目的、保存期間、必要な契約を確認してください。この構成だけで HIPAA や SOC 2 への適合を証明することはできません。
  • セキュリティの爆発半径: 音声を処理するサーバーの侵害は、テキストのメタデータを処理するサーバーの侵害より、根本的に深刻です。私たちは、最も機微なシステムに最も機微でないデータを扱わせるほうを選びます。
  • 遅延: プロキシのホップが増えるたびに往復時間が加わります。ブラウザからSonioxへの直接ストリーミングはホップを1つまるごと取り除き、体感できるほど良い字幕の遅延をもたらします。
  • プライバシーと一致するコスト: 自前の音声プロキシを運用するということは、会議のたびに帯域と計算資源に支払うということです。運用しなければ、コストが下がり、かつ顧客が守られます。インセンティブが一致しているとき、アーキテクチャは正直なままでいられます。

データフローの詳細

会議で文字起こしを開始したとき、実際に何が起きるのかを見ていきましょう。

ステップ1: 認証

初めてGaavalaにサインインするとき、拡張機能はChromeの chrome.identity.launchWebAuthFlow APIを使い、GoogleまたはMicrosoftとのOAuth認可コードフローを完了します。IDプロバイダーは認可コードをあなたのブラウザへ返し、拡張機能はそれを当社のバックエンドでGaavalaのセッションJWTと交換します。そのJWTは chrome.storage.local に保存され、以降の当社バックエンドへのAPI呼び出しの認証に使われます。

このどこにも音声は関わりません。OAuthフローはテキストだけです — トークン、クレーム、プロフィールのフィールド。

ステップ2: Sonioxの一時キー

会議で「Start」をクリックすると、拡張機能は当社のバックエンドAPIを呼び出し、短命のSoniox一時キーを要求します。このキーには3つの重要な性質があります:

  • 音声認識だけにスコープが限定されています — Soniox APIの他の面には一切及びません
  • 有効期限は日単位ではなく分単位です
  • セッションごとに1度だけ発行され、あなたの端末には保存されません

この一時キーのパターンは、プライバシーの物語にとって決定的です。もしGaavalaが長命のSoniox APIキーを拡張機能のバンドルに同梱していたら、誰でもそれを抽出できてしまいます。代わりに私たちは、必要に応じてその場で発行され、あなたの認証済みセッションに紐づき、セッション終了の直後に無効化される使い捨てのキーを発行します。

当社のバックエンドがログするのは、このリクエストのメタデータだけです — どのユーザーが、いつ、どのプランティアで。まだ音声はキャプチャされていないため、音声を見ることはありません。

ステップ3: タブ音声のキャプチャ

あなたはMicrosoft Teams、Zoom、Google Meet、Webexの通話にChromeタブで参加します。Gaavalaの拡張機能はサイドパネルを開き、音声のキャプチャを開始するよう促します。あなたが確定すると、拡張機能はChromeの tabCapture APIを使います — 明示的なユーザーの許可と目に見えるインジケーターのもとで、アクティブなタブから音声をキャプチャできる、拡張機能専用のAPIです。

Chromeはキャプチャした音声を、Gaavalaがバックグラウンドで走らせているoffscreenドキュメントへ流します。offscreenドキュメントは、目に見えるUIを持ち続けることなく音声処理を扱うために拡張機能が使えるサンドボックス化されたページです。そのoffscreenドキュメントの中で、Gaavalaは MediaStream を開き、それを AudioContext に接続し、ストリーミングの準備をします。

決定的に重要な点として、音声はローカルの音声グラフも通ってスピーカーへ音を戻します。つまり、Gaavalaがキャプチャしている間も、あなたは会議を通常どおり聞き続けられます — 何もミュートされず、経路が変わることもありません。

ステップ4: Sonioxへの直接WebSocket

続いてoffscreenドキュメントが、Sonioxへの直接のWebSocket接続を開きます。この接続は:

  • TLS 1.2以上を使用します
  • ステップ2の短命な一時キーで認証されます
  • あなたのブラウザのネットワークスタックから発します — パケットはあなたのOSからSonioxへ流れ、Gaavalaへは流れません

タブからキャプチャされた音声フレームはPCMとしてエンコードされ、WebSocketを通じて送られます。Sonioxはそれをリアルタイムで処理し、文字起こしのトークンを同じ接続で返します。それらのトークン — 話者ラベル付きの、タイムスタンプを持つテキスト断片 — は、offscreenドキュメントへ直接届き、そこからサイドパネルへ表示のために転送されます。

このループ全体のどの時点でも、会議音声のパケットがGaavalaの運用するサーバーに届くことはありません。これはChrome DevToolsを使ってご自身で検証できます。Gaavalaが動いている間にWSフィルターを有効にしたNetworkタブを開けば、見えるWebSocketは soniox.com のホスト宛ての1本だけで、gaavala.com 宛てに会議音声が一切送信されていないことが分かります。

ステップ5: 文字起こしの表示と、任意のサマリー

文字起こしは端末上の拡張機能のローカルデータベースに保存され、7日後に自動削除されます。自分でダウンロードしたエクスポートファイルは引き続き自分で管理します。AI 要約は端末内で生成され、Gaavala のサーバーは文字起こしを受信しません。ただし、端末の共有やデータ消去ではローカル履歴を考慮する必要があります。

声を出さずに返答したい場合は 聴覚障害者のための会議参加ガイド が参考になります。

Gaavalaのサーバーが見るデータ

当社のバックエンドが全機能を通じて扱う主なデータは次のとおりです:

データタイミング保持期間備考
Gaavalaのセッションリフレッシュトークンサインイン時トークンの有効期間 — 期限が切れたレコードは日次の処理で削除あなたのGoogle/Microsoft OAuthトークンが保存されることはありません
ユーザープロフィール(メールアドレス、氏名)サインイン時アカウントの有効期間請求とサポートのため
サブスクリプションの状態常時アカウントの有効期間プランのティア、トライアルの状態
支払い記録(Pro)支払ったとき税法が求める期間。アカウントを削除した後も保持されます当社の決済パートナーが通知する金額、税額、通貨、国、日付、支払い方法。カード情報は決済パートナーのもとで保管されます
Sonioxの一時キーのリクエストセッションごとリクエストログのみ音声なし
文字起こしの分数カウンターセッションごとアカウントの有効期間月単位のバケットに分けられ、クォータの適用のため
ボイスクローンの参照サンプル(Pro)録音した場合のみあなたが声またはアカウントを削除するまで暗号化(AES-256-GCM)され、あなたの声の構築にのみ使われます。会議音声ではありません
技術的な問題の報告送信したときのみ180日あなたが送信を選んだ診断情報。文字起こしのテキストは含まれません
インターフェースの言語サインインした状態で拡張機能を使うたびアカウントの有効期間当社からのメールがあなたの言語で届くようにするため
ウェイトリストのメールアドレス(ウェブサイト)ウェイトリストに登録した場合のみあなたが削除を依頼するまでページの言語とキャンペーンの参照元とともに保存され、アドレスの確認とローンチのお知らせにのみ使われます
匿名のウェブサイトアナリティクスCookieに同意した後にのみGoogle Analytics側で保持され、当社のデータベースには保存されませんウェブサイトのみ — 拡張機能はユーザーIDを含まない匿名のエラー件数を報告します

当社のバックエンドが見ないデータの、正確な一覧です:

  • 生の会議音声(いかなる形式でも、いかなる時点でも)
  • 圧縮された会議音声のストリーム
  • 会議音声のバッファや中間表現
  • 会議から得られる声の生体データ(当社が保持する唯一の音声録音は上記のProのボイスクローン用サンプルで、それもあなたが録音した場合に限ります)
  • Sonioxが割り当てる匿名の話者ID以上の話者の身元
  • 文字起こしのテキスト — サマリーは端末上で生成され、文字起こしがあなたのマシンを離れることはありません

もし裁判所が特定の会議の音声をGaavalaに召喚したとしても、技術的に正直な答えは、私たちはそれを持っておらず、取り出すこともできない、というものになります。それは当社のシステム上に一度も存在しなかったのです。

サンプルの録音と削除の手順は自分の声を使う音声クローンの説明をご覧ください。

ご自身で監査する

Chrome拡張機能として動くことの利点の1つは、ランタイム全体が検査可能だということです。あなたのITチームは、この記事の言葉を1つも信じることなく、当社のプライバシーの主張を検証できます:

方法1 — ネットワークの検査。 chrome://extensions を開き、Gaavalaを見つけ、「service worker」または「inspect views > background page」をクリックします。DevToolsでNetworkタブへ移動し、WS(WebSocket)でフィルターします。会議を開始してください。soniox.com のホストへ向かうWebSocketがちょうど1本だけ開かれるのが見えます。gaavala.com へ会議音声が向かうことはありません。

方法2 — マニフェストの検査。 chrome://extensions でGaavalaの「Details」を展開し、権限を確認してください。host_permissions は、拡張機能が到達できるオリジンを正確に宣言しています。ストリーミングのためのSonioxのエンドポイントと、認証とサブスクリプションのためのGaavalaのエンドポイントが見えるはずです。ワイルドカードのホスト権限も、宣言されていないネットワークアクセスもありません。

方法3 — ソースの検査。 拡張機能は、サービスワーカー、offscreenドキュメント、サイドパネル、コンテンツスクリプトを同梱しています。Chromeは、それらすべてを開発者ツールでの検査に開放しています。あなたのセキュリティチームはいつでもバックグラウンドページやoffscreenドキュメントにアタッチしてランタイムの状態を読むことができます — 音声ストリームのオブジェクトが当社ドメイン宛てのfetchやXHRへシリアライズされることが決してないと確認することも含めて。

私たちはマニフェストとホスト権限をChrome Web Storeのリスティングの一部として公開しており、第三者によるセキュリティレビューを歓迎します。

コンプライアンスとの対応関係

GDPRとデータ最小化

GDPR第5条(1)(c)はデータ最小化の原則を定めています: 個人データは「十分であり、関連性があり、必要な範囲に限定されている」必要があります。音声データはGDPRの下では個人データであり、識別に用いられる場合は生体データにもあたります。

このデータ経路はバックエンドが受信する内容を限定します。ただし DPIA では、サービス全体、ローカル履歴、任意の音声サンプル、再処理者である Soniox も評価対象に含める必要があります。

それでもSonioxは、Gaavalaが契約する音声サービスプロバイダーとして、あなたのコンプライアンス連鎖の中にあります: Sonioxのアカウントを保有しているのはGaavalaであり、あなたのブラウザが接続に使う短命のキーを発行するのもGaavalaです。また、当社のプライバシーポリシーは、当社がデータを共有する第三者の1社としてSonioxを挙げています。したがってDPIAは、Sonioxを、あなた自身が契約するベンダーとしてではなく、Gaavalaのサービスの一部として対象に含めます。

HIPAAとPHIを含む音声

HHSのビジネスアソシエイトに関するガイダンスによると、HIPAAの適用対象事業体または別のビジネスアソシエイトのために電子的な保護対象保健情報(ePHI)を扱うサービス提供者は、ビジネスアソシエイトに該当する場合があります。その関係が成立する場合、適切なBAAの条項が必要です。HHSのクラウドに関するガイダンスでは、クラウドサービスへの適用が説明されています。実際のサービス、データフロー、契約を踏まえて評価してください。

Gaavalaのバックエンドは会議音声を一切受け取らないため、会議で話されたPHIがGaavalaのサーバーに保存されることはありません。ただし会議音声は、Gaavalaが契約する音声サービスプロバイダーであるSonioxへ送信され、そこで処理されるため、HIPAAの評価ではこの経路もGaavalaのサービスの一部として対象に含める必要があります — これは、あなたとSonioxの間だけの関係ではありません。AIサマリーを生成する場合も、それはChromeの組み込みAIによって端末上で生成されます — 文字起こしのテキストはあなたのマシンに留まるため、サマリー機能によってGaavalaのサーバーや別のベンダーがPHIの処理連鎖に加わることはありません。

SOC 2のベンダーリスク

AICPAのTrust Services CriteriaのCC9.2は、ベンダーおよびビジネスパートナーに関するリスクの評価と管理を扱います。評価は、定義されたシステム、サービス、約束事項と、その範囲内でサービス提供者が担う役割に応じて行います。

Gaavalaのアーキテクチャでは、あなたのブラウザはSonioxに直接接続しますが、ベンダー関係はGaavalaを通じて成り立っています: Sonioxのアカウントを保有しているのはGaavalaであるため、あなたのベンダーリスク登録簿には、Sonioxが、あなた自身が契約するベンダーとしてではなく、音声認識を担うGaavalaのサブプロセッサーとして記載されます。直接接続によって狭まるのは、Gaavala自身が占める範囲です。当社のサーバーは、ID情報、請求、利用状況などのアカウントデータと、Proユーザーが録音した場合のボイスクローン用サンプルを扱いますが、会議音声は扱いません。また、文字起こしやサマリーのテキストはユーザーのマシンから出ないため、これらも扱いません。

Chrome拡張機能という形が重要な理由

上に挙げたプライバシーの保証の多くは、GaavalaがChrome拡張機能として、プロバイダーへ直結するネットワークパターンで動作することに依存しています。私たちはいくつかの代替案を検討し、そして退けました:

  • サーバーサイドの音声プロキシ: 実装は簡単ですが、すべての顧客の音声を自前のインフラで扱うことを強いられます。これは私たちが明確に避けたかったものです。
  • STTを組み込んだウェブアプリ: ウェブページからタブ音声をキャプチャするには getDisplayMedia が必要で、セッションのたびにOSレベルのピッカーがユーザーに表示され、選ばれたタブに縛られます。さらに悪いことに、ユーザーが他のタブを操作している間にウェブページがバックグラウンドの音声ストリームを維持する信頼できる方法は存在しません。
  • デスクトップのネイティブアプリ: より多くの制御を得られますが、インストールの摩擦、署名のコスト、OS固有の開発負担が加わります。そして注意深くやらない限り、私たち自身が音声処理者となる役割を取り除くことにもなりません — つまり、同じ問題をすべて作り直すことになります。

Chrome拡張機能という形だけが、私たちの望んだプライバシーアーキテクチャを可能にしました。tabCapture、offscreen ドキュメント、そしてManifest V3のサービスワーカーモデルが組み合わさることで、拡張機能はユーザーのマシン上で会議音声をキャプチャし、それを直接の接続で音声認識エンジンへストリーミングし、長時間の会議に必要なバックグラウンドの状態を維持できます — 会議音声が当社を経由することなく。

それでも正しくやり続けなければならないこと

プライバシーのアーキテクチャは「会議音声に触れない」で終わりではありません。私たちが同じく真剣に受け止めている隣接する懸念があります:

  • 一時キーの発行: 私たちが発行する短命のSonioxキーは、当社のバックエンドが攻撃者のためにキーを発行してしまえば悪用されうるものです。私たちはすべてのリクエストをあなたのJWTで認証し、キーの発行にレート制限をかけ、異常をログします。
  • 拡張機能の更新: 更新された拡張機能のバージョンは、理論上ネットワークのパターンを変えうるものです。私たちはマニフェストにバージョンを付け、変更履歴を公開し、Chrome Web Storeは更新がインストールされる前に新しい権限があれば提示します。
  • サマリーのテキスト: サマリーはChromeの組み込みAI(Gemini Nano)によって完全に端末上で生成されるため、文字起こしが当社のバックエンドに届くことはありません — このリスクは現在のアーキテクチャには存在しません。ローカルのAI処理ですら、ある会議にとっては許容できないというなら、サマリー機能は使わないままで構いません。他の何もそれに依存していません。
  • ボイスクローンの参照サンプル(Pro): 個人のボイスクローンを作成する場合、2分のサンプルはGaavalaのサーバーに暗号化(AES-256-GCM)して保存され、あなたの声を構築するためだけに使われ、リクエストに応じて削除されます — プライバシーポリシーをご覧ください。
  • 法的要請: 私たちは、実際に保有しているデータについてのみ法的要請に応じることを公に約束しています。会議音声については、その答えは常に「私たちはそれを持っていません」になります。

会議翻訳ツール横断の比較

音声や文字起こしの送信先、保存期間、アクセスできる人を分けて比較してください。モデル学習に使わないことは、データを保存しないことと同義ではありません。選ぶサービスの最新のプライバシー条件、再処理者、削除方法を確認しましょう。

いいえ — Zoom の方針では顧客コンテンツを AI モデルの学習に使用しません.

プライバシーは初期設定であって、有料ティアではありません

Gaavalaの無料ティアでも、まったく同じSonioxへの直接アーキテクチャ、まったく同じ話者識別、まったく同じ60言語のカバレッジが手に入ります。Proが解放するのは1日120分、Speak Mode、そしてボイスクローンであって、プライバシーではありません。プライバシーを意識するユーザーが、自分のデータを安全に保つために余分に支払うべきだとは、私たちは考えていません。

会議と音声認識エンジンの間にツール提供元のサーバーが挟まることをコンプライアンス部門が認めず、あなたの組織がこれまで会議翻訳ツールの導入を見送ってきたのなら、Gaavalaはまさにそうしたケースのために作られました。このパイプラインは、あなたの法務、セキュリティ、コンプライアンスのチームがレビューすべきものが増えるのではなく、減るように設計されています。

ウェイトリストに登録

一度きりの無料トライアル: 5分間の文字起こし、リセットなし。クレジットカード不要。ウェブサイトでの登録も不要です。


関連記事