Skip to content

patarapolw/cnpy

Repository files navigation

cnpy

Start with a batch of 20. Then, a new batch if the previous has been surpassed.

After every rounds of not-Right's, there will be unlimited repeat drills until you get everything Right. Additionally, if too many wrongs (10), the repeat drill will start earlier.

No typo checking. No turning to Wrong or Right. However, there is a middle-way button, "Not Sure".

  • v is accepted for u: or ü (for IME practice)
  • ESC for Not sure
  • Ctrl+Z for Undo and redo later (move to the end of the queue)
  • F1 to Skip the current vocab (putting to skip list is considered separately)
  • F4 to End the current batch, and start the wrong drill or make a new batch.
  • F1 / F4 must be done before answering, that is, not because of not knowing the answer and no spoiler.
  • Mulitple answers if applicable, separated by ; (whitespaces are ignored). Important readings can be forced to require. Uncommon readings can be disabled and made wrong.
  • Custom vocabularies can be added, and will be put to the end of Due queue (if the entries exist in CC-CEDICT)
  • Selected vocabularies can be permanently skipped, if accidentally put into SRS, or considered practically uncommon.

Due Quiz

Dictionaries

Select Reading

Repeat Quiz

Meaning quiz

Meaning quiz is possible, but AI-generated, so not intended to be included in SRS score. LLM API key is required. (See Configuration.)

Meaning quiz

Note taking

Note taking is powered bidirectionally by markdown (via showdown.js). The content may be copy+pasted from websites in Dictionary links. AI dictionary may be configured to cover for monolingual definitions, colloquial usages, and grammar explanation. (See Configuration.)

Notes

Hanzi breakdown

Right-click context menu to check for similar Hanzi and vocabularies. The context-menu is also for TTS (speech synthesis), extra menu and updating CC-CEDICT.

Right click

Also, to access quiz history.

Quiz history

Vocab lists

  • 60 levels are from ZhQuiz project, generated from HSK1-6 vocab list, sorted for vocabularies with common Hanzi first.
    • HSK1 - Level 1-5
    • HSK2 - Level 6-10
    • HSK3 - Level 11-20
    • HSK4 - Level 21-30
    • HSK5 - Level 31-40
    • HSK6 - Level 41-60

Levels

Text analysis

Native Chinese articles can be parsed, and optionally, added to new vocab list. New Hanzi and names can be filtered. Quizzed vocabularies are excluded from the result.

Parsed vocab

Statistics

Stats

Technically, only fsrs difficulty < 6 is counted as learned. Accuracy is learned/started * 100%.

Hanzi learned is calculated from

  1. Used in at least 5 vocabularies
  2. Learned as a vocabulary with lone or single repeated Hanzi
  3. Used in at least 3 vocabularies

Configuration

AI dictionary and TTS can be configured in Settings, accessible from the dashboard.

Settings

  • Uncheck "New itmes per session" to do reviews to 0 first before adding new items.
  • emoti-voice can be used instead of gTTS
  • LLM API key and model names can be found at DeepSeek / ChatGPT / Google. Possibly paid. (Google may have free gemma-3 models.)
  • Install ollama to use offline AI LLM.
  • Sync database will be copied to the selected file location, e.g. Google Drive, Dropbox.

Dictionaries

Vocabularies are from CC-CEDICT at MDBG Chinese Dictionary.

Sentences are from Tatoeba project.

Hanzi decomposition data are from CJKV (Chinese Japanese Korean Vietnamese) Ideograph Database.