Gaavalaが会議音声を守る仕組み: プライバシー最優先のアーキテクチャ
毎日の勤務時間の中で、何百万人ものプロフェッショナルが機微な情報を扱う会議に参加しています — 合併交渉、患者の診察、法務戦略、四半期決算のプレビュー、人事の判断。そうした会議が言語の壁をまたぐとき、リアルタイム翻訳は不可欠になります。しかし、ほとんどの会議翻訳ツールは、あなたの生の音声をベンダーのクラウドへ送ることを要求します — 法務、コンプライアンス、セキュリティのチームが年々承認できなくなっている、まさにその種のデータ露出面を作り出しながら。
Gaavalaは、自らを音声経路から完全に取り除くように設計されています。当社のChrome拡張機能で会議を走らせているとき、あなたの音声がGaavalaのサーバーを通ることはありません。暗号化されたWebSocketを介して、ブラウザからSonioxの音声認識エンジンへ直接ストリーミングされます — そして当社のバックエンドが、その1バイトすら目にすることはありません。
この記事では、それが具体的にどう機能するのか、どんなデータが回線を渡るのか、そしてこのアーキテクチャが一般的なコンプライアンスフレームワークにどう対応するのかを解説します。
プライバシーの中核原則
ほとんどのSaaS翻訳ツールは、見慣れたデータフローに従います:
- ブラウザが会議の音声をキャプチャする
- 音声がベンダーのバックエンドへアップロードされる
- ベンダーのバックエンドが、その音声を音声認識エンジンへプロキシする
- 文字起こしがベンダーのバックエンド経由で返ってくる
- その途中で、ベンダーのサーバーが音声をログしたり、キャッシュしたり、保持したりすることが少なくない
この連鎖のすべてのホップが、信頼の境界です。すべてのホップが、ログのバグ、認証情報の漏洩、召喚状、あるいは悪意ある技術者によって、会議の中身が露出しうる場所です。音声に触れる当事者が増えるほど、誰もそれを保持していないと監査人に証明することは難しくなります。
Gaavalaは、プロキシのステップを丸ごと取り除きます。データフローはこうです:
- ブラウザがタブから会議の音声をキャプチャする
- ブラウザがSonioxへの直接のWebSocketを開く
- そのWebSocketを通じて音声が直接ストリーミングされる
- Sonioxが文字起こしを直接ブラウザへ返す
- Gaavalaのバックエンドは一切関与しない
あなたのマシン上で動いているChrome拡張機能が、あなたの音声に触れる当社のコードの唯一の部分です — そしてその拡張機能は、その音声を当社へ送りません。
なぜこのアーキテクチャを選んだのか
GaavalaをChrome拡張機能として作り直したとき、私たちは意図的なアーキテクチャ上の決定を下しました: 拡張機能は当社のバックエンドを通じてユーザーを認証し、サブスクリプションの状態を管理し、メタデータを提供する — しかし、音声経路に入ることは決してない、という決定です。理由は単純でした:
- コンプライアンスの対象面: 私たちが処理する顧客音声の1バイトごとが、DPIA、SOC 2レポート、BAA交渉の中で説明責任を負うべき1バイトになります。その面をゼロに保つ最もきれいな方法は、そもそも音声に一切触れないことです。
- セキュリティの爆発半径: 音声を処理するサーバーの侵害は、テキストのメタデータを処理するサーバーの侵害より、根本的に深刻です。私たちは、最も機微なシステムに最も機微でないデータを扱わせるほうを選びます。
- 遅延: プロキシのホップが増えるたびに往復時間が加わります。ブラウザから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(wss://stt-rt.soniox.com/...)への直接のWebSocket接続を開きます。この接続は:
- TLS 1.2以上を使用します
- ステップ2の短命な一時キーで認証されます
- あなたのブラウザのネットワークスタックから発します — パケットはあなたのOSからSonioxへ流れ、Gaavalaへは流れません
タブからキャプチャされた音声フレームはPCMとしてエンコードされ、WebSocketを通じて送られます。Sonioxはそれをリアルタイムで処理し、文字起こしのトークンを同じ接続で返します。それらのトークン — 話者ラベル付きの、タイムスタンプを持つテキスト断片 — は、offscreenドキュメントへ直接届き、そこからサイドパネルへ表示のために転送されます。
このループ全体のどの時点でも、音声のパケットがGaavalaの運用するサーバーに届くことはありません。これはChrome DevToolsを使ってご自身で検証できます: Gaavalaが動いている間にWSフィルターを有効にしたNetworkタブを開けば、WebSocketがちょうど1本だけ — soniox.com のホストへ — 見え、音声を含む gaavala.com 宛ての送信トラフィックはゼロであることが分かります。
ステップ5: 文字起こしの表示と、任意のサマリー
文字起こしのトークンは3つの面にレンダリングされます: サイドパネル、会議タブ上のフローティングオーバーレイ、そしてエクスポートに使われるメモリ内バッファです。これらの面はいずれも音声をシリアライズしません。扱うのはテキストだけです。
会議の終わりにAIサマリーを実行すると、そのサマリーはChromeの組み込みAI(Gemini Nano)によって完全にあなたの端末上で生成されます。文字起こしのテキストがあなたのマシンを離れることはありません — Gaavalaのバックエンドへ送られることも、いかなる第三者へ送られることもありません。会議の内容は、音声であれテキストであれ、そもそもGaavalaのバックエンドを一切通りません。通るのは、認証とサブスクリプションのメタデータだけです。
Gaavalaのサーバーが見るデータ
当社のバックエンドが全機能を通じて扱うデータの、正確な一覧です:
| データ | タイミング | 保持期間 | 備考 |
|---|---|---|---|
| Gaavalaのセッションリフレッシュトークン | サインイン時 | トークンの有効期間 — 期限が切れたレコードは日次の処理で削除 | あなたのGoogle/Microsoft OAuthトークンが保存されることはありません |
| ユーザープロフィール(メールアドレス、氏名) | サインイン時 | アカウントの有効期間 | 請求とサポートのため |
| サブスクリプションの状態 | 常時 | アカウントの有効期間 | プランのティア、トライアルの状態 |
| Sonioxの一時キーのリクエスト | セッションごと | リクエストログのみ | 音声なし |
| 文字起こしの分数カウンター | セッションごと | アカウントの有効期間 | 月単位のバケットに分けられ、クォータの適用のため |
| 匿名のウェブサイトアナリティクス | Cookieに同意した後にのみ | Google Analytics側で保持され、当社のデータベースには保存されません | ウェブサイトのみ — 拡張機能はユーザーIDを含まない匿名のエラー件数を報告します |
当社のバックエンドが見ないデータの、正確な一覧です:
- 生の会議音声(いかなる形式でも、いかなる時点でも)
- 圧縮された音声ストリーム
- 音声バッファや中間表現
- 声の生体データ
- 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の下では個人データであり、識別に用いられる場合は生体データにもあたります。
Gaavalaのアーキテクチャは、この原則と直接的に一致します。音声を当社のシステムから完全に締め出すことで、私たちが処理する個人データは、サブスクリプション事業を運営するために絶対に必要な最小限 — メールアドレス、氏名、請求の状態 — に抑えられます。DPIAを実施する顧客にとって、音声処理に関して当社のバックエンドは実質的に透明です: 何も当社に届かないため、評価すべきものが存在しません。
Sonioxは、あなたのコンプライアンス連鎖における独立した処理者です。そのプライバシー姿勢は独立して確認でき、Sonioxは、あなたのブラウザが直接張る接続に適用されるデータ処理条件を公開しています。
HIPAAとPHIを含む音声
HIPAAの下では、保護対象保健情報(PHI)を処理・保存・送信するベンダーは、事業提携契約(BAA)に署名しなければなりません。医療の診察には、しばしばPHIが含まれます — 患者名、診断、治療計画。
Gaavalaのバックエンドは会議音声を一切受け取らないため、音声のパイプラインはGaavalaのBAAのスコープ外にあります。音声処理について評価すべき関係は、あなたとSonioxの間に直接あるものです — そのデータは当社に触れないため、Gaavalaはそのデータの事業提携者ではありません。AIサマリーを生成する場合も、それはChromeの組み込みAIによって端末上で生成されます — 文字起こしのテキストはあなたのマシンに留まるため、サマリー機能がGaavalaや追加のベンダーをPHIの処理連鎖に持ち込むこともありません。
SOC 2のベンダーリスク
SOC 2の監査では、データ処理連鎖に含まれるすべてのサードパーティベンダーを文書化し評価することが求められます。ベンダーが1つ増えるたびにシステム記述書は複雑になり、リスクアセスメントのスコープは広がります。
Gaavalaのアーキテクチャでは、Sonioxはあなたが直接やり取りするデータ処理者であり、Gaavalaを介した処理者ではありません。あなたのベンダーリスク登録簿は、Sonioxを独立した条件で評価すべきであり、多くのセキュリティチームはこちらのほうが、サブプロセッサー関係を評価するよりも分かりやすいと感じています。この登録簿におけるGaavalaのスコープはより狭くなります: 私たちが扱うのはアイデンティティと請求であって、生の音声ではなく、また文字起こしやサマリーのテキストでもありません — それらはユーザーのマシンを離れないからです。
Chrome拡張機能という形が重要な理由
上に挙げたプライバシーの保証の多くは、GaavalaがChrome拡張機能として、プロバイダーへ直結するネットワークパターンで動作することに依存しています。私たちはいくつかの代替案を検討し、そして退けました:
- サーバーサイドの音声プロキシ: 実装は簡単ですが、すべての顧客の音声を自前のインフラで扱うことを強いられます。これは私たちが明確に避けたかったものです。
- STTを組み込んだウェブアプリ: ウェブページからタブ音声をキャプチャするには
getDisplayMediaが必要で、セッションのたびにOSレベルのピッカーがユーザーに表示され、選ばれたタブに縛られます。さらに悪いことに、ユーザーが他のタブを操作している間にウェブページがバックグラウンドの音声ストリームを維持する信頼できる方法は存在しません。 - デスクトップのネイティブアプリ: より多くの制御を得られますが、インストールの摩擦、署名のコスト、OS固有の開発負担が加わります。そして注意深くやらない限り、私たち自身が音声処理者となる役割を取り除くことにもなりません — つまり、同じ問題をすべて作り直すことになります。
Chrome拡張機能という形だけが、私たちの望んだプライバシーアーキテクチャを可能にしました。tabCapture、offscreen ドキュメント、そしてManifest V3のサービスワーカーモデルが組み合わさることで、拡張機能はユーザーのマシン上だけで音声を扱い、外部サービスへ直接接続を開き、長時間の会議に必要なバックグラウンドの状態を維持できます — 何ひとつ当社を経由させることなく。
それでも正しくやり続けなければならないこと
プライバシーのアーキテクチャは「音声に触れない」で終わりではありません。私たちが同じく真剣に受け止めている隣接する懸念があります:
- 一時キーの発行: 私たちが発行する短命のSonioxキーは、当社のバックエンドが攻撃者のためにキーを発行してしまえば悪用されうるものです。私たちはすべてのリクエストをあなたのJWTで認証し、キーの発行にレート制限をかけ、異常をログします。
- 拡張機能の更新: 更新された拡張機能のバージョンは、理論上ネットワークのパターンを変えうるものです。私たちはマニフェストにバージョンを付け、変更履歴を公開し、Chrome Web Storeは更新がインストールされる前に新しい権限があれば提示します。
- サマリーのテキスト: サマリーはChromeの組み込みAI(Gemini Nano)によって完全に端末上で生成されるため、文字起こしが当社のバックエンドに届くことはありません — このリスクは現在のアーキテクチャには存在しません。ローカルのAI処理ですら、ある会議にとっては許容できないというなら、サマリー機能は使わないままで構いません。他の何もそれに依存していません。
- ボイスクローンの参照サンプル(Pro): 個人のボイスクローンを作成する場合、約20秒のサンプルはGaavalaのサーバーに暗号化(AES-256-GCM)して保存され、あなたの声を構築するためだけに使われ、リクエストに応じて削除されます — プライバシーポリシーをご覧ください。
- 法的要請: 私たちは、実際に保有しているデータについてのみ法的要請に応じることを公に約束しています。音声については、その答えは常に「私たちはそれを持っていません」になります。
会議翻訳ツール横断の比較
Gaavalaのプライバシーモデルは、他の一般的な会議翻訳ツールと比べてどうでしょうか。
| 機能 | Gaavala | Otter.ai | Zoom AI Companion | Teams Copilot | Interprefy |
|---|---|---|---|---|---|
| 音声がベンダーのバックエンドに届く | いいえ(Sonioxへ直接) | はい(Otterのサーバー) | はい(Zoomのサーバー) | はい(M365のサーバー) | はい(プラットフォームのサーバー) |
| 会議後に音声が保持される | いいえ | はい(初期設定) | 任意 | 任意 | まちまち |
| モデルの学習に使われる | いいえ | オプトアウト | オプトアウト | エンタープライズの制御 | 不明 |
| ネットワークを自分で監査できる | はい(DevTools) | いいえ | いいえ | いいえ | いいえ |
| 拡張機能として動作(監査可能) | はい | いいえ | いいえ | いいえ | いいえ |
| Teams/Zoom/Meet/Webexをまたいで動作 | はい | 部分的 | いいえ | いいえ | まちまち |
本当に重要な差はこれです: この表の他のすべての行では、あなたはベンダーのサーバー上で音声がどう扱われているかについて、ベンダーの主張を信じることになります。Gaavalaでは、音声について信じるべきサーバーが存在しません — 当社のサーバーに音声がないからです。この主張は、標準のChrome開発者ツールで検証できます。
プライバシーは初期設定であって、有料ティアではありません
Gaavalaの無料ティアでも、まったく同じSonioxへの直接アーキテクチャ、まったく同じ話者識別、まったく同じ60言語のカバレッジが手に入ります。Proが解放するのは1日120分、Speak Mode、そしてボイスクローンであって、プライバシーではありません。プライバシーを意識するユーザーが、自分のデータを安全に保つために余分に支払うべきだとは、私たちは考えていません。
音声をベンダーのクラウドへ送ることにコンプライアンスがノーと言ったために、あなたの組織がこれまで会議翻訳ツールを退けてきたのなら、Gaavalaはまさにその会話のために作られました。このパイプラインは、あなたの法務、セキュリティ、コンプライアンスのチームがレビューすべきものが増えるのではなく、減るように設計されています。
一度きりの無料トライアル: 5分間の文字起こし、リセットなし。クレジットカード不要。ウェブサイトでの登録も不要です。