Gaavala Toplantı Sesini Nasıl Koruyor: Önce Gizlilik Mimarisi
Her iş gününde milyonlarca profesyonel, hassas bilgilerin konuşulduğu toplantılara katılıyor — birleşme müzakereleri, hasta görüşmeleri, hukuki strateji, çeyreklik finansal ön değerlendirmeler, personel kararları. Bu toplantılar dil sınırlarını aştığında gerçek zamanlı çeviri zorunlu hale geliyor. Ama toplantı çeviri araçlarının çoğu ham sesini bir tedarikçi bulutuna göndermeni gerektiriyor ve tam da hukuk, uyumluluk ve güvenlik ekiplerinin giderek daha az onaylayabildiği türden bir veri maruziyeti yüzeyi yaratıyor.
Gaavala, kendisini ses yolundan tamamen çıkaracak biçimde tasarlandı. Bir toplantıyı Chrome uzantımızla çalıştırdığında sesin Gaavala sunucularından geçmez. Şifreli bir WebSocket üzerinden tarayıcından doğrudan Soniox konuşma tanıma motoruna akar — ve arka ucumuz bunun tek bir baytını bile görmez.
Bu yazı, bunun tam olarak nasıl çalıştığını, hattan hangi verinin geçtiğini ve mimarinin yaygın uyumluluk çerçevelerine nasıl oturduğunu anlatıyor.
Temel Gizlilik İlkesi
SaaS çeviri araçlarının çoğu tanıdık bir veri akışını izler:
- Tarayıcın toplantı sesini yakalar
- Ses, tedarikçinin arka ucuna yüklenir
- Tedarikçinin arka ucu sesi bir konuşma tanıma motoruna aktarır
- Transkriptler tedarikçinin arka ucu üzerinden geri döner
- Tedarikçi sunucuları bu yol boyunca sesi çoğu zaman kaydeder, önbelleğe alır veya saklar
Bu zincirdeki her sıçrama bir güven sınırıdır. Her sıçrama, bir günlükleme hatasının, bir kimlik bilgisi sızıntısının, bir mahkeme celbinin ya da kötü niyetli bir mühendisin toplantı içeriğini açığa çıkarabileceği bir yerdir. Sese ne kadar çok taraf dokunursa, kimsenin onu saklamadığını bir denetçiye kanıtlamak o kadar zorlaşır.
Gaavala aradaki aktarma adımını tümüyle ortadan kaldırır. Veri akışı şudur:
- Tarayıcın toplantı sesini sekmeden yakalar
- Tarayıcın Soniox'a doğrudan bir WebSocket açar
- Ses o WebSocket üzerinden doğrudan akar
- Soniox transkriptleri doğrudan tarayıcına geri gönderir
- Gaavala'nın arka ucu hiçbir zaman devreye girmez
Makinende çalışan Chrome uzantısı, sesine dokunan tek kod parçamızdır — ve o sesi bize göndermez.
Bu Mimariyi Neden Seçtik
Gaavala'yı bir Chrome uzantısı olarak yeniden kurarken bilinçli bir mimari karar verdik: uzantı, kullanıcıların kimliğini arka ucumuz üzerinden doğrulayacak, abonelik durumunu yönetecek ve meta veri sunacaktı — ama ses yolunda asla yer almayacaktı. Gerekçe basitti:
- Uyumluluk yüzeyi: İşlediğimiz her müşteri sesi baytı, DPIA'larda, SOC 2 raporlarında ve BAA müzakerelerinde hesabını vermemiz gereken bir bayttır. Bu yüzeyi sıfırda tutmanın en temiz yolu, sese en baştan hiç dokunmamaktır.
- Güvenlik patlama yarıçapı: Ses işleyen bir sunucudaki ihlal, metin meta verisi işleyen bir sunucudaki ihlalden esas olarak daha kötüdür. En hassas sistemlerimizin en az hassas veriyi işlemesini tercih ederiz.
- Gecikme: Her aktarma sıçraması gidiş-dönüş süresi ekler. Tarayıcıdan Soniox'a doğrudan akış tam bir sıçramayı ortadan kaldırır ve gözle görülür biçimde daha iyi bir altyazı gecikmesi verir.
- Gizlilikle hizalanan maliyetler: Kendi ses aktarıcımızı işletmek, her toplantıda bant genişliği ve işlem gücü için ödeme yapmak demek olurdu. İşletmemek hem para tasarrufu sağlıyor hem de müşterileri koruyor. Teşvikler hizalandığında mimari dürüst kalma eğilimindedir.
Veri Akışı, Adım Adım
Bir toplantıda transkripsiyonu başlattığında gerçekte ne olduğuna bakalım.
Adım 1: Kimlik Doğrulama
Gaavala'ya ilk kez giriş yaptığında uzantı, Chrome'un chrome.identity.launchWebAuthFlow API'siyle Google ya da Microsoft üzerinden bir OAuth Authorization Code akışını tamamlar. Kimlik sağlayıcı tarayıcına bir yetkilendirme kodu döner; uzantı bu kodu arka ucumuzla bir Gaavala oturum JWT'siyle takas eder. Bu JWT chrome.storage.local içinde saklanır ve arka ucumuza yapılan sonraki API çağrılarının kimliğini doğrulamak için kullanılır.
Bunların hiçbiri sesle ilgilenmez. OAuth akışı yalnızca metindir — belirteçler, talepler, profil alanları.
Adım 2: Geçici Soniox Anahtarı
Bir toplantıda "Start"a tıkladığında uzantı, kısa ömürlü bir Soniox geçici anahtarı istemek için arka uç API'mizi çağırır. Bu anahtarın üç önemli özelliği vardır:
- Yalnızca konuşma tanımaya kapsamlandırılmıştır — Soniox API yüzeyindeki başka hiçbir şeye değil
- Günler değil, dakikalar içinde geçerliliğini yitirir
- Oturum başına bir kez verilir ve cihazında kalıcı olarak saklanmaz
Geçici anahtar deseni, gizlilik anlatısının kritik parçasıdır. Gaavala uzantı paketinin içinde uzun ömürlü bir Soniox API anahtarı gönderseydi, herkes onu çıkarabilirdi. Bunun yerine, talep üzerine üretilen, kimliği doğrulanmış oturumuna bağlı ve oturum bittikten kısa süre sonra geçersizleşen tek kullanımlık anahtarlar veriyoruz.
Arka ucumuz bu isteğin yalnızca meta verisini kaydeder — hangi kullanıcı, hangi saat, hangi plan katmanı. Hiçbir ses görmez; çünkü henüz hiçbir ses yakalanmamıştır.
Adım 3: Sekme Sesinin Yakalanması
Microsoft Teams, Zoom, Google Meet ya da Webex görüşmene bir Chrome sekmesinden katılırsın. Gaavala uzantısı yan paneli açar ve ses yakalamayı başlatmanı ister. Onayladığında uzantı, Chrome'un tabCapture API'sini kullanır — açık kullanıcı izniyle ve görünür bir göstergeyle etkin sekmeden ses yakalamaya izin veren, yalnızca uzantılara açık bir API.
Chrome, yakalanan sesi Gaavala'nın arka planda çalıştırdığı bir offscreen belgesine yönlendirir. Offscreen belgesi, uzantının görünür arayüz tutmadan ses işleme yapabilmesi için kullandığı korumalı (sandboxed) bir sayfadır. Gaavala o offscreen belgesinin içinde bir MediaStream açar, bunu bir AudioContexte bağlar ve akışa hazırlar.
Kritik nokta: ses aynı zamanda, sesi hoparlörlerine geri veren yerel bir ses grafiğinden de geçer. Yani Gaavala yakalarken toplantıyı normal şekilde duymaya devam edersin — hiçbir şey susturulmaz veya başka yöne çevrilmez.
Adım 4: Soniox'a Doğrudan WebSocket
Offscreen belgesi ardından doğrudan Soniox'a bir WebSocket bağlantısı açar (wss://stt-rt.soniox.com/...). Bu bağlantı:
- TLS 1.2 veya üstünü kullanır
- Adım 2'deki kısa ömürlü geçici anahtarla kimlik doğrular
- Tarayıcının ağ yığınından çıkar — paketler işletim sisteminden Soniox'a akar, Gaavala'ya değil
Sekmeden yakalanan ses çerçeveleri PCM olarak kodlanır ve WebSocket üzerinden gönderilir. Soniox bunları gerçek zamanlı işler ve transkripsiyon belirteçlerini aynı bağlantı üzerinden geri akıtır. Bu belirteçler — konuşmacı etiketli, zaman damgalı metin parçaları — doğrudan offscreen belgesine ulaşır ve belge bunları görüntülenmek üzere yan panele iletir.
Bu döngünün hiçbir anında bir ses paketi Gaavala tarafından işletilen bir sunucuya ulaşmaz. Bunu Chrome DevTools ile kendin doğrulayabilirsin: Gaavala çalışırken Network sekmesini WS filtresiyle aç; tam olarak bir WebSocket göreceksin — bir soniox.com host'una — ve gaavala.com adresine giden ses içeren sıfır trafik.
Adım 5: Transkriptin Gösterimi ve İsteğe Bağlı Özet
Transkripsiyon belirteçleri üç yüzeyde işlenir: yan panel, toplantı sekmesindeki yüzen katman ve dışa aktarma için kullanılan bellek içi arabellek. Bu yüzeylerin hiçbiri sesi serileştirmez. Yalnızca metinle çalışırlar.
Toplantının sonunda bir AI özeti tetiklediğinde özet, tamamen cihazında, Chrome'un yerleşik AI'ıyla (Gemini Nano) üretilir. Transkript metni makinenden hiç çıkmaz — Gaavala'nın arka ucuna gönderilmez ve herhangi bir üçüncü tarafa da gönderilmez. Toplantı içeriği, ister ses ister metin olsun, Gaavala'nın arka ucundan hiçbir biçimde geçmez; oradan geçen tek şey kimlik doğrulama ve abonelik meta verisi olarak kalır.
Gaavala Sunucuları Hangi Veriyi Görür
Arka ucumuzun tüm özellikler genelinde işlediği verinin tam listesi:
| Veri | Ne zaman | Saklama | Notlar |
|---|---|---|---|
| Gaavala oturum yenileme belirteci | Giriş | Belirtecin ömrü — süresi dolan kayıtlar her gün temizlenir | Google/Microsoft OAuth belirtecin asla saklanmaz |
| Kullanıcı profili (e-posta, ad) | Giriş | Hesap ömrü | Faturalama + destek için |
| Abonelik durumu | Her zaman | Hesap ömrü | Plan katmanı, deneme durumu |
| Geçici Soniox anahtarı istekleri | Oturum başına | Yalnızca istek kaydı | Ses yok |
| Transkripsiyon dakika sayacı | Oturum başına | Hesap ömrü | Aylık dönemlere göre gruplanır, kota uygulaması için |
| Anonim web sitesi analitiği | Yalnızca çerezleri kabul ettikten sonra | Google Analytics'te tutulur, veritabanımızda değil | Yalnızca web sitesi — uzantı, kullanıcı kimliği taşımayan anonim hata sayıları bildirir |
Arka ucumuzun görmediği verinin tam listesi:
- Ham toplantı sesi (herhangi bir biçimde, herhangi bir noktada)
- Sıkıştırılmış ses akışları
- Ses arabellekleri veya ara temsiller
- Ses biyometrisi verisi
- Soniox'un atadığı anonim konuşmacı kimliklerinin ötesinde konuşmacı kimliği
- Transkript metni — özetler cihaz üstünde üretilir; transkriptler makinenden hiç çıkmaz
Bir mahkeme belirli bir toplantının sesini Gaavala'dan celple isteseydi, teknik olarak doğru yanıt bizde olmadığı ve onu getiremeyeceğimiz olurdu. O ses sistemlerimizde hiç var olmadı.
Kendin Denetle
Chrome uzantısı olarak çalışmanın avantajlarından biri, çalışma zamanının tamamının incelenebilir olmasıdır. IT ekibin, bu yazının tek bir kelimesine güvenmeden gizlilik iddialarımızı doğrulayabilir:
Yöntem 1 — Ağ incelemesi. chrome://extensions adresini aç, Gaavala'yı bul, "service worker" ya da "inspect views > background page" öğesine tıkla. DevTools'ta Network sekmesine geç ve WS (WebSocket) ile filtrele. Bir toplantı başlat. Tam olarak bir WebSocket'in açıldığını, bir soniox.com host'una gittiğini göreceksin. gaavala.com adresine hiçbir ses gitmez.
Yöntem 2 — Manifest incelemesi. chrome://extensions içinde Gaavala'nın "Details" bölümünü genişlet ve izinleri gözden geçir. host_permissions, uzantının ulaşabileceği kaynakları tam olarak bildirir. Akış için Soniox uç noktalarını, kimlik doğrulama ve abonelik için Gaavala uç noktalarını göreceksin. Joker karakterli host izni ve bildirilmemiş ağ erişimi yoktur.
Yöntem 3 — Kaynak incelemesi. Uzantı; bir service worker, bir offscreen belgesi, bir yan panel ve content script'lerle birlikte gelir. Chrome bunların tamamını geliştirici araçları üzerinden incelemeye açar. Güvenlik ekibin istediği an background page'e veya offscreen belgesine bağlanıp çalışma zamanı durumunu okuyabilir — ses akışı nesnesinin bizim alan adımıza giden bir fetch ya da XHR'ye asla serileştirilmediğini teyit etmek de buna dahildir.
Manifest'i ve host izinlerini Chrome Web Store listelemesinin parçası olarak yayımlıyoruz ve üçüncü taraf güvenlik incelemesini memnuniyetle karşılıyoruz.
Uyumluluk Eşlemesi
GDPR ve Veri Minimizasyonu
GDPR'nin 5(1)(c) maddesi veri minimizasyonu ilkesini kurar: kişisel veri "yeterli, ilgili ve gerekli olanla sınırlı" olmalıdır. Ses verisi GDPR kapsamında kişisel veridir; kimlik tespiti için kullanılıyorsa biyometrik veridir.
Gaavala'nın mimarisi bu ilkeyle doğrudan hizalanır. Sesi sistemlerimizin tamamen dışında tutarak, işlediğimiz kişisel veriyi bir abonelik işini yürütmek için gereken asgariye indiriyoruz — e-posta, ad, faturalama durumu. DPIA yürüten müşteriler için arka ucumuz ses işleme açısından fiilen şeffaftır: değerlendirilecek bir şey yoktur; çünkü bize hiçbir şey ulaşmaz.
Soniox, uyumluluk zincirindeki ayrı bir işleyicidir. Onların gizlilik duruşunu bağımsız olarak inceleyebilirsin; Soniox, tarayıcının kendisine kurduğu doğrudan bağlantı için geçerli olan veri işleme koşullarını yayımlar.
HIPAA ve PHI İçeren Ses
HIPAA kapsamında, Korunan Sağlık Bilgisi'ni (PHI) işleyen, saklayan veya ileten her tedarikçi bir Business Associate Agreement imzalamak zorundadır. Tıbbi görüşmeler sıklıkla PHI içerir — hasta adları, tanılar, tedavi planları.
Gaavala'nın arka ucu toplantı sesini hiç almadığı için ses hattı Gaavala'nın BAA kapsamının dışındadır. Ses işleme için değerlendireceğin ilişki doğrudan seninle Soniox arasındadır — Gaavala o veri için bir business associate değildir; çünkü veri bize dokunmaz. AI özetleri üretirsen, bunlar Chrome'un yerleşik AI'ıyla cihaz üstünde üretilir — transkript metni makinende kalır; dolayısıyla özet özelliği de Gaavala'yı ya da başka bir tedarikçiyi PHI işleme zincirine sokmaz.
SOC 2 Tedarikçi Riski
SOC 2 denetimleri, kuruluşların veri işleme zincirindeki tüm üçüncü taraf tedarikçileri belgelemesini ve değerlendirmesini gerektirir. Her tedarikçi Sistem Tanımı'na karmaşıklık ekler ve risk değerlendirmenin kapsamını büyütür.
Gaavala'nın mimarisinde Soniox, Gaavala üzerinden değil, doğrudan etkileşimde olduğun bir veri işleyicisidir. Tedarikçi risk kaydın Soniox'u kendi koşullarıyla değerlendirmelidir; birçok güvenlik ekibi bunu bir alt-işleyici ilişkisini değerlendirmekten daha anlaşılır bulur. Gaavala'nın risk kaydındaki kapsamı daha dardır: kimlik ve faturalama yönetiriz — ham ses değil; kullanıcının makinesinden hiç çıkmayan transkript ya da özet metni de değil.
Chrome Uzantısı Biçimi Neden Önemli
Yukarıdaki gizlilik güvencelerinin büyük bölümü, Gaavala'nın sağlayıcıya-doğrudan ağ deseniyle bir Chrome uzantısı olarak çalışmasına dayanır. Birkaç alternatifi değerlendirdik ve reddettik:
- Sunucu tarafı ses aktarıcısı: Uygulaması kolaydır; ama her müşterinin sesini kendi altyapımızda işlemek zorunda kalırdık. Açıkça kaçınmak istediğimiz şey tam olarak buydu.
- Gömülü konuşma tanımalı web uygulaması: Bir web sayfasından sekme sesi yakalamak
getDisplayMediagerektirir; bu da her oturumda kullanıcıya işletim sistemi düzeyinde bir seçici gösterir ve uzantıyı seçtikleri sekmeye bağlar. Daha kötüsü, kullanıcı başka sekmelerle uğraşırken bir web sayfasının arka planda ses akışını sürdürmesinin güvenilir bir yolu yoktur. - Masaüstü yerel uygulaması: Bize daha fazla denetim verirdi; ama kurulum sürtünmesi, imzalama maliyetleri ve işletim sistemine özgü geliştirme yükü eklerdi. Üstelik dikkatli olmadıkça ses işleyici rolümüzü yine de ortadan kaldırmazdı — yani aynı sorunların tamamını yeniden icat ederdik.
Chrome uzantısı biçimi, istediğimiz gizlilik mimarisini benzersiz biçimde mümkün kıldı. tabCapture, offscreen belgeleri ve Manifest V3 service worker modeli birlikte, uzantının sesi tamamen kullanıcının makinesinde işlemesine, dış servislere doğrudan bağlantı açmasına ve uzun toplantılar için gereken arka plan durumunu korumasına izin veriyor — hiçbir şeyi bizim üzerimizden geçirmeden.
Hâlâ Doğru Yapmamız Gereken Şeyler
Gizlilik mimarisi "sese dokunmuyoruz" ile bitmez. Ciddiye aldığımız yan kaygılar da var:
- Geçici anahtar üretimi: Ürettiğimiz kısa ömürlü Soniox anahtarları, arka ucumuz bir saldırgan için anahtar üretirse kötüye kullanılabilir. Her isteği JWT'nle doğruluyoruz, anahtar verilmesini hız sınırına tabi tutuyoruz ve anormallikleri kaydediyoruz.
- Uzantı güncellemeleri: Güncellenen bir uzantı sürümü teorik olarak ağ desenini değiştirebilir. Manifest'i sürümlüyoruz, değişiklik günlükleri yayımlıyoruz ve Chrome Web Store bir güncelleme kurulmadan önce yeni izinleri gösteriyor.
- Özet metni: Özetler tamamen cihazda, Chrome'un yerleşik AI'ıyla (Gemini Nano) üretilir; dolayısıyla transkript arka ucumuza hiç ulaşmaz — bu risk mevcut mimaride yoktur. Belirli bir toplantı için yerel AI işleme bile fazlaysa, özet özelliği hiç kullanılmadan bırakılabilir; başka hiçbir şey ona bağlı değildir.
- Ses klonu referans örneği (Pro): Kişisel bir ses klonu oluşturursan, ~20 saniyelik örneğin Gaavala'nın sunucularında şifreli (AES-256-GCM) saklanır, yalnızca sesini oluşturmak için kullanılır ve talep üzerine silinir — bkz. Gizlilik Politikası.
- Hukuki talepler: Hukuki taleplere yalnızca gerçekten elimizde olan veriler için yanıt vermeyi kamuya taahhüt ediyoruz. Ses için bu her zaman "bizde yok" olacaktır.
Toplantı Çeviri Araçlarıyla Karşılaştırma
Gaavala'nın gizlilik modeli diğer yaygın toplantı çeviri araçlarıyla nasıl karşılaştırılır?
| Özellik | Gaavala | Otter.ai | Zoom AI Companion | Teams Copilot | Interprefy |
|---|---|---|---|---|---|
| Ses tedarikçinin arka ucuna ulaşır | Hayır (doğrudan Soniox'a) | Evet (Otter sunucuları) | Evet (Zoom sunucuları) | Evet (M365 sunucuları) | Evet (platform sunucuları) |
| Toplantı sonrası ses saklanır | Hayır | Evet (varsayılan) | İsteğe bağlı | İsteğe bağlı | Değişir |
| Model eğitiminde kullanılır | Hayır | Devre dışı bırakılabilir | Devre dışı bırakılabilir | Kurumsal kontroller | Bilinmiyor |
| Ağı kendin denetleyebilirsin | Evet (DevTools) | Hayır | Hayır | Hayır | Hayır |
| Uzantı olarak çalışır (denetlenebilir) | Evet | Hayır | Hayır | Hayır | Hayır |
| Teams/Zoom/Meet/Webex'te çalışır | Evet | Kısmen | Hayır | Hayır | Değişir |
Asıl fark yaratan şey şu: o tablonun diğer her satırında, sesin sunucularında nasıl işlendiğine dair tedarikçinin iddialarına güveniyorsun. Gaavala'da ses için güvenilecek bir sunucu yok; çünkü sunucularımızda ses yok. İddia, standart Chrome geliştirici araçlarıyla doğrulanabilir.
Gizlilik Varsayılandır, Ücretli Bir Katman Değil
Gaavala'nın ücretsiz katmanı da aynı doğrudan-Soniox mimarisini, aynı konuşmacı ayrımını, aynı 60 dil kapsamını verir. Pro; günde 120 dakikayı, Speak Mode'u ve ses klonlamayı açar — gizliliği değil. Gizliliğine önem veren kullanıcıların verilerini güvende tutmak için daha fazla ödemesi gerektiğine inanmıyoruz.
Kurumun, uyumluluk birimi bir tedarikçi bulutuna ses göndermeye hayır dediği için toplantı çeviri araçlarını geçmişte reddettiyse, Gaavala tam da bu konuşma için kuruldu. Hat, hukuk, güvenlik ve uyumluluk ekiplerinin inceleyeceği şeyin daha az olması için tasarlandı — daha fazla değil.
Tek seferlik ücretsiz deneme: 5 dakika transkripsiyon, asla sıfırlanmaz. Kart gerekmez. Web sitesinde kayıt yok.