ScanSpeak Privacy Policy
1. What ScanSpeak is
ScanSpeak is an Android app for scanning book pages, recognizing text (OCR), storing content locally on the device, translating text into other languages, and reading text aloud.
2. What data the app processes
The app may process the following data saved or used by the user:
- images of scanned pages,
- text recognized using OCR and text added from the clipboard or from files,
- translations of scan text,
- scan titles and organizational metadata,
- language, voice, reading speed, and translation settings,
- saved resume position,
- audio files created with the "Export to audio" feature,
- downloaded translation language models,
- technical data required for system text-to-speech and notifications,
- crash reports and usage statistics, while the option to send them is turned on (section 4.5).
3. Where data is stored
Scan data, OCR text, translations, preferences, and resume state are stored locally on the user's device within the app's storage. In the current release build, user data backup is disabled so that book content and reading history are not copied to system backup services.
Translation language models are stored on the device by the Google ML Kit library.
Files created with "Export to audio" are saved in the public Music/ScanSpeak
folder so they can be played in other apps.
4. When data leaves the device
4.1. Text correction (LanguageTool)
To fix text recognition errors, the app sends the recognized text of pages to the external LanguageTool service (LanguageTooler GmbH), which returns spelling and grammar suggestions. This happens only while the "Correct text online (LanguageTool)" option is turned on in the app's settings — it is on by default:
- automatically after saving a new camera scan, after creating a scan from a file, and after adding pages to a scan from images or files,
- when the "Improve text" feature is used manually.
Text added from the clipboard is not sent automatically. Only the text content of pages and the language code are sent — no images, titles, or user identifiers. When the device is offline or the option is turned off, the app applies local text formatting only and sends no text to LanguageTool.
Endpoint used by the app: https://api.languagetool.org/v2/check.
LanguageTool's processing is described in the
LanguageTool privacy policy.
4.2. Text translation
Translation runs on the device using Google ML Kit — the content of scans and translations is not sent to any server. The first time a language is used, the app downloads its language model (about 30 MB) from Google servers. Users can limit model downloads to Wi-Fi and delete downloaded models in the app settings.
4.3. Google ML Kit and Google Play services
Text recognition (OCR), the document scanner, and translation use the Google ML Kit library and Google Play services. Images and text are processed on the device. The text recognition model is delivered through Google Play services.
ML Kit sends technical data to Google for diagnostics and usage analytics: device information (manufacturer, model, OS version), package name and app version, performance metrics, and the configuration of the features used, and for translation also the selected source and target languages. For translation, ML Kit uses Firebase Installations and Firebase Remote Config, which rely on an app installation identifier. This data is encrypted in transit (HTTPS). Page images and text content are not sent this way.
Details: Google's ML Kit data disclosure and the Google Privacy Policy.
4.4. Reading aloud
Reading aloud uses the text-to-speech engine installed on the system (for example Google or Samsung). Offline voices process text on the device. If the user selects a voice marked as online in the settings, the text-to-speech engine may send the text being read to its provider's servers under that provider's privacy policy.
4.5. Crash reports and usage statistics (Google Firebase)
To find and fix errors and to learn which features and languages are used, the app uses Firebase Crashlytics and Google Analytics for Firebase (Google Ireland Limited / Google LLC). This happens only while the "Send crash reports and usage statistics" option is turned on in Settings → Privacy policy. It is on by default and can be turned off at any time; when it is off, no new crash reports or usage statistics are sent.
The following data is sent:
- Crash reports — the technical description of the error (stack trace), the state of the app at the time of the crash, device model and manufacturer, Android version, app version, free memory and disk space, and the app language and reading language,
- Usage statistics — app launches and sessions, the screens shown, saving a scan (scan source: camera, file, or clipboard; number of pages; reading language and its script), starting reading aloud (speech language and whether a page or the full text is read), the app language and the reading language,
- Technical identifiers — a random Firebase installation identifier and an app instance identifier, used to count crashes and users; they are not linked to the user's name, email, or Google account,
- Approximate location — Google derives the country and region from the IP address; the IP address itself is not stored by Google Analytics.
The text, images, titles, and translations of scans are never sent. The app does not collect the advertising ID (AD_ID), does not use data for advertising or personalized ads, and does not create a user profile across other apps.
Crashlytics keeps crash reports for 90 days. Google Analytics keeps event-level data for 2 months; aggregated reports (such as the number of users per country) may be kept longer. Data is encrypted in transit (HTTPS) and may be processed on Google servers outside the user's country, including in the United States, under Google's safeguards. Details: Privacy and Security in Firebase and the Google Privacy Policy.
4.6. Text recognition models for Russian and Arabic
When Russian or Arabic is selected as the reading language, the app downloads an additional
text recognition module through Google Play and recognition models (PaddleOCR) from
huggingface.co. These are ordinary downloads of fixed files: no images, text, or
identifiers are sent, and text recognition then runs on the device.
5. Permissions and system features
- Document scanner (Google Play services) — to scan pages; the camera is handled by Google Play services and the app does not request the camera permission.
- Internet — for text correction via LanguageTool, downloading language and text recognition models, ML Kit diagnostic data, and crash reports and usage statistics.
- Network state — to check whether the device is on Wi-Fi when model downloads are limited to Wi-Fi.
- Notifications — to control background reading and report audio export progress.
- Foreground service (media playback) — so text-to-speech can continue after the app is minimized.
- Foreground service (data sync) — so audio export can finish in the background.
6. Ads, analytics, and user accounts
In the reviewed production build of ScanSpeak:
- it does not require creating an account,
- it does not display ads,
- it does not collect the advertising ID and does not share data for advertising,
- it uses Firebase Crashlytics and Google Analytics for Firebase only for crash reports and usage statistics, which can be turned off in the settings (section 4.5); in addition, Google ML Kit sends the technical data described in section 4.3.
7. How to delete data
- Deleting a scan in the app removes the related text, translations, and stored page files from the app's storage.
- Downloaded language models can be deleted in the app settings, in the "Translation" card.
- Audio export files in the
Music/ScanSpeakfolder can be deleted with a file manager. - Uninstalling the app removes all data stored in the app's storage.
- Sending crash reports and usage statistics can be turned off in Settings → Privacy policy. Data already sent is deleted automatically after the retention periods in section 4.5; to have it deleted sooner, write to the email address below.
8. Sharing data with third parties
Data is not sold. During normal operation, data leaves the device only as described in section 4:
- page text — to LanguageTool for text correction (section 4.1),
- technical data and language model downloads — to Google through ML Kit and Google Play services (sections 4.2 and 4.3),
- text being read — to the text-to-speech engine provider, only when the user selects an online voice (section 4.4),
- crash reports and usage statistics — to Google Firebase, while the option is turned on (section 4.5),
- requests for text recognition model files — to Google Play and Hugging Face, when Russian or Arabic is selected (section 4.6).
9. Contact
For privacy or app-related questions, contact: tomasz.paciorek81@gmail.com
10. Changes to this policy
This policy may be updated as the app's features, data processing practices, or Google Play requirements change.