Blog/Publicado: Atualizado:

Seja o primeiro da fila quando o Gaavala chegar à Chrome Web Store. Entrar na lista de espera

Como o Gaavala Protege o Áudio das Suas Reuniões: Uma Arquitetura com Privacidade em Primeiro Lugar

Gaavala envia o áudio ao vivo do navegador diretamente ao Soniox para transcrição e tradução. O backend processa contas, assinaturas e outros dados declarados, mas não retransmite esse áudio. O histórico das transcrições permanece sete dias no seu dispositivo. Este guia explica os fluxos separados e como inspecioná-los.

O áudio da reunião vai do navegador → Soniox. Nossos servidores não estão no caminho.
O áudio da reunião sai do navegador para o Soniox — nenhum servidor Gaavala no caminho

O Princípio Central de Privacidade

A maioria das ferramentas SaaS de tradução segue um fluxo de dados familiar:

  1. O seu navegador captura o áudio da reunião
  2. O áudio é enviado para o backend do fornecedor
  3. O backend do fornecedor repassa o áudio a um motor de fala para texto
  4. As transcrições voltam pelo backend do fornecedor
  5. 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 é:

  1. O seu navegador captura o áudio da reunião a partir da aba
  2. O seu navegador abre um WebSocket direto para o Soniox
  3. O áudio é transmitido diretamente por esse WebSocket
  4. O Soniox devolve as transcrições diretamente ao seu navegador
  5. 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 áudio da sua reunião — 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:

  • Manter o áudio fora do backend do Gaavala reduz um caminho de processamento; não elimina a necessidade de avaliar o serviço, o Soniox, as permissões do navegador e as transcrições locais. Os fluxos de conta, cobrança, amostra de voz e diagnóstico também precisam ser considerados.
  • 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. 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 da reunião 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 da reunião.

Passo 5: Exibição da Transcrição e Resumo Opcional

As legendas aparecem no painel lateral e na sobreposição da reunião. O histórico também fica sete dias no banco de dados local da extensão no seu dispositivo, com exportação e exclusão. É armazenamento de texto local, não gravação de áudio nem arquivo na nuvem.

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; o que atravessa está listado na próxima seção.

Quais Dados os Servidores do Gaavala Veem

Estes são os principais tipos de dados que o nosso backend trata, em todos os recursos:

DadoQuandoRetençãoObservações
Refresh token de sessão do GaavalaNo loginTempo de vida do token — registros expirados são removidos diariamenteO seu token OAuth do Google/Microsoft nunca é armazenado
Perfil do usuário (e-mail, nome)No loginTempo de vida da contaPara cobrança + suporte
Status da assinaturaSempreTempo de vida da contaPlano, estado do teste
Registros de pagamento (Pro)Quando você pagaPelo tempo que a lei fiscal exigir, mesmo depois que você apagar a sua contaValor, imposto, moeda, país, data e forma de pagamento, conforme informados pelo nosso parceiro de pagamentos; os dados do seu cartão ficam com o parceiro de pagamentos
Requisições de chave temporária do SonioxPor sessãoApenas log da requisiçãoSem áudio
Contador de minutos de transcriçãoPor sessãoTempo de vida da contaAgrupado por mês, para aplicação da cota
Amostra de referência do clone de voz (Pro)Somente se você gravar umaAté você apagar a sua voz ou a sua contaCriptografada (AES-256-GCM), usada apenas para construir a sua voz; não é áudio de reunião
Relatórios de problemas técnicosSomente quando você enviar um180 diasDiagnósticos que você escolhe enviar; o texto da transcrição fica de fora
Idioma da interfaceSempre que você usa a extensão com a sessão iniciadaTempo de vida da contaPara que nossos e-mails cheguem a você no seu idioma
E-mail da lista de espera (site)Somente se você entrar na lista de esperaAté você nos pedir para apagá-loCom o idioma da página e a origem da campanha; usado apenas para confirmar o endereço e anunciar o lançamento
Analytics anônimo do siteSomente depois de você aceitar os cookiesFica no Google Analytics, não no nosso banco de dadosApenas 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 comprimidos de áudio da reunião
  • Buffers de áudio da reunião ou representações intermediárias
  • Dados biométricos de voz das suas reuniões (a única gravação de voz que guardamos é a amostra do clone de voz do Pro citada acima, e só se você a gravar)
  • 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.

