Como o Gaavala Protege o Áudio das Suas Reuniões: Uma Arquitetura com Privacidade em Primeiro Lugar
Todo dia útil, milhões de profissionais entram em reuniões em que se discutem informações sensíveis — negociações de fusão, consultas médicas, estratégia jurídica, prévias de resultados trimestrais, decisões de pessoal. Quando essas reuniões atravessam barreiras de idioma, a tradução em tempo real vira algo essencial. Mas a maioria das ferramentas de tradução de reuniões exige enviar o seu áudio bruto para a nuvem de um fornecedor, criando exatamente o tipo de superfície de exposição de dados que times jurídicos, de conformidade e de segurança cada vez menos conseguem aprovar.
O Gaavala foi arquitetado para se retirar por completo do caminho do áudio. Quando você conduz uma reunião pela nossa extensão do Chrome, o seu áudio não passa pelos servidores do Gaavala. Ele é transmitido diretamente do seu navegador para o motor de fala para texto Soniox, por um WebSocket criptografado — e o nosso backend nunca vê um único byte dele.
Este artigo percorre exatamente como isso funciona, quais dados atravessam a rede e como a arquitetura se encaixa nos frameworks de conformidade mais comuns.
O Princípio Central de Privacidade
A maioria das ferramentas SaaS de tradução segue um fluxo de dados familiar:
- O seu navegador captura o áudio da reunião
- O áudio é enviado para o backend do fornecedor
- O backend do fornecedor repassa o áudio a um motor de fala para texto
- As transcrições voltam pelo backend do fornecedor
- Os servidores do fornecedor frequentemente registram, armazenam em cache ou retêm o áudio pelo caminho
Cada salto dessa cadeia é uma fronteira de confiança. Cada salto é um lugar onde um bug de log, um vazamento de credencial, uma intimação judicial ou um engenheiro mal-intencionado poderia expor o conteúdo da sua reunião. Quanto mais partes tocam o áudio, mais difícil fica provar a um auditor que ninguém o reteve.
O Gaavala elimina completamente a etapa de repasse. O fluxo de dados é:
- O seu navegador captura o áudio da reunião a partir da aba
- O seu navegador abre um WebSocket direto para o Soniox
- O áudio é transmitido diretamente por esse WebSocket
- O Soniox devolve as transcrições diretamente ao seu navegador
- O backend do Gaavala nunca é envolvido
A extensão do Chrome rodando na sua máquina é a única parte do nosso código que chega a tocar o seu áudio — e ela não envia esse áudio para nós.
Por Que Escolhemos Esta Arquitetura
Quando reconstruímos o Gaavala como extensão do Chrome, tomamos uma decisão arquitetural deliberada: a extensão autenticaria usuários pelo nosso backend, gerenciaria o estado da assinatura e serviria metadados — mas nunca estaria no caminho do áudio. O raciocínio era direto:
- Superfície de conformidade: cada byte de áudio de cliente que processamos é um byte que precisamos justificar em DPIAs, relatórios SOC 2 e negociações de BAA. A forma mais limpa de manter essa superfície em zero é nunca tocar o áudio, para começo de conversa.
- Raio de impacto de segurança: uma violação em um servidor que processa áudio é fundamentalmente pior do que uma violação em um servidor que processa metadados de texto. Preferimos que os nossos sistemas mais sensíveis lidem com os dados menos sensíveis.
- Latência: cada salto de repasse adiciona tempo de ida e volta. O streaming direto do navegador para o Soniox elimina um salto inteiro, o que nos dá uma latência de legendas visivelmente melhor.
- Custos que se alinham com a privacidade: operar o nosso próprio repasse de áudio significaria pagar banda e computação em cada reunião. Não operar um economiza dinheiro e protege os clientes. Quando os incentivos se alinham, a arquitetura tende a permanecer honesta.
O Fluxo de Dados em Detalhe
Vamos ver o que de fato acontece quando você inicia a transcrição em uma reunião.
Passo 1: Autenticação
Quando você entra no Gaavala pela primeira vez, a extensão usa a API chrome.identity.launchWebAuthFlow do Chrome para completar um fluxo OAuth de Authorization Code com Google ou Microsoft. O provedor de identidade devolve um código de autorização ao seu navegador, que a extensão troca com o nosso backend por um JWT de sessão do Gaavala. Esse JWT fica em chrome.storage.local e é usado para autenticar as chamadas seguintes à nossa API.
Nada disso lida com áudio. O fluxo OAuth é somente texto — tokens, claims, campos de perfil.
Passo 2: Chave Temporária do Soniox
Quando você clica em "Start" (Iniciar) em uma reunião, a extensão chama a API do nosso backend para solicitar uma chave temporária do Soniox, de curta duração. Essa chave tem três propriedades importantes:
- Ela é restrita apenas a fala para texto — nada mais na superfície da API do Soniox
- Ela expira em minutos, não em dias
- Ela é emitida uma vez por sessão e não é persistida no seu dispositivo
O padrão de chave temporária é central para a história de privacidade. Se o Gaavala embarcasse uma chave de API do Soniox de longa duração dentro do pacote da extensão, qualquer pessoa poderia extraí-la. Em vez disso, emitimos chaves descartáveis, geradas sob demanda, vinculadas à sua sessão autenticada e invalidadas pouco depois do fim da sessão.
O nosso backend registra apenas os metadados dessa requisição — qual usuário, em que horário, em qual plano. Ele não vê áudio nenhum, porque nenhum áudio foi capturado ainda.
Passo 3: Captura do Áudio da Aba
Você entra na sua chamada do Microsoft Teams, Zoom, Google Meet ou Webex em uma aba do Chrome. A extensão do Gaavala abre o painel lateral e pede que você inicie a captura de áudio. Quando você confirma, a extensão usa a API tabCapture do Chrome — uma API exclusiva de extensões que permite capturar o áudio da aba ativa com permissão explícita do usuário e um indicador visível.
O Chrome encaminha o áudio capturado para um documento offscreen que o Gaavala mantém em segundo plano. O documento offscreen é uma página isolada que a extensão pode usar para processar áudio sem manter interface visível por perto. Dentro desse documento offscreen, o Gaavala abre um MediaStream, conecta-o a um AudioContext e o prepara para o streaming.
Um ponto crucial: o áudio também passa por um grafo de áudio local que devolve o som aos seus alto-falantes. Isso significa que você continua ouvindo a reunião normalmente enquanto o Gaavala a captura — nada é silenciado nem redirecionado.
Passo 4: WebSocket Direto para o Soniox
O documento offscreen então abre uma conexão WebSocket diretamente com o Soniox (wss://stt-rt.soniox.com/...). Essa conexão:
- Usa TLS 1.2 ou superior
- É autenticada com a chave temporária de curta duração do Passo 2
- Origina-se da pilha de rede do seu navegador — os pacotes fluem do seu sistema operacional para o Soniox, não para o Gaavala
Os quadros de áudio capturados da aba são codificados como PCM e enviados pelo WebSocket. O Soniox os processa em tempo real e devolve tokens de transcrição pela mesma conexão. Esses tokens — fragmentos de texto com marcação de tempo e etiquetas de falante — chegam diretamente ao documento offscreen, que os encaminha ao painel lateral para exibição.
Em nenhum momento desse ciclo inteiro um pacote de áudio chega a um servidor operado pelo Gaavala. Você mesmo pode verificar isso com o Chrome DevTools: abra a aba Network com o filtro WS ativo enquanto o Gaavala estiver rodando, e você verá exatamente um WebSocket — para um host soniox.com — e zero tráfego de saída para gaavala.com contendo áudio.
Passo 5: Exibição da Transcrição e Resumo Opcional
Os tokens de transcrição são renderizados em três superfícies: o painel lateral, um overlay flutuante na aba da reunião e o buffer em memória usado para exportação. Nenhuma dessas superfícies serializa áudio. Elas lidam apenas com texto.
Quando você aciona um resumo de IA ao fim de uma reunião, o resumo é gerado inteiramente no seu dispositivo pela IA integrada do Chrome (Gemini Nano). O texto da transcrição nunca sai da sua máquina — ele não é enviado ao backend do Gaavala e não é enviado a nenhum terceiro. O conteúdo da reunião, seja áudio ou texto, nunca atravessa o backend do Gaavala; a única coisa que atravessa continua sendo metadados de autenticação e de assinatura.
Quais Dados os Servidores do Gaavala Veem
Esta é a lista exata dos dados que o nosso backend manipula, em todos os recursos:
| Dado | Quando | Retenção | Observações |
|---|---|---|---|
| Refresh token de sessão do Gaavala | No login | Tempo de vida do token — registros expirados são removidos diariamente | O seu token OAuth do Google/Microsoft nunca é armazenado |
| Perfil do usuário (e-mail, nome) | No login | Tempo de vida da conta | Para cobrança + suporte |
| Status da assinatura | Sempre | Tempo de vida da conta | Plano, estado do teste |
| Requisições de chave temporária do Soniox | Por sessão | Apenas log da requisição | Sem áudio |
| Contador de minutos de transcrição | Por sessão | Tempo de vida da conta | Agrupado por mês, para aplicação da cota |
| Analytics anônimo do site | Somente depois de você aceitar os cookies | Fica no Google Analytics, não no nosso banco de dados | Apenas no site — a extensão reporta contagens anônimas de erros que não carregam nenhum ID de usuário |
E esta é a lista exata dos dados que o nosso backend não vê:
- Áudio bruto da reunião (em qualquer formato, em qualquer momento)
- Streams de áudio comprimidos
- Buffers de áudio ou representações intermediárias
- Dados biométricos de voz
- Identidade de falante além dos IDs anônimos de falante que o Soniox atribui
- Texto da transcrição — os resumos são gerados no dispositivo; as transcrições nunca saem da sua máquina
Se um tribunal intimasse o Gaavala a entregar o áudio de uma reunião específica, a resposta tecnicamente verdadeira seria que não o temos e não conseguimos recuperá-lo. Ele nunca existiu nos nossos sistemas.
Audite Você Mesmo
Uma das vantagens de rodar como extensão do Chrome é que todo o runtime é inspecionável. A sua equipe de TI pode verificar as nossas afirmações de privacidade sem acreditar em uma única palavra deste artigo:
Método 1 — Inspeção de rede. Abra chrome://extensions, encontre o Gaavala e clique em "service worker" ou em "inspect views > background page". No DevTools, vá até a aba Network e filtre por WS (WebSocket). Inicie uma reunião. Você verá exatamente um WebSocket aberto, para um host soniox.com. Nenhum áudio vai para gaavala.com.
Método 2 — Inspeção do manifesto. Em chrome://extensions, expanda "Details" (Detalhes) no Gaavala e revise as permissões. As host_permissions declaram exatamente quais origens a extensão consegue alcançar. Você verá endpoints do Soniox para streaming e endpoints do Gaavala para autenticação e assinatura. Não há permissão de host com curinga nem acesso de rede não declarado.
Método 3 — Inspeção do código. A extensão é distribuída com um service worker, um documento offscreen, o painel lateral e content scripts. O Chrome expõe todos eles para inspeção pelas ferramentas de desenvolvedor. A sua equipe de segurança pode se conectar à background page ou ao documento offscreen a qualquer momento e ler o estado do runtime — inclusive confirmar que o objeto do stream de áudio nunca é serializado em um fetch ou XHR em direção ao nosso domínio.
Publicamos o manifesto e as permissões de host como parte da ficha na Chrome Web Store, e recebemos bem revisões de segurança de terceiros.
Mapeamento de Conformidade
GDPR e Minimização de Dados
O Artigo 5(1)(c) do GDPR estabelece o princípio da minimização de dados: dados pessoais devem ser "adequados, pertinentes e limitados ao necessário". Dados de voz são dados pessoais sob o GDPR, e dados biométricos quando usados para identificação.
A arquitetura do Gaavala se alinha diretamente a esse princípio. Ao manter o áudio inteiramente fora dos nossos sistemas, minimizamos os dados pessoais que processamos ao mínimo absoluto necessário para operar um negócio de assinatura — e-mail, nome, estado de cobrança. Para clientes que conduzem DPIAs, o nosso backend é efetivamente transparente quanto ao processamento de áudio: não há nada a avaliar, porque nada chega até nós.
O Soniox é um processador separado na sua cadeia de conformidade. Você pode analisar a postura de privacidade dele de forma independente, e o Soniox publica termos de processamento de dados que se aplicam à conexão direta que o seu navegador estabelece com ele.
HIPAA e Áudio Contendo PHI
Sob a HIPAA, qualquer fornecedor que processe, armazene ou transmita Informações de Saúde Protegidas (PHI) precisa assinar um Business Associate Agreement. Consultas médicas frequentemente contêm PHI — nomes de pacientes, diagnósticos, planos de tratamento.
Como o backend do Gaavala nunca recebe o áudio da reunião, o pipeline de áudio fica fora do escopo do BAA do Gaavala. A relação que você avalia para o processamento de áudio é entre você e o Soniox diretamente — o Gaavala não é business associate para esses dados, porque esses dados não nos tocam. Se você gerar resumos de IA, eles são produzidos no dispositivo pela IA integrada do Chrome — o texto da transcrição fica na sua máquina, então o recurso de resumo também não traz o Gaavala nem nenhum fornecedor adicional para a cadeia de processamento de PHI.
Risco de Fornecedor em SOC 2
Auditorias SOC 2 exigem que as organizações documentem e avaliem todos os fornecedores terceiros na sua cadeia de processamento de dados. Cada fornecedor adiciona complexidade à sua System Description e amplia o escopo da sua avaliação de risco.
Na arquitetura do Gaavala, o Soniox é um processador de dados com quem você interage diretamente, não através do Gaavala. O seu registro de risco de fornecedores deve avaliar o Soniox pelos próprios termos dele, o que muitas equipes de segurança consideram mais simples do que avaliar uma relação de subprocessador. O escopo do Gaavala no seu registro de risco é mais estreito: cuidamos de identidade e cobrança — não de áudio bruto, e não do texto da transcrição ou do resumo, que nunca sai da máquina do usuário.
Por Que o Formato de Extensão do Chrome Importa
Boa parte das garantias de privacidade acima depende de o Gaavala rodar como extensão do Chrome, com um padrão de rede direto para o provedor. Consideramos, e rejeitamos, várias alternativas:
- Repasse de áudio no servidor: simples de implementar, mas nos obrigaria a lidar com o áudio de cada cliente na nossa própria infraestrutura. Foi exatamente o que quisemos evitar.
- Aplicativo web com STT embutido: capturar o áudio da aba a partir de uma página web exige
getDisplayMedia, que apresenta ao usuário um seletor no nível do sistema operacional a cada sessão e prende a captura à aba escolhida. Pior: não há forma confiável de uma página web manter um stream de áudio em segundo plano enquanto o usuário interage com outras abas. - Aplicativo nativo de desktop: nos daria mais controle, mas adicionaria atrito de instalação, custos de assinatura digital e a carga de desenvolvimento específico por sistema operacional. E ainda assim não eliminaria o nosso papel de processador de áudio, a menos que fôssemos cuidadosos — o que significa reinventar todos os mesmos problemas.
O formato de extensão do Chrome foi o único que viabilizou a arquitetura de privacidade que queríamos. tabCapture, documentos offscreen e o modelo de service worker do Manifest V3, em conjunto, permitem que a extensão lide com o áudio inteiramente na máquina do usuário, abra conexões diretas com serviços externos e mantenha o estado em segundo plano necessário para reuniões longas — sem rotear nada por nós.
O Que Ainda Precisamos Acertar
Arquitetura de privacidade não termina em "não tocamos no áudio". Há preocupações adjacentes que também levamos a sério:
- Emissão de chaves temporárias: as chaves Soniox de curta duração que emitimos poderiam ser abusadas se o nosso backend as emitisse para um atacante. Autenticamos cada requisição com o seu JWT, limitamos a taxa de emissão de chaves e registramos anomalias.
- Atualizações da extensão: uma versão atualizada da extensão poderia, em tese, mudar o padrão de rede. Versionamos o manifesto, publicamos changelogs, e a Chrome Web Store exibe qualquer permissão nova antes de a atualização ser instalada.
- Texto do resumo: os resumos são gerados inteiramente no dispositivo pela IA integrada do Chrome (Gemini Nano), então a transcrição nunca chega ao nosso backend — esse risco não existe na arquitetura atual. Se até o processamento local de IA for demais para uma reunião específica, basta não usar o recurso de resumo; nada mais depende dele.
- Amostra de referência do clone de voz (Pro): se você criar um clone pessoal da sua voz, a sua amostra de ~20 segundos é armazenada criptografada (AES-256-GCM) nos servidores do Gaavala, usada apenas para construir a sua voz e apagada mediante solicitação — veja a Política de Privacidade.
- Solicitações judiciais: nos comprometemos publicamente a responder a solicitações judiciais apenas quanto a dados que de fato possuímos. Para áudio, a resposta será sempre "nós não o temos".
Comparação Entre Ferramentas de Tradução de Reuniões
Como o modelo de privacidade do Gaavala se compara ao de outras ferramentas comuns de tradução de reuniões?
| Recurso | Gaavala | Otter.ai | Zoom AI Companion | Teams Copilot | Interprefy |
|---|---|---|---|---|---|
| O áudio chega ao backend do fornecedor | Não (direto para o Soniox) | Sim (servidores do Otter) | Sim (servidores do Zoom) | Sim (servidores do M365) | Sim (servidores da plataforma) |
| Áudio retido após a reunião | Não | Sim (padrão) | Opcional | Opcional | Varia |
| Usado para treinar modelos | Não | Com opção de desativar | Com opção de desativar | Controles corporativos | Desconhecido |
| Você mesmo pode auditar a rede | Sim (DevTools) | Não | Não | Não | Não |
| Roda como extensão (auditável) | Sim | Não | Não | Não | Não |
| Funciona em Teams/Zoom/Meet/Webex | Sim | Parcial | Não | Não | Varia |
O diferencial que importa: em todas as outras linhas dessa tabela, você está confiando nas afirmações do fornecedor sobre como o áudio é tratado nos servidores dele. Com o Gaavala, não há servidores em que confiar quanto ao áudio, porque não existe áudio nos nossos servidores. A afirmação é verificável com as ferramentas padrão de desenvolvedor do Chrome.
Privacidade É o Padrão, Não um Plano Pago
O plano gratuito do Gaavala entrega a mesma arquitetura direta para o Soniox, a mesma diarização de falantes, a mesma cobertura de 60 idiomas. O Pro libera 120 minutos por dia, o Speak Mode e a clonagem de voz — não privacidade. Não acreditamos que usuários preocupados com privacidade devam pagar mais para manter os próprios dados seguros.
Se a sua organização historicamente rejeitou ferramentas de tradução de reuniões porque a área de conformidade disse não ao envio de áudio para a nuvem de um fornecedor, o Gaavala foi construído para essa conversa. O pipeline foi desenhado para que as suas equipes jurídica, de segurança e de conformidade tenham menos coisas a revisar — não mais.
Adicione o Gaavala ao Chrome →
Teste grátis único: 5 minutos de transcrição, nunca renova. Sem cartão de crédito. Sem cadastro no site.