博客/发布日期: 更新日期:

Gaavala 上架 Chrome Web Store 时,你将第一时间收到消息。 加入候补名单

Gaavala 如何保护你的会议音频:隐私优先的架构

会议音频通过加密连接从浏览器直接传至 Soniox。Gaavala 后端负责登录、订阅和用量管理,不接收会议音频。

会议音频路径是浏览器 → Soniox。我们的服务器不在其中。
会议音频从浏览器直达 Soniox — 路径上没有 Gaavala 服务器

核心隐私原则

大多数 SaaS 翻译工具遵循一条熟悉的数据流:

  1. 你的浏览器采集会议音频
  2. 音频被上传到供应商的后端
  3. 供应商的后端把音频转发给一个语音转文字引擎
  4. 转录结果经由供应商的后端返回
  5. 供应商的服务器往往会在这条路径上记录、缓存或留存音频

这条链路上的每一跳都是一道信任边界。每一跳都是一个可能因为一个日志 bug、一次凭据泄露、一张传票或一名心怀不轨的工程师而暴露你会议内容的位置。碰过音频的方越多,你就越难向审计人员证明没有任何一方留存过它。

Gaavala 彻底去掉了中转这一步。数据流是这样的:

  1. 你的浏览器从标签页采集会议音频
  2. 你的浏览器向 Soniox 打开一条直连 WebSocket
  3. 音频直接通过这条 WebSocket 流出
  4. Soniox 把转录结果直接返回给你的浏览器
  5. Gaavala 的后端从不参与

运行在你机器上的这个 Chrome 扩展程序,是我们的代码中唯一碰到你会议音频的部分——而它不会把这些音频发送给我们。

我们为什么选择这套架构

当我们把 Gaavala 重建为一个 Chrome 扩展程序时,我们做了一个有意为之的架构决定:扩展程序通过我们的后端完成用户身份验证、管理订阅状态、提供元数据——但它绝不进入音频路径。理由很直接:

  • 音频直连 Soniox 可以减少技术中转环节,但不会使数据保护义务归零。应将 Gaavala 及其子处理者 Soniox 一并纳入评估,确认处理目的、保留期限和适用协议。仅凭这种架构不能证明符合 HIPAA 或 SOC 2。
  • 安全爆炸半径:一台处理音频的服务器被攻破,本质上比一台处理文本元数据的服务器被攻破严重得多。我们宁愿让自己最敏感的系统去处理最不敏感的数据。
  • 延迟:每多一次中转就多一段往返时间。浏览器直连 Soniox 的流式传输省掉了完整的一跳,让我们的字幕延迟明显更低。
  • 与隐私对齐的成本:自建音频中转意味着每一场会议都要为带宽和算力付费。不建它既省钱又保护用户。当激励方向一致时,架构往往能保持诚实。

数据流详解

我们来看看,你在一场会议中启动转录时究竟发生了什么。

第 1 步:身份验证

你第一次登录 Gaavala 时,扩展程序使用 Chrome 的 chrome.identity.launchWebAuthFlow API,与 Google 或 Microsoft 完成一次 OAuth Authorization Code 流程。身份提供方把授权码返回给你的浏览器,扩展程序再用它向我们的后端换取一个 Gaavala 会话 JWT。这个 JWT 保存在 chrome.storage.local 中,用于验证后续发往我们后端的 API 调用。

这一切都不涉及音频。OAuth 流程只有文本——令牌、声明、资料字段。

第 2 步:临时 Soniox 密钥

当你在一场会议中点击 Start(开始)时,扩展程序会调用我们的后端 API,请求一个短时效的 Soniox 临时密钥。这个密钥有三条重要性质:

  • 它的权限范围仅限语音转文字——不涉及 Soniox API 的其他任何部分
  • 它以分钟计过期,而不是以天计
  • 它每次会话签发一次,并且不会持久化到你的设备上

临时密钥这个模式对整个隐私叙事至关重要。如果 Gaavala 把一个长期有效的 Soniox API 密钥打包进扩展程序,任何人都能把它提取出来。因此我们改为签发一次性的密钥:按需铸造、绑定到你已通过验证的会话,并在会话结束后不久失效。

我们的后端只记录这次请求的元数据——哪个用户、什么时间、什么套餐档位。它看不到任何音频,因为此时还没有任何音频被采集。

第 3 步:标签页音频采集

你在一个 Chrome 标签页中加入 Microsoft Teams、Zoom、Google Meet 或 Webex 通话。Gaavala 扩展程序打开侧边面板,提示你开始采集音频。你确认之后,扩展程序调用 Chrome 的 tabCapture API——这是一个仅供扩展程序使用的 API,需要明确的用户授权,并带有一个可见的采集指示。