Em chamadas recorrentes com clientes, seu próprio clone de voz pode dar ao Speak Mode uma voz familiar; o guia explica a gravação e a exclusão.

Para controles e limites de respostas apenas por texto, veja o guia de acessibilidade.

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 da reunião 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 análise de minimização deve distinguir áudio enviado ao Soniox, dados de conta e amostra vocal opcional tratados pelo Gaavala e texto no dispositivo. Esses fluxos continuam na avaliação mesmo sem um intermediário de áudio.

O Soniox continua na sua cadeia de conformidade, como o fornecedor de serviços de voz que o Gaavala contrata: o Gaavala mantém a conta no Soniox e emite a chave de curta duração com que o seu navegador se conecta, e a nossa Política de Privacidade cita o Soniox entre os terceiros com quem compartilhamos dados. Por isso, uma DPIA abrange o Soniox como parte do serviço do Gaavala, não como um fornecedor que você mesmo contrata.

HIPAA e Áudio Contendo PHI

Segundo as orientações do HHS sobre business associates, um fornecedor que trata informações de saúde protegidas em formato eletrônico (ePHI) em nome de uma entidade sujeita à HIPAA ou de outro business associate pode se enquadrar nessa categoria. Quando essa relação se aplica, são necessárias cláusulas BAA adequadas. As orientações do HHS sobre nuvem explicam a aplicação aos serviços de nuvem. Avalie o serviço efetivo, os fluxos de dados e os acordos.

O backend do Gaavala nunca recebe o áudio da reunião, portanto as PHI faladas em uma reunião nunca ficam armazenadas nos servidores do Gaavala. Ainda assim, o áudio da reunião é transmitido ao Soniox e processado lá, pelo fornecedor de serviços de voz que o Gaavala contrata; por isso, uma avaliação de HIPAA precisa cobrir esse caminho como parte do serviço do Gaavala — não se trata de uma relação apenas entre você e o Soniox. 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 não acrescenta à cadeia de processamento de PHI nem os servidores do Gaavala nem outro fornecedor.

Risco de Fornecedor em SOC 2

O critério CC9.2 dos Trust Services Criteria da AICPA trata da avaliação e gestão dos riscos associados a fornecedores e parceiros comerciais. A avaliação depende do sistema, dos serviços e dos compromissos definidos, além do papel do fornecedor nesse escopo.

Na arquitetura do Gaavala, o seu navegador se conecta diretamente ao Soniox, mas a relação com o fornecedor passa pelo Gaavala: o Gaavala mantém a conta no Soniox, por isso o seu registro de risco de fornecedores lista o Soniox como subprocessador do Gaavala para reconhecimento de voz, não como um fornecedor que você mesmo contrata. O que a conexão direta reduz é a pegada do próprio Gaavala: os nossos servidores cuidam de dados da conta, como identidade, cobrança e uso, além da amostra do clone de voz de um usuário Pro, se ele gravar uma — não do áudio das reuniões, 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 capture o áudio da reunião na máquina do usuário, transmita-o por uma conexão direta ao motor de fala para texto e mantenha o estado em segundo plano necessário para reuniões longas — sem passar o áudio da reunião pelos nossos servidores.

O Que Ainda Precisamos Acertar

Arquitetura de privacidade não termina em "não tocamos no áudio das reuniões". 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 dois minutos é 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 o áudio das reuniões, a resposta será sempre "nós não o temos".

Comparação Entre Ferramentas de Tradução de Reuniões

Compare separadamente quem recebe o áudio, onde e por quanto tempo guarda o texto e se o usa para treinar modelos. Gaavala envia áudio ao Soniox e mantém o histórico local por sete dias; isso não define a política de outros produtos.

O Zoom declara que não usa as comunicações de clientes para treinar modelos de IA próprios ou de terceiros. Confira separadamente a retenção, os recursos ativos e as configurações da organização: treinamento e armazenamento são questões diferentes.

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 até agora a sua organização recusou ferramentas de tradução de reuniões porque a área de conformidade vetou servidores do fornecedor da ferramenta entre as suas reuniões e o motor de fala para texto, o Gaavala foi feito exatamente para esse caso. 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.

Entrar na lista de espera

Teste grátis único: 5 minutos de transcrição, nunca renova. Sem cartão de crédito. Sem cadastro no site.


Artigos Relacionados