Privacy Policy — SpeechTypeLocal
Last updated: April 7, 2026
Who We Are
SpeechTypeLocal is developed and published by Cuprbot Labs, an independent software developer.
- Contact: support@cuprbotlabs.com
- App package: com.cuprbotlabs.speechtypelocal
For any privacy-related questions or data deletion requests, email us at the address above.
What This Policy Covers
This policy applies to the SpeechTypeLocal Android app available on Google Play. It describes what data the app handles, what leaves your device, and what stays on it. We do not operate a web service associated with this app, so this policy covers the app only.
Our Privacy Promise
Your voice never leaves your device. Your transcripts never leave your device.
SpeechTypeLocal runs a local AI speech model (Whisper, via the sherpa-onnx runtime) directly on your phone. When you
speak, audio is processed entirely in memory on your device and
converted to text there. No audio is streamed to a server. No
transcription is sent to a cloud. There is no "our server" receiving
your words — because we don't have one that touches your speech data.
This is the entire point of the app. We built it this way on purpose.
What Stays on Your Device
Everything that matters to you stays on your device and is fully under your control:
- Audio recordings (.wav files) — stored in the app's private documents directory. Delete via Settings → Privacy → Delete all recordings, or uninstall the app.
- Transcription text — stored in a sandboxed Hive local database. Delete via Settings → Privacy → Delete all recordings, or uninstall the app.
- App settings and preferences — stored in the Hive local database. Removed when you uninstall the app.
- Whisper model files (.onnx) — stored in the app's private documents directory. Delete via the Model Manager screen.
- Anonymous analytics ID — stored in the Hive local database. Removed when you uninstall the app (see Analytics section below).
- Pro purchase entitlement cache — stored in the Hive local database. Removed when you uninstall the app.
Deleting the app deletes all of the above. Android does
not sync this app's private storage to cloud backup (the app sets android:allowBackup="false"), so uninstalling leaves
nothing behind on the device.
What We Send Off-Device
There are four — and only four — ways data leaves your device. Each is described precisely below.
1. Anonymous Usage Analytics (PostHog)
We use PostHog, a product analytics service, to understand how the app is being used so we can improve it.
What we send:
- App lifecycle events: launch, foreground, background
- Screen views (which screen you're on, not what's on screen)
- Recording lifecycle: started, paused, resumed, completed, cancelled — with counts and durations (e.g., "recording lasted 42 seconds, produced 87 words")
- Feature usage: model downloaded, overlay enabled/disabled, bubble tapped, text injected (success/fail)
- Settings changes: theme toggled, bubble color changed
- Monetization events: Pro screen viewed, purchase completed/cancelled/restored
- Error events: recording start failed, model download failed (error type only, no stack traces with user content)
What we never send:
We never send the words you speak or type. We never send transcription
text, audio content, search query text, or any user-generated content
through the analytics pipeline. The AnalyticsService in our
source code enforces this rule centrally — every event is a structured
object with numeric counts and identifiers, never raw text.
How you are identified:
You are assigned a random UUID (generated on first launch, stored locally in the app database) as an analytics identifier. This ID has no connection to your name, email, Google account, device hardware ID, or any other personally identifiable information. It is used only to count unique users and sessions.
Super-properties sent with every event: app version, platform name (android), OS version string, session number (integer), install date.
PostHog data flows to: PostHog Inc. servers in the United States (us.i.posthog.com). See PostHog's privacy policy.
Opt-out: Analytics run automatically. If you want your analytics distinct ID removed from PostHog's database, email support@cuprbotlabs.com with the subject "Analytics opt-out" and we will delete the record.
2. Whisper Model Downloads (Hugging Face CDN)
When you download a Whisper model (required before first use), the app
makes an outbound HTTPS request to download a model file from Hugging
Face's CDN (the csukuangfj repository). This is a one-way
file download — no personal data is sent in the request beyond what
standard HTTPS connections include (your IP address, visible to
Hugging Face's CDN). The downloaded .onnx model file is
stored locally and used entirely on-device thereafter. Hugging Face privacy policy.
3. Feedback Form (Your Explicit Consent)
Settings contains a "Send feedback" form. If you type a message and tap
Send, the contents of that form — your feedback text, optional star
rating, and optional email address — are sent to us via PostHog as a feedback_submitted event.
This is the only place user-typed text leaves your device, and it only happens when you explicitly submit the form. The form is clearly labeled, opt-in, and never fires automatically. Providing an email address is optional and only needed if you want us to reply.
4. In-App Purchases (RevenueCat + Google Play Billing)
If you purchase SpeechTypeLocal Pro, the transaction is processed by Google Play Billing. Payment details (card number, billing address) are handled entirely by Google and never seen by us or RevenueCat.
RevenueCat (our purchase management layer) receives:
- Your anonymous RevenueCat user ID (an opaque identifier, not linked to your name or email unless you provide it)
- Purchase history: which product was purchased, when, and whether the entitlement is active
- Platform: Android
RevenueCat does not receive your transcription text, audio, or any content from the app. Purchase history is collected to unlock Pro features and verify entitlements across reinstalls. RevenueCat privacy policy | Google privacy policy.
Permissions and Why We Need Them
- Microphone (
RECORD_AUDIO) — to capture audio when you start a recording session. Audio is processed on-device only. - Display over other apps (
SYSTEM_ALERT_WINDOW) — to draw the floating dictation bubble that stays visible while you use other apps. - Foreground service — microphone (
FOREGROUND_SERVICE_MICROPHONE) — required by Android 14+ to keep the microphone delivering real audio when the app is in the background. Without this, the OS silently mutes the mic after a few seconds. The microphone foreground service is started by therecordplugin only after you grant microphone permission. - Foreground service — special use (
FOREGROUND_SERVICE_SPECIAL_USE) — keeps the floating bubble overlay service alive in the background. This service only renders the UI bubble — it does not open the microphone. - Accessibility service (
BIND_ACCESSIBILITY_SERVICE) — used exclusively to inject transcribed text into the text field you are currently focused on in another app, after you tap the paste/inject button. The accessibility service cannot read screen content from other apps, cannot record what other apps display, and does not perform any background monitoring. Its scope is write-only text injection into the focused input field. - Internet (
INTERNET) — model file downloads from Hugging Face, analytics events to PostHog, and purchase verification with RevenueCat. - Billing (
com.android.vending.BILLING) — required to initiate in-app purchases via Google Play.
Data We Do Not Collect
To be explicit: SpeechTypeLocal does not collect any of the following:
- Your name, email address, or phone number (unless you voluntarily provide an email in the feedback form)
- Your location (GPS or IP-based geolocation)
- Your contacts, photos, or files outside the app's own storage
- Your device advertising ID (GAID/IDFA)
- Your Android ID or other hardware identifiers
- The content of other apps on your device
- Screen recordings or screenshots of other apps
- Voiceprints or biometric templates derived from your audio
- Any data from the Accessibility service beyond injecting text you asked us to inject
Children's Privacy
SpeechTypeLocal is not directed at children under 13 years of age (or under 16 in the European Economic Area). We do not knowingly collect personal data from children. If you believe a child under 13 has used the app and that personal data was inadvertently collected, please contact us at support@cuprbotlabs.com.
Your Privacy Rights
Because SpeechTypeLocal has no user account and does not collect personally identifiable information directly, most privacy rights are satisfied by the app's design:
Right of access and deletion: Your recordings and transcripts are on your device. Delete them anytime via Settings → Privacy → "Delete all recordings," or by uninstalling the app.
Analytics data: Your analytics record is tied to an anonymous UUID. To request deletion of your PostHog record, email support@cuprbotlabs.com with "Analytics opt-out" in the subject line. We will locate the record by distinct ID and delete it.
Purchase data: To request deletion of RevenueCat purchase records, email support@cuprbotlabs.com. We can initiate deletion via RevenueCat's API. Note that Google Play retains its own purchase records independently.
GDPR (European users): You have the rights of access (Article 15), erasure (Article 17), restriction (Article 18), portability (Article 20), and to object to processing (Article 21). You also have the right to lodge a complaint with your national data protection authority. The lawful basis for analytics processing is our legitimate interest in understanding how the app is used to improve it (Article 6(1)(f)). The lawful basis for purchase processing is contract performance (Article 6(1)(b)).
CCPA (California users): We do not sell or share personal information for cross-context behavioral advertising. Your rights of access, deletion, and correction can be exercised by contacting support@cuprbotlabs.com. We do not sell your data.
International transfers: PostHog and RevenueCat are US-based services. Data sent to them is transferred to and processed in the United States. Both companies participate in GDPR-compliant data processing frameworks and offer Data Processing Agreements.
Data Retention
- Audio recordings and transcripts — stored locally until you delete them or uninstall the app. We have no server-side copy.
- PostHog analytics events — retained by PostHog per their standard retention policy (currently 1 year for free tier, configurable for paid). Deletable on request.
- RevenueCat purchase history — retained by RevenueCat to support entitlement restore across reinstalls. Deletable on request.
- Feedback submissions — retained in PostHog as events. Deletable on request.
Security
All data transmitted off-device (analytics, model downloads, purchases, feedback) uses HTTPS/TLS encryption in transit. Your audio and transcripts are stored in the app's private sandbox on-device and are not accessible to other apps. We do not operate servers that store your speech or transcription data.
Third-Party Services
- PostHog Inc. — Anonymous usage analytics and feedback collection. Privacy policy.
- RevenueCat Inc. — In-app purchase management and entitlement verification. Privacy policy.
- Google Play Billing — Payment processing for Pro upgrade. Privacy policy.
- Hugging Face — CDN delivery of Whisper model files. Privacy policy.
Changes to This Policy
If we make material changes to what data leaves your device or how it is used, we will update the "Last updated" date at the top of this policy and display an in-app notification on next launch. Non-material changes (wording clarifications, new contact address) will update the date only.
Contact
Questions about this privacy policy or requests for data deletion:
Cuprbot Labs
Email: support@cuprbotlabs.com
We respond to privacy inquiries within 30 days.