Chrome 把采集到的音频送入 Gaavala 在后台运行的一个 offscreen 文档。offscreen 文档是一个沙箱化的页面,扩展程序可以用它处理音频,而不必保留可见界面。在这个 offscreen 文档内部,Gaavala 打开一个 MediaStream,把它接入一个 AudioContext,并为流式传输做好准备。

关键的一点是:音频同时经过一个本地音频图回灌到你的扬声器。这意味着 Gaavala 在采集的同时,你依然能正常听到会议——没有任何声音被静音或改道。

第 4 步:直连 Soniox 的 WebSocket

随后,offscreen 文档直接向 Soniox 打开一条 WebSocket 连接。这条连接:

  • 使用 TLS 1.2 或更高版本
  • 用第 2 步中那个短时效的临时密钥完成认证
  • 源自你浏览器的网络栈——数据包从你的操作系统流向 Soniox,而不是流向 Gaavala

从标签页采集到的音频帧被编码为 PCM,通过这条 WebSocket 发送出去。Soniox 实时处理它们,并通过同一条连接把转录 token 流式传回。这些 token——带时间戳、带说话人标签的文本片段——直接抵达 offscreen 文档,再由它转发给侧边面板显示。

在这整个回路中,没有任何一个会议音频数据包会到达由 Gaavala 运营的服务器。你可以用 Chrome DevTools 自己验证这一点:在 Gaavala 运行时打开 Network 面板并开启 WS 筛选,你会看到只有一条指向 soniox.com 主机的 WebSocket 连接,而发往 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 扩展程序的形态运行,好处之一是整个运行时都可以被检视。你的 IT 团队无需相信本文的任何一个字,就能验证我们的隐私声明:

方法 1——网络检查。打开 chrome://extensions,找到 Gaavala,点击 “service worker” 或 “inspect views > background page”。在 DevTools 中切到 Network 面板,按 WS(WebSocket)筛选。开始一场会议。你会看到恰好一条被打开的 WebSocket,指向一个 soniox.com 主机。没有任何会议音频发往 gaavala.com。

方法 2——清单检查。在 chrome://extensions 中展开 Gaavala 的 “Details”(详细信息),查看它的权限。host_permissions 精确声明了扩展程序能够访问哪些来源。你会看到用于流式传输的 Soniox 端点,以及用于认证和订阅的 Gaavala 端点。没有通配符主机权限,也没有未声明的网络访问。

方法 3——源码检查。扩展程序附带一个 service worker、一个 offscreen 文档、侧边面板和内容脚本。Chrome 通过开发者工具把这些全部开放给检视。你的安全团队可以随时挂载到后台页面或 offscreen 文档上,读取运行时状态——包括确认音频流对象从未被序列化进任何指向我们域名的 fetch 或 XHR。

我们把清单和主机权限作为 Chrome Web Store 列表的一部分公开,也欢迎第三方安全审查。

合规对应

GDPR 与数据最小化

GDPR 第 5(1)(c) 条确立了数据最小化原则:个人数据必须“充分、相关,并限于必要范围”。在 GDPR 之下,语音数据属于个人数据;若被用于识别身份,则属于生物特征数据。

这一数据流限制了后端收到的内容,但数据保护影响评估仍应覆盖完整服务、本地历史记录、可选声音样本,以及作为次级处理方的 Soniox。

Soniox 仍在你的合规链路之中,身份是 Gaavala 签约的语音服务商:Soniox 账户由 Gaavala 持有,你的浏览器建立连接所用的短时效密钥也由 Gaavala 签发;我们的隐私政策也把 Soniox 列为我们与之共享数据的第三方之一。因此,DPIA 会把 Soniox 作为 Gaavala 服务的一部分纳入范围,而不是作为你自己签约的供应商。

HIPAA 与包含 PHI 的音频

根据 HHS 的业务伙伴指南,代表 HIPAA 适用实体或另一业务伙伴处理电子受保护健康信息(ePHI)的服务商,可能属于 HIPAA 所定义的业务伙伴。若存在这种关系,就需要适当的业务伙伴协议(BAA)条款。HHS 云计算指南说明了这些要求如何适用于云服务。评估时应考虑实际服务、数据流和协议。

Gaavala 的后端从不接收会议音频,因此会议中说出的 PHI 从不会存储在 Gaavala 的服务器上。但会议音频仍会被传输到 Gaavala 签约的语音服务商 Soniox,并在那里接受处理,因此 HIPAA 评估必须把这条路径作为 Gaavala 服务的一部分纳入范围——这并不是只存在于你与 Soniox 之间的关系。如果你生成 AI 摘要,它们由 Chrome 内置 AI 在设备端产生——转录文本留在你的机器上,因此摘要功能既不会把 Gaavala 的服务器、也不会把其他供应商带进 PHI 处理链路。

