Chorus Privacy Policy

Effective date: November 2, 2026

Chorus is an iOS language-learning app that turns podcasts and audio you choose into interactive, subtitled shadowing lessons. This page says exactly what leaves your device and why.

Audio you import

Audio and video files you import, and podcast episodes you download, are stored on your device. To generate subtitles, the audio is sent over HTTPS to our server, which converts speech to text using the Groq speech-to-text API. The uploaded file is deleted as soon as its subtitles have been produced. It is not shared with anyone else and is never used to train a model.

Subtitles, translations and explanations

Transcripts, per-sentence translations, word lookups and sentence explanations are produced on our server with Groq's large-language-model API. Transcriptions are cached so that a second person listening to the same episode does not pay for the same processing twice; the cache is keyed by a hash of the audio content, not by any personal identifier, and it is shared between accounts.

A cached transcript is still billed to your monthly AI allowance, exactly as a fresh transcription would be, because it is the same finished product. It is billed at most once per account per calendar month: reinstalling the app, signing in on a second device or regenerating subtitles for audio you have already paid for in that month does not spend your allowance again.

What stays on your device

Your material library, downloaded podcast episodes, Echo practice recordings, preferences, subtitle files and their translations are stored locally on your device. Deleting a lesson in the app removes that lesson's audio, subtitles, translations and practice recordings. Settings → Clean Cache removes only your Echo practice recordings; deleting the app removes everything stored on the device.

Accounts

You can import and play local material without an account. Before using the cloud AI features, or buying or restoring a subscription, Chorus asks you to sign in one of three ways: with Apple, with Google, or with a one-time code sent to your email address. Supabase, our authentication provider, processes the provider identity, the email address, session tokens and a stable account identifier. When you use Apple or Google, that provider tells us the email address and account identifier attached to it, and may also return a name and a profile picture; Chorus displays the email address on your account page and ignores the rest. Chorus uses the verified identifier to hold your monthly allowance, to own the transcription jobs running for you and to recognise the same account on another device.

Purchases

Purchases are processed by Apple; we never see your payment details. The app uploads the signed App Store transaction to our server, which verifies Apple's signature and stores the product, the expiry date and a transaction identifier against your account. RevenueCat is used as a secondary check when a purchase has to be restored on a new device. Signing out, or deleting your Chorus account, does not cancel an App Store subscription; you cancel it in your Apple account settings.

What we do not do

We do not sell your data, we do not use advertising identifiers, we do not run third-party analytics or advertising SDKs, and we do not use your audio or transcripts to train models. Apple, Google, Supabase, Groq, Cloudflare and RevenueCat receive only the information needed to provide sign-in, transcription and subscription services, under their own policies.

Data retention

The audio you upload is deleted from our server as soon as its subtitles have been generated. If you stop listening part-way, the segments already produced are kept for up to 24 hours so playback can resume without paying for the same audio twice. Finished job records are removed after 48 hours. Cached transcripts are kept for as long as they are useful to other listeners; they are keyed by audio content and carry no account identifier.

Account deletion

You can delete your account inside Chorus, in Settings. We delete the Supabase account together with the server-side allowance and job data linked to it. Material you have already downloaded, along with its subtitles and translations, stays on this device: it never left the device, and it is still readable with no account at all. Delete individual lessons in the app, or delete the app, to remove those files. Deleting the account does not cancel an App Store subscription, which belongs to your Apple Account. If you signed in with Apple, we also revoke the token Apple issued to Chorus, so the app no longer appears in the list of apps using your Apple Account; if Apple does not answer, the revocation is retried for up to 30 days. To stop repeated deletion from resetting a monthly free allowance, until the next monthly reset we keep only that month's usage total and a server-keyed, irreversible digest of the login identity. That record contains no email address, name, access token or refresh token, and it is discarded at the reset.

Children

Chorus is not directed at children under 13 and we do not knowingly collect their personal information. If you believe a child has created an account, write to us and we will delete it.

Changes

If this policy changes in a way that affects what we collect, the effective date above changes with it and the new version appears at this address before the app is updated.

Contact

Privacy questions, data requests and deletion requests: support@ningxiaochen.com.