最近Ankiを使って単語の記憶をしようという試みをしている。もともとはFluent Foreverという本に載っていたところからこのアプリを知った(最近になって邦訳「脳が認める外国語勉強法」があると知った)。
最初は英語とその日本語訳を入れたシンプルなカードを作ろうとしていたのですが、なんとなく味気ないなとということで、画像を追加したり、音声を追加してみたりと色々しているうちに、手作業でやるのがしんどいなということになり、generate-anki-cardsというツールを作成してみた。他の人に使ってもらいたい意図もなく、npm ツールとしては公開する必要性がまったくないのですが、なんとなくついでだったので npm にも公開generate-anki-cards - npm。npm でインストールできる。
npm install -g generate-anki-cards
下のような CSV を用意して、
apple,リンゴ
banana,バナナ
cherry,さくらんぼ
generate-anki-cards -i ./data.csv -o ./out
みたいに実行すると、Puppeteer でCambridge Dictionary のサイトにアクセスして、データがあれば、画像と音声データをダウンロードして保存します。Anki で実際に利用する場合は、collection.media フォルダにそれらをコピーする必要がある(参考:File Locations)。
Cambridge Dictionary に画像または音声データがない場合は、Google Translate のサイトから音声データを取得したり、Unsplash からダウンロードしたりします。Google Translate に Puppeteer で音声データを取得するより、CLOUD TEXT-TO-SPEECHを使う方が良いのかなという思いはありつつ、大量にアクセスするようなものでもないし、とりあえずそのまま。Unsplash についても API を使うべきと思いつつ、Puppeteer でアクセスしてダウンロードしている。個人利用だし、単語リストの元になる CSV ファイルは公開してないので、、このくらいは良いかなと…
なんやかんやで作成した読み込みファイルを使って Anki カードを作成した結果がこんな感じ。
なんやかんやで作りながら紆余曲折してしまったので、この年末年始の時間をだいぶ費やしてしまったけど、wikipedia や weblio からもデータの取得が可能で、こんな風に英語以外の暗記でも使える。使うかどうかはわからないけど。
というメモ。