SOC 2 供应商风险

AICPA《信任服务准则》中的 CC9.2 涉及供应商和业务伙伴相关风险的评估与管理。评估取决于已界定的系统、服务和承诺,以及服务商在该范围内承担的角色。

在 Gaavala 的架构中,你的浏览器直接连接 Soniox,但供应商关系经由 Gaavala:Soniox 账户由 Gaavala 持有,因此你的供应商风险登记表把 Soniox 列为 Gaavala 用于语音识别的次级处理方,而不是你自己签约的供应商。直接连接所缩小的,是 Gaavala 自身涉及的范围:我们的服务器处理身份、计费和用量等账户数据,以及 Pro 用户自行录制的声音克隆样本(如有),但不处理会议音频;转录稿和摘要文本从不离开用户的设备,因此我们也不处理。

为什么 Chrome 扩展程序这种形态很重要

上面很多隐私保证,都依赖于 Gaavala 以 Chrome 扩展程序的形态运行,并采用直连供应商的网络模式。我们考虑过、也否决了几种替代方案:

  • 服务端音频中转:实现起来很直接,但那会迫使我们在自己的基础设施上处理每一位客户的音频。这恰恰是我们明确想要避免的。
  • 内嵌 STT 的网页应用:从网页采集标签页音频需要 getDisplayMedia,它每次会话都会向用户弹出一个操作系统级的选择器,并把采集绑定在用户所选的那个标签页上。更糟的是,当用户去操作其他标签页时,网页没有任何可靠办法维持一条后台音频流。
  • 桌面原生应用:能给我们更多控制权,但会增加安装阻力、签名成本和特定操作系统上的开发负担。而且除非格外小心,它仍然消除不了我们作为音频处理方的角色——那意味着我们会把同样的问题重新发明一遍。

Chrome 扩展程序这种形态,独一无二地成全了我们想要的这套隐私架构。tabCapture、offscreen 文档和 Manifest V3 的 service worker 模型合在一起,让扩展程序可以在用户的机器上采集会议音频、通过一条直接连接把它流式传输到语音识别引擎,并维持长会议所需的后台状态——而不必让会议音频经过我们。

我们仍然必须做对的那些事

隐私架构不会止步于“我们不碰会议音频”。还有一些相邻的问题,我们同样认真对待:

  • 临时密钥的铸造:我们铸造的短时效 Soniox 密钥,如果我们的后端为攻击者铸造密钥,就有可能被滥用。我们用你的 JWT 验证每一次请求,对密钥签发做限流,并记录异常。
  • 扩展程序更新:理论上,一个更新后的扩展程序版本可能改变网络模式。我们为清单标注版本,发布更新日志;Chrome Web Store 也会在更新安装之前,把任何新增权限呈现出来。
  • 摘要文本:摘要完全由 Chrome 内置 AI(Gemini Nano)在设备端生成,因此转录稿不会到达我们的后端——在当前架构下这项风险并不存在。如果连本地 AI 处理都超出了某场会议所能承受的范围,摘要功能不用就是了;没有别的东西依赖它。
  • 声音克隆的参考样本(Pro):如果你创建了个人声音克隆,你那段两分钟的样本会以加密形式(AES-256-GCM)存储在 Gaavala 的服务器上,只用于构建你的声音,并可应要求删除——详见隐私政策。
  • 法律请求:我们公开承诺,只对我们确实持有的数据回应法律请求。对于会议音频,这个回答永远是“我们没有它”。

会议翻译工具横向对比

请分别比较音频和转录的接收方、保留时间及访问权限。禁止使用数据训练模型并不自动等于不保留数据。选择服务前,请查看当前隐私条款、次级处理方和删除方式。

否——根据 Zoom 政策,客户内容不用于训练 AI 模型.

隐私是默认项,不是付费档位

Gaavala 的免费档位提供同样的直连 Soniox 架构、同样的说话人分离、同样的 60 语言覆盖。Pro 解锁的是每天 120 分钟、Speak Mode 和声音克隆——不是隐私。我们不认为在意隐私的用户应该为了保护自己的数据而多付钱。

如果你的组织至今没有采用会议翻译工具,原因是合规部门不同意让工具厂商的服务器夹在你的会议和语音识别引擎之间,那么 Gaavala 正是为这种情况而打造的。这条管线的设计意图,是让你的法务、安全和合规团队要审的东西更少,而不是更多。

加入候补名单

一次性免费试用:5 分钟转录,永不重置。无需信用卡。网站上无需注册。


相关文章