Gizlilik
Gizlilik Politikası
Kısaca
- Hesap yok. E-posta, telefon numarası ya da şifre istemeyiz.
- Uygulamada reklam, analitik ya da izleme kütüphanesi yok. Tek istisna: Android’de cihazda çeviri yapan Google ML Kit, Google’a teknik kullanım ölçümleri gönderebilir (bkz. 4. bölüm). Bu sitede çerez ve analitik yok.
- Verilerin cihazında durur ve geliştiriciye gönderilmez. Android uygulamasının verisi Android’in bulut yedeğine de girmez. Web sürümünde verilerin bu tarayıcıda, SpeakSmith’e ait adlarla saklanır (bkz. 7. bölüm).
- Android’de Ders Masası’nın sesi ve karaokede söyleyişin telefonda işlenir, hiçbir sunucuya gitmez. Web sürümünde karaokede ve konuşma pratiklerinde sesi tarayıcının konuşma tanıması işler (bkz. Mikrofon).
- Bazı özellikler üçüncü taraf servislere bağlanır (YouTube, şarkı sözü, sözlük, çeviri, sesli okuma, model indirme ve kendi anahtarını eklersen bulut AI). Hangisinin neyi gönderdiği aşağıda tek tek yazıyor.
1. Kapsam ve tanımlar
Bu politika SpeakSmith’in Android uygulamasını, bu sitede “Tarayıcıda dene” ile açılan web sürümünü ve bu tanıtım sitesini kapsar. “Biz”, SpeakSmith’in geliştiricisini; “cihaz”, uygulamayı kullandığın telefonu ya da tarayıcıyı anlatır. “Üçüncü taraf servis”, SpeakSmith’in bir özelliği çalıştırmak için bağlandığı, bizim işletmediğimiz servistir.
SpeakSmith’in sunucusu yoktur. Uygulama senin verini bize göndermez; bu yüzden aşağıda “gönderilir” dediğimiz her şey, adı geçen üçüncü taraf servise gider, bize değil.
2. Cihazında saklananlar
Aşağıdakiler yalnızca cihazında, uygulamanın kendi depolama alanında tutulur. Web sürümünde aynı veriler bu tarayıcının yerel deposunda (localStorage ve IndexedDB), SpeakSmith’e ait adlarla durur. Bu depo, geliştiricinin aynı adreste (mehmetyasinuzun.github.io) yayımlanan diğer web uygulamalarıyla ortaktır; bunun ne anlama geldiği 7. bölümde.
| Veri | Ne zaman oluşur | Not |
|---|---|---|
| Profil: ad (isteğe bağlı), seviye, ilgi alanları, arayüz dili, tema | İlk açılışta ve ayarlarda | Ad yalnızca ekranda kullanılır, hiçbir servise gönderilmez. |
| Kelimeler, tekrar geçmişi, ilerleme, XP, seri, rozetler | Kullandıkça | Uygulamanın veritabanında. |
| Sohbet, essay, shadowing ve karaoke denemeleri, gramer hataları, video analizleri | Bu özellikleri kullandıkça | Geçmişini görmen ve tekrar etmen için. Video Analizi 0.8.0’da Pratik menüsünden kaldırıldı; daha önce kaydettiğin analizler cihazında kalır ve açılmaya devam eder. |
| Dersler: ders adı, terim sözlüğü, yazıya dökülen metin, çeviriler, işaretler, ders notu | Ders Masası’nı kullandıkça | Metin her 30 saniyelik parçada diske yazılır. |
| Ders sesi | Yalnızca “Sesi de kaydet” açıksa | Sıkıştırılmış (32 kbps; 90 dakika yaklaşık 21 MB). Kapalıyken ses yalnızca uygulama kapanırsa dersi kurtarmak için geçici tutulur ve ders bitince silinir. |
| Şarkılar: şarkı bilgisi, sözler, dosyadan eklediğin ses | Şarkı eklediğinde | Katalog yalnızca şarkı adı, sanatçı, seviye ve hız içerir; sözler ve ses uygulamayla gelmez. |
| Bulut AI anahtarları ve isteğe bağlı Hugging Face erişim anahtarı | Kendin eklediğinde | Android’de Android Keystore destekli şifreli ayarlarda. Web’de tarayıcının yerel deposunda (speaksmith_secure adıyla) şifrelenir, ama şifreyi çözen anahtar da aynı tarayıcı deposunda durur: bu tarayıcıya erişebilen biri ya da aynı adreste çalışan bir sayfa anahtarını okuyabilir (bkz. 7. bölüm). Yedeğe girmez. |
| İndirilen modeller: Whisper konuşma modeli, Türkçe çeviri paketi, cihazda AI modeli | Whisper ve AI modeli yalnızca kendin indirdiğinde; Türkçe çeviri paketi (Android) cihazda çeviri ilk kez gerektiğinde | Yedeğe girmez. “Tüm verileri sil” modelleri silmez: Whisper ve cihazda AI modelini Android’de Ayarlar’daki “Konuşma Tanıma Modeli (Whisper)” ve “Cihazda AI” ekranlarından tek tek silersin; uygulamayı kaldırınca hepsi silinir. Cihazda AI koçu isteğe bağlıdır ve kendiliğinden inmez: ana sayfadaki “Koçunu indir (Wi-Fi’da)” kartı model sayfasını açar, indirmeyi orada sen başlatırsın. Web’de tarayıcıda çalışan bir AI modeli seçersen modelin dosyaları tarayıcının önbelleğinde kalır (bkz. 10. bölüm). |
| Ayarlar, hatırlatma saatleri | Ayarları değiştirdiğinde | Hatırlatmalar cihazda planlanan yerel bildirimlerdir. |
Android uygulamasında uygulama verisi Android’in bulut yedeğine ve cihazdan cihaza aktarıma kapalıdır. Telefon değiştirirken verini uygulamanın kendi yedek dosyasıyla taşırsın (bkz. Yedek dosyası).
3. Mikrofon
Mikrofon yalnızca sen bir özelliği başlattığında açılır. Hangi özelliğin sesi nerede işlediği:
- Ders Masası (Android): Ses telefondaki Whisper modeliyle yazıya dökülür. Model bir kez indikten sonra internet gerekmez ve ses hiçbir sunucuya gitmez. Telefon kilitliyken kaydın sürmesi için Android görünür bir bildirim gösterir.
- Karaoke puanı ve satır çalışması (Android): Söyleyişin telefondaki Whisper modeliyle karşılaştırılır; kayıt telefondan çıkmaz. “Kendini dinle” için satır kaydı da cihazda kalır.
- Shadowing, sunum, doğaçlama, söyleyerek kelime tekrarı, mikrofon testi ve web sürümünde karaoke: Cihazın konuşma tanıma servisi kullanılır. Android’de bu, sistemin konuşma tanıma hizmetidir (çoğu cihazda Google’ın). Cihazda İngilizce çevrimdışı konuşma paketi yoksa bu hizmet sesini işlemek için kendi sunucularına gönderebilir; bu işleme o hizmetin sağlayıcısının koşulları uygulanır. Web sürümünde konuşmayı tarayıcı tanır; Chrome ve Edge sesi bunun için kendi sunucularına gönderebilir. Web’de karaokede hoparlörden gelen şarkı sesi de tanımaya karışabileceği için, kulaklık taktığını onaylamadıkça puan bir tahmin olarak gösterilir.
- Shadowing, sunum, doğaçlama ve söyleyerek kelime tekrarında telefon kilitlenince, başka bir uygulamaya geçince (web’de sekme gizlenince) ya da üste bir pencere açılınca mikrofon hemen kapanır. Sonra kendiliğinden yeniden açılmaz; kaldığın yerden devam etmek için sen dokunursun.
- Doğaçlamada sesli mod: Mikrofonu “Hazırım” ile sen açarsın. Ekran öndeyken, partnerin cevabı bitince mikrofon bir sonraki cevabın için kendiliğinden yeniden açılır; oturumdan çıkınca kapanır.
Ders kaydetmeden önce hocandan ve okulundan izin almak senin sorumluluğundadır.
Sesli okuma (metinden sese): Uygulama cümleleri, kelimeleri ve AI partnerinin cevaplarını cihazın metin okuma hizmetiyle sesli okur: Android’de telefonun metin okuma motoru (çoğu cihazda Google’ın), web’de tarayıcının sesleri. Okunan metin bazen senin içeriğinden türetilir: doğaçlamada partnerin sana verdiği cevap, sunumda koçun senin konuşmana göre yazdığı örnek açılış ve kapanış cümleleri, shadowing’de senin kelimelerinle üretilen cümleler. Ses kaydedilmez ama okunan metin, seçilen sese göre sağlayıcıya gidebilir; ayrıntı 4. bölümde.
4. İnternete çıkan istekler
Aşağıdaki servisler yalnızca ilgili özelliği kullandığında çağrılır. Her istekte servis, bağlantının gereği olarak cihazının IP adresini görür; servisler bunu kendi gizlilik politikalarına göre işler.
| Servis | Ne zaman | Ne gönderilir |
|---|---|---|
YouTubewww.youtube.com, youtube-nocookie.com, i.ytimg.com | Karaoke kataloğunu açtığında (her şarkı kartının küçük resmi i.ytimg.com’dan yüklenir), YouTube şarkısı eklediğinde, katalogdan bir şarkı açtığında ya da bir YouTube şarkısını veya kayıtlı bir video analizini oynattığında. Android’de ayrıca YouTube dersi eklediğinde (paylaşılan bir YouTube linkini “Ders olarak izle” ile açtığında da). | Video kimliği. Video bilgisi, altyazı ve küçük resim alınır. Android’de YouTube şarkısı eklerken sesi de indirmeyi seçersen (bu anahtar varsayılan olarak kapalıdır; YouTube buna genelde izin vermez) videonun sesi indirilmeye çalışılır. Video, YouTube’un gizlilik geliştirilmiş (nocookie) gömülü oynatıcısında oynar; oynatırken YouTube kendi koşullarına göre veri işler. |
Herkese açık Invidious sunucularıyewtu.be, inv.nadeko.net, invidious.private.coffee, invidious.lunivers.trade, invidious.fdn.fr, invidious.protokolla.fi, iv.duti.dev | Web sürümünde: bir YouTube şarkısı eklenirken (katalogdan bir şarkıyı ilk açtığında da) video bilgisi (başlık, süre) önce bu sunuculardan istenir. Android’de: YouTube video bilgisini ya da istenen sesi vermezse yedek olarak. | Video kimliği. Android’de ses gerekiyorsa ses dosyası da bu sunuculardan iner. |
LRCLIBlrclib.net | Şarkı eklerken ya da katalogdan bir şarkı hazırlanırken | Şarkı adı ve sanatçı. |
Sözlükapi.dictionaryapi.dev | Kelime eklerken ya da kelimeye bakarken (roleplay sohbetinde bir kelimeye dokununca da) | Kelimenin kendisi. |
MyMemory çeviriapi.mymemory.translated.net | Kelime eklerken, metinden kelime çıkarırken, karaokede ve roleplay sohbetinde bir kelimenin anlamına bakarken; web sürümünde “Otomatik” çeviri yolunda ve bulut AI yokken ders ve şarkı satırları için | Çevrilecek kelime ya da cümle. İsteğe, her kullanıcıda aynı olan sabit bir adres parametresi eklenir; seni tanımlamaz. |
Datamuseapi.datamuse.com | Kelime eklerken seviye tahmini için | Kelimenin kendisi. |
| Google ML Kit (Android) | Türkçe çeviri paketi indiğinde (cihazda çeviri ilk kez gerektiğinde; yaklaşık 30 MB, bir kez) ve cihazda çeviri kullanıldığında | Paket Google’dan iner; çeviri cihazda yapılır, çevrilen metin telefondan çıkmaz. ML Kit uygulamanın içinde gelir ve Google’ın ML Kit koşullarına göre API’nin kullanımı ve performansıyla ilgili teknik ölçümleri Google’a gönderebilir; bunun için Google’ın veri aktarım bileşeni uygulamaya dahildir. |
| Sesli okuma (metinden sese) Android’in metin okuma motoru, tarayıcının sesleri | Bir cümleyi, kelimeyi ya da AI partnerinin cevabını sesli okuttuğunda | Okunan metin. Seçilen ses çevrimiçi bir ses ise metin o sesin sağlayıcısına gider ve orada sese çevrilir. Uygulama en doğal sesi kendisi seçer ve bu çoğu zaman çevrimiçi bir sestir: Edge’de “Microsoft … Online (Natural)” sesleri (Microsoft), Chrome’da cihazda daha doğal bir ses yoksa “Google US English” (Google); Android’de ağ gerektiren Google sesleri de seçilebilir. Ayarlar › Ses › AI sesi’nden başka bir ses seçebilirsin. |
Hugging Facehuggingface.co | Whisper modelini ya da cihazda AI modelini (koç) sen indirdiğinde; kendiliğinden indirme yapılmaz | Modelin dosya isteği. Kilitli modeller için kendin eklediğin erişim anahtarı (isteğe bağlı). |
| Bulut AI sağlayıcıları | Yalnızca kendi anahtarını ekleyip bir bulut sağlayıcı seçersen | Bkz. Bulut AI ve anahtarların. |
GitHubraw.githubusercontent.com, github.com | GitHub’dan indirilen Android (APK) sürümü açılışta ve Ayarlar’dan güncelleme denetlediğinde; güncellemeyi kabul edersen | SpeakSmith-App deposundaki herkese açık sürüm bilgisi dosyası okunur; kabul edersen yeni APK SpeakSmith-App’in GitHub Releases sayfasından iner. Kimlik ya da cihaz bilgisi gönderilmez. Ayrıntı 6. bölümde. |
5. Bulut AI ve anahtarların
AI koçu isteğe bağlıdır. Telefondaki bir modeli seçersen sohbet, essay ve koçluk telefonda işlenir ve internete gitmez. Kendi API anahtarınla bir bulut sağlayıcı seçersen, ilgili özelliği kullandığında gereken metin yalnızca o sağlayıcıya gönderilir:
- Sağlayıcılar: OpenAI (
api.openai.com), Anthropic Claude (api.anthropic.com), Google Gemini (generativelanguage.googleapis.com), OpenRouter (openrouter.ai), DeepSeek (api.deepseek.com) ya da kendin girdiğin OpenAI uyumlu bir adres. - Giden metin özelliğe göre değişir: sohbet ve roleplay mesajların, doğaçlama ve sunumda konuşmanın yazıya dökülmüş hâli, essay’in, ders metni ve karaoke şarkı satırları (ders çevirisi “Otomatik” (varsayılan) ya da “Bulut AI” iken bir bulut sağlayıcı seçiliyse çeviri için; özetli ders notu için de ders metni), kelime önerisi için yapıştırdığın metin, örnek cümle ve senaryo için kelimelerin, kişisel alıştırma için gramer hataların. Bazı isteklere seviyen ve ilgi alanların eklenir. Adın gönderilmez.
- Anahtarın yalnızca cihazında saklanır (Android’de şifreli; web’deki durum ve sınırları için bkz. 7. bölüm), yalnızca ait olduğu sağlayıcıya gönderilir ve yedek dosyasına girmez.
- Kullanım ücretini ve verinin nasıl işlendiğini sağlayıcının kendi koşulları belirler.
- OpenAI Whisper: Dosyadan şarkı eklerken söz kaynağı olarak “AI ile transcript (Whisper)”ı seçersen ve telefonda Whisper modeli yoksa (web sürümünde her zaman), OpenAI anahtarın kayıtlıysa şarkı dosyası (en fazla 25 MB) yazıya dökülmek için OpenAI’ye yüklenir. Android’de telefonda Whisper modeli varsa ses telefondan çıkmaz.
6. Güncelleme ve hata raporlama
Güncelleme denetimi: GitHub’dan indirilen Android (APK) sürümü, açılışta ve Ayarlar’dan denetlediğinde yeni bir sürüm olup olmadığını herkese açık SpeakSmith-App deposundaki sürüm bilgisi dosyasından okur (raw.githubusercontent.com/). Bu istekle kimlik ya da cihaz bilgisi gönderilmez; GitHub, her bağlantıda olduğu gibi yalnızca IP adresini görür. Güncellemeyi kabul edersen yeni APK SpeakSmith-App’in GitHub Releases sayfasından indirilir, dosyanın SHA-256 özeti denetlenir ve kurulumu sen onaylarsın. Web sürümü güncelleme denetimi yapmaz; sayfayı açtığında GitHub Pages’teki güncel sürüm yüklenir.
Otomatik hata raporu yok: Uygulamada hataları GitHub Issues’a kendiliğinden bildirebilen bir bileşen vardır, ama yalnızca derleme sırasında bir erişim anahtarı verilirse çalışır. Yayımlanan derlemelerde bu anahtar yoktur; bu yüzden uygulama kendiliğinden hata raporu göndermez. Hatalar yalnızca cihazındaki yerel kayda yazılır.
“GitHub’da bildir” düğmesi: Öğrencilere gösterilmez. Yalnızca Ayarlar’daki “Geliştirici tanılama” seçeneğini açarsan (varsayılan olarak kapalıdır) bazı hata mesajlarında görünür. Dokunursan tarayıcında, herkese açık SpeakSmith-App deposunda önceden doldurulmuş bir hata kaydı (issue) sayfası açılır. Sayfada şunlar yazar: hata türü ve mesajı (içeriğin ayıklanmış hâli), yığın izi, saat, uygulama sürümü, dil ayarı, Android’de cihaz üreticisi, modeli ve kod adı, Android sürümü, işlemci mimarisi ve emülatör olup olmadığı ile son uygulama içi eylemlerin adları. Kelime, essay, sohbet ve ders içeriği eklenmez; anahtar ve şifre benzeri değerler ayıklanır. Sayfada sen gönder demedikçe hiçbir şey gönderilmez; göndermeden önce metni okuyup istemediğin her şeyi silebilirsin. Gönderirsen kayıt herkese açık olur ve GitHub hesabınla görünür.
7. Web sürümüne özel notlar
- Verin nerede durur: Web sürümünün verisi bu tarayıcının yerel deposunda kalır; başka tarayıcıya ya da cihaza geçmez (taşımak için yedek dosyası al). SpeakSmith verisini kendine ait adlarla yazar: ayarlar, kelimeler ve ilerleme
speaksmith.önekli anahtarlarda, API anahtarlarıspeaksmith_securealtında, eklediğin şarkı dosyaları, dersler ve video analizleri SpeakSmith’in kendi IndexedDB veritabanlarında. Yedek alırken ve “Tüm verileri sil”de uygulama yalnızca bunlara dokunur. - Aynı adresteki diğer uygulamalar: Tarayıcılar yerel depoyu sayfaya göre değil site adresine göre ayırır. Web sürümü
mehmetyasinuzun.github.ioadresinde çalışır ve bu adreste geliştiricinin başka web uygulamaları da (ör. SevimliPati) yayımlanır. Uygulamadaki “Tüm verileri sil” yalnızca SpeakSmith’in verisini siler. Tarayıcı ayarlarından bu adresin site verisini temizlersen ise SpeakSmith’le birlikte aynı adresteki her uygulamanın verisi silinir. - Web’de API anahtarları: Kaydettiğin anahtarlar şifrelenir, ama şifreyi çözen anahtar da aynı tarayıcı deposunda durur. Bu yüzden bu tarayıcıya erişebilen biri ya da aynı adreste çalışan bir sayfa onları okuyabilir. Web’de bulut AI kullanacaksan sağlayıcında harcama sınırı koyduğun ayrı bir anahtar kullan ve ortak kullanılan bir bilgisayarda anahtar kaydetme.
- Sayfa açılırken tarayıcıda AI çalıştırmayı sağlayan WebLLM modülü jsDelivr’den (
esm.runvecdn.jsdelivr.net) yüklenir; jsDelivr bu istekte IP adresini ve tarayıcı bilgisini görür. Tarayıcıda bir AI modeli seçersen model dosyaları WebLLM kataloğundaki adreslerden (şu an Hugging Face ve GitHub) iner ve tarayıcının önbelleğinde kalır. - Web sürümü uygulamanın yazı tiplerini kendisiyle getirir; yazı tipinde olmayan karakterler (ör. emoji ve bazı simgeler) için Flutter motoru Google Fonts’tan (
fonts.gstatic.com) yedek yazı tipi indirir. Bu, ilk ekranda da olabilir. - Web’de cihazda çeviri yoktur. Ders çevirisinde “Telefonda” seçiliyse web’de çeviri kapalı kalır; “Otomatik” seçiliyse ve bulut AI yoksa satırlar MyMemory’ye gönderilir.
- Ders Masası ve Whisper Android’e özeldir; web sürümünde mikrofonu yalnızca tarayıcının konuşma tanıması kullanır.
8. Hesap, reklam, analitik
SpeakSmith hesap açtırmaz, oturum açtırmaz ve seni tanımlayan bir kimlik oluşturmaz. Uygulamada reklam, analitik, izleme ya da pazarlama kütüphanesi yoktur; uygulama içi satın alma yoktur. Kullanım alışkanlıkların, ilerlemen ya da içeriğin hakkında bize hiçbir istatistik gönderilmez. Tek istisna Google’ın kendi bileşenidir: Android’de cihazda çeviri yapan ML Kit, 4. bölümde yazdığı gibi Google’a teknik kullanım ölçümleri gönderebilir; bu ölçümler bize gelmez.
9. Yedek dosyası
Ayarlar › Veri Yönetimi’nden aldığın yedek, nereye kaydedileceğini senin seçtiğin tek bir JSON dosyasıdır. İçinde kelimelerin, ders metinlerin, ilerlemen, profilin ve ayarların bulunur. Ses dosyaları, indirilen modeller ve API anahtarları yedeğe girmez. Web sürümünde yedek yalnızca SpeakSmith’in kendi verisini içerir; aynı adresteki diğer uygulamaların verisi yedeğe girmez. Yedek dosyası şifreli değildir; onu kimle paylaştığına ve nerede sakladığına sen karar verirsin.
10. Verilerini silmek
- Tek tek: kelimeleri, dersleri, şarkıları ve geçmişi uygulamanın ilgili ekranlarından silebilirsin. Bir dersi silmek onun ses kaydını da siler.
- Hepsini: Ayarlar › Veri Yönetimi › “Tüm verileri sil”. Bu işlem veritabanını, dersleri ve ses kayıtlarını, şarkı dosyalarını, ayarları ve kayıtlı API anahtarlarını siler. İndirilen modelleri silmez: Whisper ve cihazda AI modellerini Android’de Ayarlar’daki “Konuşma Tanıma Modeli (Whisper)” ve “Cihazda AI” ekranlarından tek tek silersin. Geri alınamaz; onay için “SİL” yazman istenir.
- Uygulamayı kaldırmak, Android’in uygulama verisini de siler (indirilen modeller dahil).
- Web sürümünde “Tüm verileri sil” yalnızca SpeakSmith’in verisini siler; aynı adresteki diğer uygulamalara dokunmaz. Tarayıcıda indirdiğin AI modelinin dosyaları ise tarayıcının önbelleğinde kalır; uygulama onları silemez. Bu dosyaları tarayıcı ayarlarından
mehmetyasinuzun.github.ioiçin site verisini temizleyerek silebilirsin; ama bu, SpeakSmith’in bütün verisini ve aynı adresteki diğer uygulamaların (ör. SevimliPati) verisini de siler. - Üçüncü taraf bir servise gönderilmiş veri (ör. bir bulut AI sağlayıcısına giden metin) o servisin kendi kurallarına tabidir; silme talebini o servise iletmen gerekir.
11. Çocuklar
SpeakSmith hesap istemez ve kimseden kişisel veri toplamaz; bu nedenle çocuklardan da bilerek veri toplamaz. Uygulamanın bağlandığı YouTube ve bulut AI sağlayıcıları gibi üçüncü taraf servislerin kendi yaş koşulları vardır. 18 yaşından küçüksen bu servisleri bir ebeveyn ya da veli gözetiminde kullan.
12. Bu site
Bu tanıtım sitesi GitHub Pages üzerinde barındırılır. Site çerez kullanmaz, analitik ya da reklam betiği yüklemez ve yazı tiplerini kendisi sunar; başka bir siteye istek göndermez. GitHub, sayfayı sunarken teknik nedenlerle bağlantı kayıtları (ör. IP adresi) tutabilir; bu, GitHub’ın gizlilik bildirimine tabidir. Seçtiğin tema (açık, koyu, sistem) yalnızca bu tarayıcıda, yerel depoda saklanır.
13. Hakların ve iletişim
Biz senin hakkında kişisel veri tutmadığımız için uygulamadaki verilerin yalnızca senin cihazındadır ve onları yukarıdaki yollarla sen yönetirsin. 6698 sayılı Kişisel Verilerin Korunması Kanunu ya da yaşadığın yerdeki benzer mevzuat kapsamında bir sorun, istek ya da soru için bize SpeakSmith’in GitHub sayfasından yazabilirsin: github.com/mehmetyasinuzun/SpeakSmith-App/issues.
14. Değişiklikler
Uygulamanın internete gönderdiği bir şey değişirse bu sayfayı güncelleriz ve yukarıdaki tarihi değiştiririz. Önemli değişiklikleri sürüm notlarında da yazarız.
English
Privacy Policy
In short
- No account. We never ask for an email, phone number or password.
- No advertising, analytics or tracking libraries in the app. The one exception: on Android, Google ML Kit, which translates on the device, may send technical usage metrics to Google (see section 4). No cookies or analytics on this website.
- Your data stays on your device and is not sent to the developer. The Android app’s data is excluded from Android cloud backup. On the web, your data is kept in this browser under names that belong to SpeakSmith (see section 7).
- On Android, Lecture Desk audio and your karaoke singing are processed on the phone and never sent to a server. On the web, karaoke and the speaking practices use the browser’s speech recognition (see section 3).
- Some features connect to third-party services (YouTube, lyrics, dictionary, translation, read-aloud voices, model downloads and, if you add your own key, cloud AI). What each one receives is listed below.
1. Scope
“We” means the developer of SpeakSmith. SpeakSmith has no server of its own. The app does not send your data to us; everything described below as “sent” goes to the named third-party service, not to us.
2. Stored on your device
- Profile: name (optional), level, interests, interface language, theme. Your name is only shown on screen and never sent to any service.
- Words, review history, progress, XP, streak, badges; chat, essay, shadowing and karaoke attempts, grammar mistakes, video breakdowns. Video breakdown was removed from the Practice menu in 0.8.0; breakdowns you saved earlier stay on your device and still open.
- Lectures: course name, term glossary, transcript, translations, marks, notes. The text is written to disk every 30-second chunk.
- Lecture audio only if “Also save audio” is on (compressed, 32 kbps; 90 minutes ≈ 21 MB). When it is off, audio is kept temporarily only to recover a lecture if the app closes, and is deleted when the lecture ends.
- Songs: song info, lyrics, audio files you add yourself. The catalogue only contains title, artist, level and tempo; lyrics and audio are not bundled.
- Cloud AI keys and an optional Hugging Face token. On Android they are kept in Android Keystore-backed encrypted preferences. On the web they are encrypted in the browser’s local storage (under
speaksmith_secure), but the decryption key sits in the same browser storage, so anyone with access to this browser, or a page running on the same address, can read them (see section 7). They are never included in backups. - Downloaded models (Whisper speech model, Turkish translation pack, on-device AI model). Whisper and AI models download only when you start the download; the on-device AI coach is optional and never downloads by itself: the “Download your coach (on Wi-Fi)” card on Home opens the model page, and you start the download there. On Android the Turkish translation pack downloads the first time on-device translation is needed. “Delete all data” does not remove models: on Android you delete the Whisper and on-device AI models one by one in Settings, on the “Speech Model (Whisper)” and “On-device AI” screens; uninstalling removes them all. Settings and reminder times (reminders are local notifications).
On the web, the same data lives in this browser’s local storage (localStorage and IndexedDB) under names that belong to SpeakSmith. That storage is shared with the developer’s other web apps on the same address (mehmetyasinuzun.github.io); section 7 explains what this means. On Android, app data is excluded from cloud backup and device-to-device transfer.
3. Microphone
- Lecture Desk (Android): transcribed on the phone by the Whisper model. After a one-time model download no internet is needed and audio never leaves the phone. Android shows a visible notification while recording continues with the screen locked.
- Karaoke scoring and line practice (Android): your singing is compared on the phone with Whisper; recordings stay on the phone.
- Shadowing, presentation, improv, spoken word review, the mic test and karaoke on the web use the device’s speech recognition service. On Android this is the system speech service (on most devices Google’s). If no offline English speech pack is installed, that service may send your audio to its own servers; its provider’s terms apply. On the web the browser recognises speech; Chrome and Edge may send audio to their own servers for this. Because music from the speakers can mix into recognition, web karaoke shows its score as an estimate unless you confirm you are wearing headphones.
- In shadowing, presentation, improv and spoken word review the microphone turns off as soon as the phone locks, you switch to another app (on the web, when the tab is hidden) or another window opens on top. It never turns back on by itself; you tap to continue where you left off.
- Improv in voice mode: you open the mic with “I’m ready”. While the screen is in front, it reopens by itself for your next answer after each partner reply, and closes when you leave the session.
- Read-aloud (text-to-speech): sentences, words and AI partner replies are read aloud by the device’s text-to-speech: the phone’s TTS engine on Android (Google’s on most devices), the browser’s voices on the web. Some of this text is derived from your content: the partner’s replies in improv, the model opening and closing sentences the coach writes from your presentation, shadowing sentences built from your words. No audio is recorded, but depending on the voice the text can go to its provider (see section 4).
4. Network requests
Each service below is contacted only when you use the related feature. Every service necessarily sees your IP address and handles it under its own privacy policy.
- YouTube (
www.youtube.com,youtube-nocookie.com,i.ytimg.com): when you open the karaoke catalogue (every song card loads its thumbnail fromi.ytimg.com), add a YouTube song, open a catalogue song, or play a YouTube song or a saved video breakdown; on Android also when you add a YouTube lecture (including a shared YouTube link opened with “Watch as a lecture”). Sends the video ID; receives video info, captions and thumbnails. On Android, if you choose to also download the audio when adding a YouTube song (this switch is off by default; YouTube usually does not allow it), the app tries to download the video’s audio. Videos play in YouTube’s privacy-enhanced (nocookie) embedded player. - Public Invidious instances (
yewtu.be,inv.nadeko.net,invidious.private.coffee,invidious.lunivers.trade,invidious.fdn.fr,invidious.protokolla.fi,iv.duti.dev): on the web, video info (title, duration) is requested from these first whenever a YouTube song is added (including the first time you open a catalogue song); on Android they are a fallback when YouTube does not return video info or the requested audio. Sends the video ID; on Android, audio files come from them when audio is needed. - LRCLIB (
lrclib.net): when you add a song or a catalogue song is being prepared. Sends song title and artist. - Dictionary (
api.dictionaryapi.dev) and Datamuse (api.datamuse.com): when adding or looking up a word (the dictionary also when you tap a word in a role-play chat). Sends the word. - MyMemory (
api.mymemory.translated.net): when adding words, extracting words from text or looking up a word in karaoke or a role-play chat; on the web also for lecture and song lines on the “Automatic” route when no cloud AI is set. Sends the word or sentence, plus a fixed address parameter that is the same for every user and does not identify you. - Google ML Kit (Android): downloads the Turkish translation pack (about 30 MB, once) the first time on-device translation is needed. Translation runs on the device and the translated text stays on the phone. ML Kit ships inside the app together with Google’s data transport component and, under Google’s ML Kit terms, may send technical usage and performance metrics to Google when the pack is downloaded and when on-device translation is used.
- Read-aloud voices (Android TTS engine, browser voices): when a sentence, word or AI reply is read aloud. If the chosen voice is an online voice, the text goes to that voice’s provider to be turned into speech. The app picks the most natural voice itself, and that is often an online one: “Microsoft … Online (Natural)” voices in Edge (Microsoft), and in Chrome, unless the device has a more natural voice, “Google US English” (Google); on Android, Google voices that need a network can be picked too. You can choose another voice in Settings › Voice › AI voice.
- Hugging Face (
huggingface.co): when you download a Whisper model or an on-device AI model (the coach); nothing downloads by itself. Plus your own access token for gated models, if you add one. - GitHub (
raw.githubusercontent.com,github.com): the Android APK build reads the public version file of the SpeakSmith-App repository at start-up and when you check from Settings; if you accept an update, the new APK is downloaded from SpeakSmith-App’s GitHub Releases. No identity or device information is sent (see section 6).
5. Cloud AI and your keys
The AI coach is optional. With an on-device model, coaching is processed on the phone. If you pick a cloud provider with your own key (OpenAI, Anthropic Claude, Google Gemini, OpenRouter, DeepSeek or an OpenAI-compatible address you enter), the text a feature needs is sent only to that provider: your chat and role-play messages, the transcript of what you said in improv and presentations, your essay, the lecture text and karaoke song lines (for translation, whenever lecture translation is on “Automatic”, the default, or “Cloud AI” and a cloud provider is set; the lecture text also for summarised lecture notes), text you paste for word suggestions, your words for example sentences and scenarios, your grammar mistakes for personal drills. Some requests include your level and interests. Your name is not sent. Keys are stored only on your device (encrypted on Android; for the web and its limits see section 7) and sent only to their own provider. OpenAI Whisper: if you add a song from a file and pick “AI transcript (Whisper)” as the lyrics source, no Whisper model is on the phone (always the case on the web) and an OpenAI key is saved, the file (up to 25 MB) is uploaded to OpenAI for transcription.
6. Updates and error reporting
Update check: the Android APK build downloaded from GitHub reads a version file from the public SpeakSmith-App repository at start-up and when you check from Settings (raw.githubusercontent.com/). No identity or device data is sent; as with any connection, GitHub only sees your IP address. If you accept an update, the new APK is downloaded from SpeakSmith-App’s GitHub Releases, its SHA-256 checksum is verified, and you confirm the installation. The web version does not check for updates; opening the page loads the current version from GitHub Pages.
No automatic error reports: the app contains a component that can report errors to GitHub Issues by itself, but it works only if an access token is supplied at build time. The published builds contain no such token, so the app never sends error reports by itself. Errors are written only to a local log on your device.
“Report on GitHub” button: not shown to learners. It appears on some error messages only if you turn on “Developer diagnostics” in Settings (off by default). Tapping it opens a pre-filled issue page in your browser on the public SpeakSmith-App repository, containing the error type and message (with content removed), stack trace, time, app version, locale, on Android the device maker, model and code name, Android version, processor architecture and whether it is an emulator, and the names of the last in-app actions. Words, essays, chats and lecture content are not included, and key- or password-like values are removed. Nothing is sent unless you submit that page; you can read and delete anything you do not want first. If you submit it, the issue is public and shown under your GitHub account.
7. Web version
- Where your data lives: the web version’s data stays in this browser’s local storage and does not move to another browser or device (use a backup file to move it, see section 9). SpeakSmith writes its data under names of its own: settings, words and progress under keys starting with
speaksmith., API keys underspeaksmith_secure, and the song files you add, lectures and video breakdowns in SpeakSmith’s own IndexedDB databases. Backups and “Delete all data” touch only these. - Other apps on the same address: browsers separate local storage by site address, not by page. The web version runs on
mehmetyasinuzun.github.io, where the developer also publishes other web apps (for example SevimliPati). “Delete all data” in the app removes only SpeakSmith’s data. Clearing this address’s site data in your browser settings, however, removes the data of every app on this address together with SpeakSmith’s. - API keys on the web: saved keys are encrypted, but the decryption key sits in the same browser storage, so anyone with access to this browser, or a page running on the same address, can read them. If you use cloud AI on the web, use a separate key with a spending limit set at your provider, and do not save keys on a shared computer.
- When the page opens, the WebLLM module for in-browser AI is loaded from jsDelivr (
esm.runandcdn.jsdelivr.net), which sees your IP address and browser details. If you pick an in-browser model, its files come from the addresses in WebLLM’s catalogue (currently Hugging Face and GitHub) and stay in the browser’s cache. - The Flutter engine downloads fallback fonts from Google Fonts (
fonts.gstatic.com) for characters missing from the bundled fonts, such as emoji and some symbols; this can happen on the first screen. - There is no on-device translation on the web: with “On the phone” selected, lecture translation stays off; with “Automatic” and no cloud AI, lines are sent to MyMemory.
- Lecture Desk and Whisper are Android-only; on the web only the browser’s speech recognition uses the microphone.
8. No account, ads or analytics
No sign-up, no sign-in, no identifier that describes you. No advertising, analytics, tracking or marketing libraries and no in-app purchases. No statistics about your usage, progress or content are sent to us. The one exception is Google’s own component: on Android, ML Kit (on-device translation) may send technical usage metrics to Google as described in section 4; they never reach us.
9. Backup file
A backup is a single JSON file saved where you choose (Settings › Data management). It contains your words, lecture texts, progress, profile and settings; never audio files, downloaded models or API keys. On the web it contains only SpeakSmith’s own data, not the data of other apps on the same address. The file is not encrypted, so you decide where it goes.
10. Deleting your data
Delete items one by one in the app, or use Settings › Data management › “Delete all data”, which removes the database, lectures and their recordings, song files, settings and saved API keys; you confirm by typing “DELETE”. It does not remove downloaded models: on Android you delete the Whisper and on-device AI models one by one in Settings, on the “Speech Model (Whisper)” and “On-device AI” screens. Uninstalling removes all app data, models included. On the web, “Delete all data” removes only SpeakSmith’s data and leaves other apps on the same address alone. Files of an AI model you downloaded in the browser stay in the browser’s cache, and the app cannot delete them; you can remove them by clearing the site data for mehmetyasinuzun.github.io in your browser settings, but that also removes all of SpeakSmith’s data and the data of other apps on this address (for example SevimliPati). Data already sent to a third-party service is governed by that service.
11. Children
SpeakSmith does not ask for an account and collects no personal data from anyone, including children. Third-party services it connects to, such as YouTube and cloud AI providers, have their own age requirements; if you are under 18, use them with a parent or guardian.
12. This website
This site is hosted on GitHub Pages. It sets no cookies, loads no analytics or ad scripts, serves its own fonts and makes no requests to other sites. GitHub may keep technical connection logs (such as IP addresses) under its own privacy statement. Your theme choice is stored only in this browser.
13. Your rights and contact
We keep no personal data about you; your app data is on your device and you control it as described above. For any question or request, including under Turkish data protection law (KVKK) or similar laws where you live, write to us via SpeakSmith’s GitHub page: github.com/mehmetyasinuzun/SpeakSmith-App/issues.
14. Changes
If what the app sends over the internet changes, we will update this page and the date above, and mention important changes in the release notes.