Document version: 1.0Effective: September 7, 2026Contact: keyu@gacing.com
In one sentence: your voice is processed entirely on your own phone — recognition and translation never touch the network. The only thing ever sent to our server is a diagnostic log when you tap "upload diagnostic logs" yourself (no captions, no recordings — see section 8).
1. Who we are
Keyu (课语, Bundle ID: com.gacing.LectureCaptions) is an iOS app that turns English lectures into live bilingual captions (English with Chinese translation), developed and distributed by an individual developer signing as GACING. This policy explains how it handles your data.
2. Data inventory
The table below lists every category of data the app touches. Except for the "diagnostic log you upload yourself" row, no data leaves your device (caption text is stored, encrypted, with Apple via the system iCloud Backup if you have it enabled — see section 6).
Data
Source
Stored at
Leaves the device?
Retention
Lecture audio (live)
Lecture sound captured by the microphone
Processed in memory only, not written to disk (unless you enable the recording switch — see the "Lecture recordings" row below)
No
Discarded after recognition; saved as a recording file only when recording is enabled
Caption text (bilingual)
Results of on-device recognition and translation by Apple system frameworks
The app's sandbox on this device
No (if system iCloud Backup is on, caption text is included in that encrypted backup to Apple; recordings are not)
You control it: swipe to delete a session to erase the local copy
Lecture recordings (optional)
Captured only after you enable the recording switch
The app's sandbox on this device
No (excluded from iCloud Backup; never uploaded)
You control it: deleting a session deletes its recording
Local run log
App runtime records (no caption text, no audio content)
The app's sandbox on this device
Only when you tap "upload diagnostic logs" yourself (see section 8)
Local logs are removed with the app; uploaded copies are auto-deleted from the server after 90 days
Diagnostic log (after upload)
Uploaded at your tap: device model, iOS version, app version, run log
The developer's server (diag.gacing.com)
Yes — only when you tap it yourself
Automatically deleted after 90 days
3. Microphone and speech recognition permissions
The app requests two system permissions, explained one by one:
Microphone — to capture the lecture audio that becomes your captions. Captured audio goes only into the on-device recognition pipeline; it is never uploaded.
Speech Recognition — required by iOS to use the on-device recognition engine (SpeechAnalyzer / SpeechTranscriber).
Both permissions serve on-device processing only. You can revoke them anytime in Settings > Privacy & Security > Microphone / Speech Recognition (with them off, live captions stop working; saved sessions are unaffected).
4. Audio stays on your device
Audio from the microphone is transcribed into English text on your device by Apple's Speech framework (SpeechAnalyzer / SpeechTranscriber). It never touches the network.
English-to-Chinese translation runs on your device through Apple's Translation framework — also offline.
We integrate no third-party recognition, translation, or analytics services.
5. The first-launch download
On first use, the app guides you through downloading Apple's system components (English speech assets and the Chinese translation pack). This one step uses the internet and happens between your phone and Apple. Once finished, recognition and translation work fully offline.
6. Where captions and recordings live
Each session's bilingual captions, and the optional audio recording, are stored in the app's sandbox on this phone.
If you have iCloud Backup enabled in iOS Settings, caption text is included in that encrypted backup to Apple. Recordings are excluded from backups and are never uploaded.
Swiping to delete a session removes the files on this device; copies already stored in a system backup are kept or purged according to your iCloud backup policy. We hold no copies of our own anywhere.
You may export captions as TXT / SRT / Markdown, or move files to iCloud Drive, via the system share sheet. That is your own action; where exported files go next is governed by the terms of the service you choose (e.g. Apple iCloud).
7. Crashes and diagnostics
The app does not automatically upload crash logs or diagnostics.
The app keeps a local run log on the device (no caption text, no audio content); our server only receives it when you upload it yourself — see the next section.
If you have enabled "Share with App Developers" in iOS Settings, Apple may collect crash reports on our behalf — governed by Apple's privacy policy, and not personally identifiable to us.
8. Diagnostic logs (uploaded only at your request)
The app offers an "upload diagnostic logs to the developer" entry. Logs are sent to our server (diag.gacing.com) only when you tap it yourself — never automatically, never in the background.
Contents: device model, iOS version, app version, and the run log. No caption text, no recordings.
The sole purpose is troubleshooting issues you report. Logs are not linked to any identity, and are never used for tracking or advertising.
Logs are automatically deleted from the server after 90 days.
9. What we don't collect
No accounts, no analytics, no ads, no third-party trackers. Beyond the diagnostic logs you upload yourself (see above), we collect nothing; on our App Store privacy label only "Diagnostics · Other Diagnostic Data" applies — not linked to identity, not used for tracking.
10. Your rights and choices
Because nearly all data lives on your own device, most "rights" are operations already in your hands:
Delete a session (captions and recordings): in the app's session list, swipe left on any session and tap delete. Local caption and recording files are removed; caption copies already in a system iCloud backup are kept or purged per your iCloud backup policy.
Turn off recording: recording is a separate in-app switch, off by default; simply leave it off when you don't need it — captions are unaffected.
Export your data: from a session's detail view, use the system share sheet to export captions as txt / srt / Markdown; where the export goes is your choice.
Revoke permissions: in iOS Settings > Privacy & Security > Microphone and Settings > Privacy & Security > Speech Recognition, switch Keyu off at any time.
Manage iCloud Backup: whether caption text rides along with the system backup is governed by the system-level switch at Settings > [your name] > iCloud > iCloud Backup. Recordings are never part of backups — nothing extra to do.
Don't upload diagnostics: unless you tap "upload diagnostic logs to the developer", nothing is sent to our server. To request early deletion of a log you already uploaded, email keyu@gacing.com with the approximate upload time.
11. Children
The app is suitable for all ages; apart from diagnostic logs a user uploads on purpose, it collects no information from anyone, including children.
12. Changes to this policy
Any update will be posted on this page with a new effective date at the top.