Anki

2023-01-14 learning english chinese spaced repetition

Spaced repetition is technique to help with learning material by repeating the fact in time when you are about to forget it. In my experience it is very effective and allows learning many facts in relatively short time. The intervals get longer as the learning progresses and currently most of vocabulary I learned this way has “forgetting” interval longer than several years.

I started using this technique around 2006 for learning English vocabulary using PalmOS application SuperMemo. Initial set of words came from First Certificate for English (FCE) learning materials, then I added words captured from my dictionary searches.

Fast forward. Palm devices are long past, so since 2013 I started using open source Anki for the learning. It has decks in the cloud and provides

Each deck contains Notes that can have multiple fields and present a fact. You may want to learn countries, so each Note can contain country name, currency, flag, or capital. Then you can define Cards for any specific fact you want to learn - Capital of a Country, where is a currency used, what country has this flag and similar.

Notes can also contain media - sounds, pictures, formatted text.

I usually create new material in Desktop version and train on Android phone to fill available time slots. That version also supports TTS and drawing boards.

AnkiDroid

English

I don’t translate from Czech to English, so my only interest is to understand English words and know their pronunciation. I also found that I remember words much better when I have some context, so an example is very useful. My Note has fields

  • Front
  • Back
  • Example

The card is defined with a HTML code. Front of a card also contains the code for TTS. The {{Front}} placeholder is for item from the Note.

<tts service="sapi5com" quality="39" speed="0" voice="Microsoft Hazel Desktop" volume="100" xml="0">
  <tts service="android" voice="en_GB">
    {{Front}}
  </tts>
</tts>

Back of the card includes the front using {{FrontSide}} placeholder and the answer with {{Back}} and {{Example}} placeholders.

{{FrontSide}}

<hr id=answer>

{{Back}}

<br>
<div style="font-size: 16px; padding-top: 16px;">
  <tts service="sapi5com" quality="39" speed="0" voice="Microsoft Hazel Desktop" volume="100" xml="0">
    <tts service="android" voice="en_GB">
      {{Example}}
    </tts>
  </tts>
</div>

Back of English Anki card

Chinese

Learning of Chinese was much more complex for me. The Note contains:

  • Hanzi - visual form of the characters, e.g. 世纪
  • Pinyin - pronunciation, e.g. shì jì
  • Meaning - english translation, e.g. century
  • Example - e.g. 第二十世纪

For authoring the Notes I used desktop Anki plugin called Chinese Support Redux which from entered Chinese can lookup the word in dictionary and fill in the pronunciation with proper colorization of tones.

From that I built three Cards:

Pinyin and Meaning to Hanzi

The goal here is be able to remember the visual form, ideally draw it correctly. Front page shows pinyin with TTS and meaning

<div style="font-size: 10px">hanzi</div>
<div style='color: blue; font-family: Arial; font-size: 24px;'>
  {{Pinyin}}
</div>
<div style='font-family: Arial; font-size: 24px;'>
  {{Meaning}}
</div>
<tts service="google" voice="zh-cn" style="display: none">
  <tts service="android" voice="zh_CN">
    {{Simplified chinese}}
  </tts>
</tts>

Back page then shows hanzi and example

{{FrontSide}}

<hr id=answer>

<div style='font-family: KaiTi, Arial; font-size:50px;'>
  {{Simplified chinese}}
</div>

<a style="font-size: 10px" target="chinese" href="http://www.mdbg.net/chindict/chindict.php?page=worddict&wdrst=0&wdqb={{Simplified chinese}}">MDBG</a>
<div style='font-family: KaiTi, Arial; font-size: 16px; padding-top: 10px'>
  <tts service="google" voice="zh-cn">
    <tts service="android" voice="zh_CN">
      {{Example}}
    </tts>
  </tts>
</div>

Hanzi to Meaning and Pinyin

The goal here is be able to recognize hanzi. Front page shows the visual form and also link to online Chinese dictionary

<div style="font-size: 10px">pinyin/meaning</div>
<div style='font-family: KaiTi, Arial; font-size:50px;'>
  {{Simplified chinese}}
</div>

<a style="font-size: 10px" target="chinese" href="http://www.mdbg.net/chindict/chindict.php?page=worddict&wdrst=0&wdqb={{Simplified chinese}}">MDBG</a>

Back page include the front one and shows pinyin pronunciation, meaning and activates TTS for the hanzi and example

{{FrontSide}}

<hr id=answer>

<div style='color: blue; font-family: Arial; font-size: 24px;'>
  {{Pinyin}}
</div>
<div style='font-family: Arial; font-size: 24px;'>
  {{Meaning}}
</div>

<tts service="google" voice="zh-cn" style="display: none">
  <tts service="android" voice="zh_CN">
    {{Simplified chinese}}
  </tts>
</tts>
<div style='font-family: KaiTi; font-size: 16px; padding-top: 10px'>
  <tts service="google" voice="zh-cn">
    <tts service="android" voice="zh_CN">
      {{Example}}
    </tts>
  </tts>
</div>

Pinyin to Meaning and Hanzi

The goal here is to recognize sound with some visual clues. Front is just pronunciation with TTS

<div style="font-size: 10px">meaning</div>
<div style='color: blue; font-family: Arial; font-size: 24px;'>
  {{Pinyin}}
</div>
<tts service="google" voice="zh-cn" style="display: none">
  <tts service="android" voice="zh_CN">
    {{Simplified chinese}}
  </tts>
</tts>

Back then shows the meaning, written form and example with TTS

{{FrontSide}}

<hr id=answer>

<div style='font-family: Arial; font-size: 24px;'>
  {{Meaning}}
</div>
<div style='font-family: KaiTi, Arial; font-size:50px;'>
  {{Simplified chinese}}
</div>
<a style="font-size: 10px" target="chinese" href="http://www.mdbg.net/chindict/chindict.php?page=worddict&wdrst=0&wdqb={{Simplified chinese}}">MDBG</a>
<div style='font-family: KaiTi, Arial; font-size: 16px; padding-top: 10px'>
  <tts service="google" voice="zh-cn">
    <tts service="android" voice="zh_CN">
      {{Example}}
    </tts>
  </tts>
</div>