Hayane Pinyin — Privacy Policy
English
Hayane Pinyin is an offline Mandarin pronunciation trainer for iOS and Android. This document explains what the app does (and does not do) with your data.
What the app records
- Microphone audio. Each of the recording-enabled modes — Record & Measure, Minimal Pairs, Tone Trainer, and Vowel Quality — captures a short audio clip when you tap the record button. The clip stays on your device for the duration of the analysis and is then discarded; nothing is written to permanent storage.
- Speech recognition (Tone Trainer only). The Tone
Trainer mode passes the captured clip to Apple's
SFSpeechRecognizer(iOS) or Android'sSpeechRecognizer(Android) to verify which Mandarin syllable + tone you produced. We request on-device recognition where the platform supports it for your locale; on devices without an on-device Mandarin model, the audio is transmitted to Apple's or Google's speech-recognition servers under their respective privacy policies and is not stored or used by Hayane Pinyin beyond the recognition response. No other modes use speech recognition. - Practice history. When the device-side voice-onset-time (VOT) analyser produces a result, the app stores a small record (timestamp, place of articulation, VOT in milliseconds, status code) so the Progress screen can show your improvement over time. Ear Quiz session summaries (date, syllable pair, total trials, correct count) are stored in the same way. Both stores are capped at 500 rows.
- Onboarding flag. A single boolean
hasCompletedOnboardingso the 3-page intro doesn't re-appear on every launch.
The records above live in iOS UserDefaults / Android Jetpack
DataStore, which means they exist only inside the app's private sandbox on
the device.
What leaves the device
Only the Tone Trainer's recognition audio, and only on devices that lack the on-device Mandarin speech-recognition model. In that fallback case the audio is sent to Apple's (iOS) or Google's (Android) speech-recognition service for the duration of one request; we do not retain it ourselves. On devices that ship the on-device model, Tone Trainer recognition runs entirely locally.
All other modes (Record & Measure, Minimal Pairs, Ear Quiz, Vowel Quality, Learn Sounds, Progress) make no network calls. The acoustic analysis (VOT / formant / F0 contour) runs entirely on-device in a bundled Rust library. There is no analytics SDK, no crash-reporting SDK, no advertising SDK, and no Hayane Pinyin back-end server.
CSV export (Tone Trainer only). The Progress screen
offers an optional CSV export of your tone-attempt history. The export is
user-initiated (you must tap Export and confirm before any file is
created), goes through the system share sheet (you choose the
destination), and contains only the diagnostic fields listed in this
app's source code under ToneAttemptLog. The audio itself is
never included. Sharing is your decision; please only share with someone
you trust.
Third parties
We do not share, sell, or otherwise transfer any of your data to third parties because we do not collect or transmit any data off the device.
The app uses these system services from the platform vendor:
- Apple
AVSpeechSynthesizer(iOS) and AndroidTextToSpeech(Android) to speak example syllables — text-only input. - Apple
SFSpeechRecognizer(iOS) and AndroidSpeechRecognizer(Android) for Tone Trainer judgment, as described above. On-device by default; server-side fallback only when the platform's on-device Mandarin model is unavailable.
These platform services are governed by Apple's and Google's respective privacy policies. Hayane Pinyin does not transmit anything to them beyond the data described above.
Permissions
- Microphone. Required for the four recording modes.
iOS prompts on first use via
NSMicrophoneUsageDescription; Android prompts via the standard runtime permission flow. You may revoke it from system settings at any time; the recording modes will show a permission-denied message. - Speech recognition (iOS only). Required for Tone
Trainer. iOS prompts on first use via
NSSpeechRecognitionUsageDescription. You may revoke it from system settings; Tone Trainer will then fall back to its on-device acoustic-only judgment (lower accuracy but fully functional).
We request no other privacy-sensitive permissions.
Data retention and deletion
The on-device records live until you uninstall the app or, on the Progress screen, tap Replay onboarding (which resets the onboarding flag only — practice history is not erased by that action). To erase all stored history at once, uninstall and reinstall the app.
Children
Hayane Pinyin is a general-audience educational app and is not directed at children under 13. We do not knowingly collect any personal data from anyone, regardless of age.
Contact
Questions or concerns: revivals47@gmail.com
日本語
Hayane Pinyin は iOS と Android 向けの中国語発音トレーナーです。本ポリシーは、本アプリがあなたのデータを「どう扱うか/どう扱わないか」を明文化したものです。
アプリが取り扱う情報
- マイク音声 Record & Measure、Minimal Pairs、Tone Trainer、Vowel Quality の各録音モードでは、録音ボタンを押している間だけ音声を取得します。取得した音声は解析が終わった瞬間に破棄され、永続化されません。
- 音声認識 (Tone Trainer のみ) Tone Trainer は録音した短い音声を Apple
SFSpeechRecognizer(iOS) / AndroidSpeechRecognizer(Android) に渡し、どの中国語音節と声調を発音したかを判定します。プラットフォームがあなたの言語のオンデバイスモデルを提供している場合はその上で実行されます。オンデバイスの中国語モデルが無い端末では、音声は Apple / Google の音声認識サーバーに送信され、それぞれのプライバシーポリシーに従って処理されます。Hayane Pinyin 側は認識結果以外を保持・利用しません。それ以外のモードは音声認識を使用しません。 - 練習履歴 VOT 解析結果(タイムスタンプ・調音位置・VOT ms・ステータスコード)と、Ear Quiz の各セッション要約(日付・対比ペア・出題数・正解数)を、Progress 画面に表示するためにデバイス内に保存します。両ストアとも 500 件で上限を打ち切ります。
- オンボーディング完了フラグ 3 ページのイントロを毎回出さないための真偽値(
hasCompletedOnboarding)。
これらは iOS UserDefaults / Android Jetpack DataStore に保存され、いずれもデバイス内のアプリ専用サンドボックスにのみ存在します。
デバイス外への送信
Tone Trainer の認識用音声のみ、それも端末にオンデバイスの中国語音声認識モデルが入っていない場合に限ります。そのフォールバック時は、当該音声は 1 リクエスト分だけ Apple (iOS) / Google (Android) の音声認識サービスに送信されます。Hayane Pinyin 側は保持しません。オンデバイスモデルが入っている端末では Tone Trainer の認識も完全にローカルで実行されます。
Tone Trainer 以外のモード (Record & Measure / Minimal Pairs / Ear Quiz / Vowel Quality / Learn Sounds / Progress) はネットワーク通信を一切行いません。音響解析 (VOT・フォルマント・F0 contour) はバンドルした Rust ライブラリでデバイス上のみで完結します。アナリティクス SDK、クラッシュレポート SDK、広告 SDK、Hayane Pinyin 独自のバックエンドサーバ、いずれも非搭載です。
CSV エクスポート (Tone Trainer のみ)。 Progress 画面には、任意で Tone Trainer の試行履歴を CSV エクスポートする機能があります。あなたが明示的にエクスポートボタンをタップし確認しない限りファイルは生成されません。出力後はシステムの共有メニュー経由であなたが共有先を指定します。エクスポートには本アプリのソースコードの ToneAttemptLog に列挙された診断フィールドのみが含まれ、音声そのものは含まれません。共有判断はあなた自身に委ねられます。信頼できる相手とのみ共有してください。
第三者への提供
データを第三者と共有・売却・移転することはありません。そもそも端末外へデータが出ません。
アプリは以下のプラットフォーム標準サービスを利用します:
- 例文音声の読み上げ用に Apple
AVSpeechSynthesizer(iOS) / AndroidTextToSpeech(Android) — 渡すのは読み上げ対象テキストのみ - Tone Trainer の判定用に Apple
SFSpeechRecognizer(iOS) / AndroidSpeechRecognizer(Android) — 上記「マイク音声 / 音声認識」項目の通り、デフォルトはオンデバイス、オンデバイスモデル不在時のみサーバー fallback
これらのシステム機能の挙動は Apple/Google それぞれのプライバシーポリシーに従います。Hayane Pinyin が渡すデータは上記に記載した内容のみです。
権限
- マイク 録音モード 4 種で必須。iOS は初回使用時に
NSMicrophoneUsageDescriptionで確認、Android は標準のランタイム権限フローで確認します。OS 設定からいつでも取り消せます。取り消した場合、録音モードは権限拒否メッセージを表示するだけです。 - 音声認識 (iOS のみ) Tone Trainer で必須。iOS は初回使用時に
NSSpeechRecognitionUsageDescriptionで確認します。OS 設定から取り消すと Tone Trainer はオンデバイスの音響解析のみによる判定にフォールバックします (精度は下がりますが機能は維持)。
その他のプライバシーセンシティブな権限は要求しません。
保存期間とデータ削除
デバイス内の記録はアプリをアンインストールするまで残ります。Progress 画面の Replay onboarding ボタンはオンボーディングフラグのみリセットし、練習履歴は消しません。すべての履歴を消したい場合はアプリをアンインストール → 再インストールしてください。
子供について
Hayane Pinyin は一般向け学習アプリであり、13 歳未満を対象としていません。年齢に関わらず、本アプリが個人データを「意図的に」収集することはありません。
お問い合わせ
ご質問・ご懸念は revivals47@gmail.com までご連絡ください。