最近Ankiを使って単語の記憶をしようという試みをしている。もともとはFluent Foreverという本に載っていたところからこのアプリを知った(最近になって邦訳「脳が認める外国語勉強法」があると知った)。
最初は英語とその日本語訳を入れたシンプルなカードを作ろうとしていたのですが、なんとなく味気ないなとということで、画像を追加したり、音声を追加してみたりと色々しているうちに、手作業でやるのがしんどいなということになり、generate-anki-cardsというツールを作成してみた。他の人に使ってもらいたい意図もなく、npmツールとしては公開する必要性がまったくないのですが、なんとなくついでだったのでnpmにも公開generate-anki-cards - npm。npmでインストールできる。
1 | npm install -g generate-anki-cards |
下のようなCSVを用意して、
1 | apple,リンゴ |
1 | 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からもデータの取得が可能で、こんな風に英語以外の暗記でも使える。使うかどうかはわからないけど。
というメモ。