Sta vooraan wanneer Gaavala in de Chrome Web Store verschijnt. Op de wachtlijst
Hoe Gaavala je vergaderaudio beschermt: een privacy-first architectuur
Vergaderaudio gaat via een versleutelde verbinding rechtstreeks van je browser naar Soniox. De backend van Gaavala regelt aanmelding, abonnement en gebruik; hij ontvangt geen vergaderaudio.

Het kernprincipe van de privacy
De meeste SaaS-vertaaltools volgen een bekende gegevensstroom:
- Je browser legt vergaderaudio vast
- De audio wordt geüpload naar de backend van de leverancier
- De backend van de leverancier proxyt de audio door naar een speech-to-text-engine
- Transcripten komen terug via de backend van de leverancier
- Servers van de leverancier loggen, cachen of bewaren de audio onderweg vaak
Elke hop in die keten is een vertrouwensgrens. Elke hop is een plek waar een logbug, een gelekte credential, een dagvaarding of een kwaadwillende engineer de inhoud van je vergadering kan blootleggen. Hoe meer partijen de audio aanraken, hoe moeilijker het is om aan een auditor te bewijzen dat niemand die heeft bewaard.
Gaavala schrapt de proxystap volledig. De gegevensstroom is:
- Je browser legt vergaderaudio vast vanuit het tabblad
- Je browser opent een directe WebSocket naar Soniox
- De audio streamt rechtstreeks over die WebSocket
- Soniox stuurt transcripten rechtstreeks terug naar je browser
- De backend van Gaavala komt er nooit aan te pas
De Chrome-extensie die op jouw machine draait is het enige stuk van onze code dat je vergaderaudio ooit aanraakt — en die stuurt de audio niet naar ons.
Waarom we voor deze architectuur kozen
Toen we Gaavala als Chrome-extensie herbouwden, namen we een bewuste architectuurbeslissing: de extensie zou gebruikers via onze backend authenticeren, de abonnementsstatus beheren en metadata leveren — maar ze zou nooit in het audiopad zitten. De redenering was rechttoe rechtaan:
- Rechtstreekse audiotransmissie naar Soniox vermindert het aantal technische tussenstappen, maar maakt de verplichtingen voor gegevensbescherming niet nul. Beoordeel Gaavala en zijn subverwerker Soniox samen, inclusief doel, bewaartermijnen en toepasselijke overeenkomsten. Deze architectuur bewijst op zichzelf geen HIPAA- of SOC 2-conformiteit.
- Blast radius bij een inbreuk: Een inbreuk op een server die audio verwerkt is fundamenteel erger dan een inbreuk op een server die tekstmetadata verwerkt. We hebben liever dat onze gevoeligste systemen de minst gevoelige data behandelen.
- Latency: Elke proxyhop voegt round-trip-tijd toe. Rechtstreeks streamen van browser naar Soniox schrapt een volledige hop, wat ons merkbaar betere ondertitellatency geeft.
- Kosten die met privacy meebewegen: Een eigen audioproxy draaien zou betekenen dat we bij elke vergadering voor bandbreedte en compute betalen. Die niet draaien bespaart geld en beschermt klanten. Wanneer prikkels op één lijn liggen, blijft de architectuur meestal eerlijk.
De gegevensstroom in detail
Laten we kijken naar wat er daadwerkelijk gebeurt wanneer je in een vergadering de transcriptie start.
Stap 1: Authenticatie
Wanneer je voor het eerst bij Gaavala inlogt, gebruikt de extensie de chrome.identity.launchWebAuthFlow API van Chrome om een OAuth Authorization Code-flow met Google of Microsoft af te ronden. De identityprovider geeft een authorization code terug aan je browser, die de extensie bij onze backend inwisselt voor een Gaavala-sessie-JWT. Die JWT wordt opgeslagen in chrome.storage.local en wordt gebruikt om volgende API-aanroepen naar onze backend te authenticeren.
Hier komt geen audio aan te pas. De OAuth-flow is puur tekst — tokens, claims, profielvelden.
Stap 2: Tijdelijke Soniox-sleutel
Wanneer je in een vergadering op "Start" klikt, roept de extensie onze backend-API aan om een kortlevende tijdelijke Soniox-sleutel op te vragen. Die sleutel heeft drie belangrijke eigenschappen:
- Hij is beperkt tot speech-to-text — verder niets in het API-oppervlak van Soniox
- Hij verloopt in minuten, niet in dagen
- Hij wordt één keer per sessie uitgegeven en wordt niet op je apparaat bewaard
Het patroon met tijdelijke sleutels is cruciaal voor het privacyverhaal. Als Gaavala een langlevende Soniox-API-sleutel in de extensiebundel zou meeleveren, kon iedereen die eruit halen. In plaats daarvan geven we wegwerpsleutels uit die op aanvraag worden aangemaakt, gebonden zijn aan je geauthenticeerde sessie, en kort na het einde van de sessie ongeldig worden.
Onze backend logt alleen de metadata van dat verzoek — welke gebruiker, welk tijdstip, welk abonnementsniveau. Ze ziet geen audio, omdat er nog geen audio is vastgelegd.
Stap 3: Tabbladaudio vastleggen
Je neemt in een Chrome-tabblad deel aan je gesprek in Microsoft Teams, Zoom, Google Meet of Webex. De Gaavala-extensie opent het zijpaneel en vraagt je om het vastleggen van audio te starten. Bevestig je dat, dan gebruikt de extensie de tabCapture API van Chrome — een API die alleen voor extensies bestaat en waarmee audio van het actieve tabblad kan worden vastgelegd met expliciete toestemming van de gebruiker en een zichtbare indicator.
Chrome routeert de vastgelegde audio naar een offscreen-document dat Gaavala op de achtergrond draait. Het offscreen-document is een sandboxed pagina die de extensie kan gebruiken om audioverwerking af te handelen zonder zichtbare UI aan te houden. Binnen dat offscreen-document opent Gaavala een MediaStream, verbindt die met een AudioContext en maakt hem klaar om te streamen.
Cruciaal is dat de audio ook door een lokale audiograaf loopt die het geluid terugvoert naar je speakers. Dat betekent dat je de vergadering gewoon kunt blijven horen terwijl Gaavala haar vastlegt — er wordt niets gedempt of omgeleid.
Stap 4: Directe WebSocket naar Soniox
Het offscreen-document opent vervolgens een WebSocket-verbinding rechtstreeks naar Soniox. Die verbinding:
- Gebruikt TLS 1.2 of hoger
- Wordt geauthenticeerd met de kortlevende tijdelijke sleutel uit stap 2
- Vertrekt vanuit de netwerkstack van je browser — pakketten stromen van je besturingssysteem naar Soniox, niet naar Gaavala
De uit het tabblad vastgelegde audioframes worden als PCM gecodeerd en over de WebSocket verstuurd. Soniox verwerkt ze in realtime en streamt transcriptietokens over dezelfde verbinding terug. Die tokens — tekstfragmenten met tijdstempel en sprekerlabel — komen rechtstreeks binnen in het offscreen-document, dat ze doorgeeft aan het zijpaneel om te tonen.
Op geen enkel moment in deze hele lus bereikt een pakket met vergaderaudio een server van Gaavala. Je kunt dit zelf verifiëren met Chrome DevTools: open het Network-tabblad met het WS-filter aan terwijl Gaavala draait, en je ziet precies één WebSocket — naar een soniox.com-host — en nul uitgaand verkeer naar gaavala.com met vergaderaudio erin.
Stap 5: Weergave van het transcript en optionele samenvatting
Transcripties worden op je apparaat bewaard in de lokale database van de extensie en na 7 dagen automatisch verwijderd. Exports die je zelf downloadt blijven onder jouw beheer. AI-samenvattingen worden op het apparaat gemaakt. De servers van Gaavala ontvangen de transcripties niet; die lokale opslag is wel relevant bij het delen of opruimen van een apparaat.
Wil je antwoorden zonder zelf te spreken, bekijk dan de gids voor toegankelijke vergaderingen.
Welke data de servers van Gaavala zien
Dit zijn de belangrijkste soorten data die onze backend verwerkt, over alle functies heen:
| Data | Wanneer | Bewaartermijn | Opmerkingen |
|---|---|---|---|
| Gaavala-sessie-refresh-token | Bij inloggen | Levensduur van het token — verlopen rijen worden dagelijks opgeruimd | Je Google/Microsoft-OAuth-token wordt nooit opgeslagen |
| Gebruikersprofiel (e-mail, naam) | Bij inloggen | Levensduur van het account | Voor facturering + support |
| Abonnementsstatus | Altijd | Levensduur van het account | Abonnementsniveau, status van de proefperiode |
| Betalingsgegevens (Pro) | Wanneer je betaalt | Zo lang als de belastingwet vereist, ook nadat je je account verwijdert | Bedrag, belasting, valuta, land, datum en betaalmethode, zoals onze betaalpartner ze doorgeeft; je kaartgegevens blijven bij de betaalpartner |
| Aanvragen van een tijdelijke Soniox-sleutel | Per sessie | Alleen in het verzoeklog | Geen audio |
| Teller van transcriptieminuten | Per sessie | Levensduur van het account | Gebundeld per maand, voor het handhaven van het quotum |
| Referentiesample voor de stemkloon (Pro) | Alleen als je er een opneemt | Tot je je stem of je account verwijdert | Versleuteld (AES-256-GCM), alleen gebruikt om je stem te bouwen; geen vergaderaudio |
| Meldingen van technische problemen | Alleen als je er een verstuurt | 180 dagen | Diagnosegegevens die je bewust verstuurt; transcripttekst is uitgesloten |
| Interfacetaal | Telkens als je de extensie ingelogd gebruikt | Levensduur van het account | Zodat onze e-mails je in je eigen taal bereiken |
| E-mailadres op de wachtlijst (website) | Alleen als je je aanmeldt voor de wachtlijst | Tot je ons vraagt het te wissen | Met de taal van de pagina en de campagnebron; alleen gebruikt om het adres te bevestigen en de lancering aan te kondigen |
| Anonieme website-analytics | Alleen nadat je cookies accepteert | Bewaard door Google Analytics, niet in onze database | Alleen de website — de extensie rapporteert anonieme fouttellingen die geen gebruikers-ID bevatten |
Dit is de exacte lijst van data die onze backend niet ziet:
- Ruwe vergaderaudio (in welk formaat en op welk moment dan ook)
- Gecomprimeerde streams met vergaderaudio
- Buffers of tussenliggende representaties van vergaderaudio
- Biometrische stemdata uit je vergaderingen (de enige stemopname die we bewaren is de Pro-referentiesample voor de stemkloon hierboven, en alleen als je die opneemt)
- Sprekeridentiteit voorbij de anonieme spreker-ID's die Soniox toekent
- Transcripttekst — samenvattingen worden on-device gegenereerd; transcripten verlaten je machine nooit
Zou een rechter Gaavala dagvaarden voor de audio van een specifieke vergadering, dan is het technisch waarheidsgetrouwe antwoord dat we die niet hebben en niet kunnen achterhalen. Ze heeft nooit op onze systemen bestaan.
De opname- en verwijderstappen staan in stemklonen in je eigen stem.
Controleer het zelf
Een van de voordelen van draaien als Chrome-extensie is dat de volledige runtime inspecteerbaar is. Je IT-team kan onze privacyclaims verifiëren zonder ook maar één woord van deze post te geloven:
Methode 1 — Netwerkinspectie. Open chrome://extensions, zoek Gaavala en klik op "service worker" of "inspect views > background page". Ga in DevTools naar het Network-tabblad en filter op WS (WebSocket). Start een vergadering. Je ziet precies één geopende WebSocket, naar een soniox.com-host. Er gaat geen vergaderaudio naar gaavala.com.
Methode 2 — Manifestinspectie. Klap in chrome://extensions "Details" open bij Gaavala en bekijk de machtigingen. De host_permissions declareren precies welke origins de extensie kan bereiken. Je ziet Soniox-endpoints voor het streamen en Gaavala-endpoints voor auth en abonnement. Er is geen wildcard-hostmachtiging en geen ongedeclareerde netwerktoegang.
Methode 3 — Broninspectie. De extensie wordt geleverd met een service worker, een offscreen-document, een zijpaneel en content scripts. Chrome stelt die allemaal beschikbaar voor inspectie via de developer tools. Je securityteam kan zich op elk moment aan de background page of het offscreen-document hangen en de runtime-status lezen — inclusief de bevestiging dat het audiostream-object nooit wordt geserialiseerd naar een fetch of XHR richting ons domein.
We publiceren het manifest en de hostmachtigingen als onderdeel van onze Chrome Web Store-vermelding, en we verwelkomen securityonderzoek door derden.
Compliance-mapping
GDPR en dataminimalisatie
Artikel 5(1)(c) van de GDPR legt het principe van dataminimalisatie vast: persoonsgegevens moeten "toereikend, ter zake dienend en beperkt tot wat noodzakelijk is" zijn. Stemdata zijn persoonsgegevens onder de GDPR, en biometrische gegevens wanneer ze voor identificatie worden gebruikt.
De gegevensstroom beperkt welke inhoud de backend ontvangt. Een DPIA moet desondanks de volledige dienst, de lokale geschiedenis, optionele stemopnamen en Soniox als subverwerker omvatten.
Soniox zit wel in je compliance-keten, als de spraakdienstverlener die Gaavala inschakelt: Gaavala is houder van het Soniox-account en geeft de kortlevende sleutel uit waarmee je browser verbinding maakt, en ons privacybeleid noemt Soniox onder de derde partijen met wie we gegevens delen. Een DPIA omvat Soniox daarom als onderdeel van de dienst van Gaavala, niet als een leverancier met wie je zelf een contract sluit.
HIPAA en audio met PHI
Volgens de HHS-richtlijnen over business associates kan een aanbieder die elektronische beschermde gezondheidsinformatie (ePHI) verwerkt namens een onder HIPAA vallende organisatie of een andere business associate, zelf een business associate zijn. Als die relatie van toepassing is, zijn passende BAA-bepalingen vereist. De HHS-richtlijnen voor clouddiensten lichten de toepassing op clouddiensten toe. Beoordeel de feitelijke dienst, gegevensstromen en overeenkomsten.
De backend van Gaavala ontvangt nooit vergaderaudio, dus PHI die in een vergadering wordt uitgesproken, wordt nooit op de servers van Gaavala opgeslagen. De vergaderaudio wordt wel naar Soniox verzonden, de spraakdienstverlener die Gaavala inschakelt, en daar verwerkt, dus een HIPAA-beoordeling moet dat pad meenemen als onderdeel van de dienst van Gaavala — het is geen relatie tussen alleen jou en Soniox. Genereer je AI-samenvattingen, dan worden die on-device geproduceerd door de ingebouwde AI van Chrome — de transcripttekst blijft op je machine, dus de samenvattingsfunctie voegt noch de servers van Gaavala noch een andere leverancier toe aan de PHI-verwerkingsketen.
SOC 2-leveranciersrisico
CC9.2 van de AICPA Trust Services Criteria gaat over het beoordelen en beheersen van risico's rond leveranciers en zakelijke partners. De beoordeling hangt af van het afgebakende systeem, de diensten en toezeggingen, en van de rol van de aanbieder binnen die scope.
In de architectuur van Gaavala maakt je browser rechtstreeks verbinding met Soniox, maar de leveranciersrelatie loopt via Gaavala: Gaavala is houder van het Soniox-account, dus je leveranciersrisicoregister vermeldt Soniox als subverwerker van Gaavala voor spraakherkenning, niet als een leverancier met wie je zelf een contract sluit. Wat de directe verbinding verkleint, is de eigen voetafdruk van Gaavala: onze servers verwerken accountgegevens zoals identiteit, facturering en gebruik, plus het Pro-referentiesample voor de stemkloon als er een is opgenomen — geen vergaderaudio, en geen transcript- of samenvattingstekst, want die verlaat de machine van de gebruiker nooit.
Waarom de vorm van een Chrome-extensie uitmaakt
Veel van de bovenstaande privacygaranties hangen ervan af dat Gaavala draait als Chrome-extensie met een netwerkpatroon dat rechtstreeks naar de provider gaat. We hebben verschillende alternatieven overwogen en verworpen:
- Server-side audioproxy: Eenvoudig te implementeren, maar het zou ons dwingen de audio van elke klant op onze eigen infrastructuur te verwerken. Precies wat we expliciet wilden vermijden.
- Webapp met ingebouwde STT: Tabbladaudio vastleggen vanuit een webpagina vereist
getDisplayMedia, dat de gebruiker elke sessie een kiezer op OS-niveau voorschotelt en de extensie vastpint op het tabblad dat die kiest. Erger nog: er is geen betrouwbare manier voor een webpagina om een audiostream op de achtergrond aan te houden terwijl de gebruiker met andere tabbladen bezig is. - Native desktopapp: Zou ons meer controle geven, maar installatiefrictie, ondertekeningskosten en OS-specifieke ontwikkellast toevoegen. En het zou onze rol als audioverwerker nog steeds niet wegnemen tenzij we heel zorgvuldig waren — wat betekent dat we alle dezelfde problemen opnieuw zouden uitvinden.
De vorm van een Chrome-extensie maakte de privacyarchitectuur die we wilden als enige mogelijk. tabCapture, offscreen-documenten en het service-workermodel van Manifest V3 laten de extensie samen vergaderaudio op de machine van de gebruiker vastleggen en via een directe verbinding naar de speech-to-text-engine streamen, en de achtergrondstatus bijhouden die lange vergaderingen nodig hebben — zonder dat er vergaderaudio via ons loopt.
De dingen die we nog steeds goed moeten doen
Privacyarchitectuur eindigt niet bij "we raken geen vergaderaudio aan". Er zijn aangrenzende zorgen die we net zo serieus nemen:
- Het aanmaken van tijdelijke sleutels: De kortlevende Soniox-sleutels die we aanmaken zouden misbruikt kunnen worden als onze backend sleutels voor een aanvaller aanmaakt. We authenticeren elk verzoek met je JWT, we rate limiten de uitgifte van sleutels, en we loggen afwijkingen.
- Extensie-updates: Een bijgewerkte extensieversie zou in theorie het netwerkpatroon kunnen veranderen. We versioneren het manifest, we publiceren changelogs, en de Chrome Web Store toont nieuwe machtigingen voordat een update wordt geïnstalleerd.
- Samenvattingstekst: Samenvattingen worden volledig on-device gegenereerd door de ingebouwde AI van Chrome (Gemini Nano), waardoor het transcript onze backend nooit bereikt — dit risico bestaat in de huidige architectuur niet. Is zelfs lokale AI-verwerking meer dan een bepaalde vergadering kan verdragen, dan kan de samenvattingsfunctie simpelweg ongebruikt blijven; niets anders hangt ervan af.
- Referentiesample voor de stemkloon (Pro): maak je een persoonlijke stemkloon, dan wordt je sample van twee minuten versleuteld opgeslagen (AES-256-GCM) op de servers van Gaavala, alleen gebruikt om je stem te bouwen, en op verzoek verwijderd — zie het privacybeleid.
- Juridische verzoeken: We verbinden ons er publiekelijk toe alleen te reageren op juridische verzoeken voor data die we daadwerkelijk hebben. Voor vergaderaudio zal dat altijd "die hebben we niet" zijn.
Vergeleken met andere vergadervertaaltools
Vergelijk afzonderlijk waar audio en transcripties naartoe gaan, hoelang ze worden bewaard en wie ze kan openen. Een verbod op modeltraining betekent niet automatisch dat niets wordt opgeslagen. Controleer voor je gekozen dienst de actuele privacyvoorwaarden, subverwerkers en verwijdermogelijkheden.
Nee — volgens het beleid van Zoom wordt klantinhoud niet gebruikt om AI-modellen te trainen.
Privacy is de standaard, geen betaald niveau
De gratis versie van Gaavala geeft je dezelfde rechtstreeks-naar-Soniox-architectuur, dezelfde speaker diarization en dezelfde dekking van 60 talen. Pro ontgrendelt 120 minuten per dag, Speak Mode en stemklonen — geen privacy. Wij vinden niet dat privacybewuste gebruikers meer zouden moeten betalen om hun data veilig te houden.
Heeft je organisatie vergadervertaaltools tot nu toe afgewezen omdat compliance geen servers van een toolaanbieder tussen je vergaderingen en de speech-to-text-engine wilde, dan is Gaavala precies voor die situatie gemaakt. De pijplijn is zo ontworpen dat je juridische, security- en complianceteams minder te beoordelen hebben — niet meer.
Eenmalige gratis proefperiode: 5 minuten transcriptie, wordt nooit gereset. Geen creditcard. Geen registratie op de website.