8年コピペし続けたAnki単語登録、Claude Codeに任せてみた話

Ankiシリーズ、今回は「単語登録そのものを自動化した」話です。いつもは手入力でコピペとかしてAnkiにカードを登録して学習していましたが、さすがにここまでAIが発展してこれば、半自動化してもいいんじゃないかなと、思った次第なのです。

Ankiで重複するカード、記憶を頼りに手作業でタグ付けしてたら大変すぎてClaude Codeに任せてみた話

8年間、ずっとやってきたことがあります。記事や英会話の中で知らない単語に出会ったら、まず付箋か、ノート、もしくはApple信者でありますので、NotesにメモしておけばあとでモバイルからもPCからも見れるようになるのでそこに溜めといて、時間ができた週末に一気にウィズダム英和辞典で意味を調べて、Ankiの新規カードにコピペして登録する。

それだけなんですけど、これがもう地味に疲れてくるんです。 多い時には30くらいになります。

単語数個ならまだいいんです。でも記事を読んでると5個も6個も知らない単語が出てくる時があって、そのたびに「辞書開く→コピペ→Ankiに切り替え→貼る」を繰り返す。単純作業なんですけど、単純作業だからこそ地味にしんどい。わかる人にはわかる疲労感だと思うんですけど、どうですかね。

「単語登録くらい自分でやればいいじゃん」って思う人もいるかもしれません。実際、8年間はそれで回してきたわけですし。でも一度「AIでできないことはないんじゃないかくらい最近進化がすごいし、自動化できたら」って考え始めると、もう手作業に戻る気になれなくなるんですよね。 自分は海外経験もなければ、英語を話さないといけない環境でもなく、ほんと趣味なんです、なので、単語の意味も、必ず正確で、辞書通りに覚えないといけないプレッシャーなんて・・・って、それは誰でも同じかもですが、ある程度AIにいみ出してもらって登録でも、自分用途には十分な訳であります。 そもそも辞書によって定義ちがうときあるし・・・・♪( ´θ`)ノ

で、ある時ふと思ったんですよ。

「これ、まだデッキにない単語をペーストしたら、Claude Codeが勝手にAnkiまで登録してくれないかなー」って。 そしたら自分は記事読んで、会話して、単語だけストックすればいいなーって。

スポンサーリンク

前提:AnkiConnectはすでに動く状態だった

「そもそもAnkiを外部のプログラムから操作するってどういうこと?」と思う方もいると思うので、先に説明しておきます。

AnkiConnect(Ankiというアプリを、外部のプログラムから操作できるようにする拡張機能)は、以前作った「Ankiフラグカードのリライトスキル」(anki-flagスキル)を仕込んだときに、すでに入れていました。なのでCLAUDE君(Claude Codeのことをこう呼んでます)に頼めば、既存のAnkiデッキを直接いじれる土台はもうあったんですよね。

とにかく便利なので、AIといろいろプラグイン繋げれるところまできている英語学習者、そしてAnkiを利用してるなら使わないのは、戦いに刀をもってかないのと同じです。 最近キングダムをみたばかりのスーツマン、例えを考えた瞬間、いくさがでてまいりました笑

こちらはプラグイン

https://ankiweb.net/shared/info/2055492159

CLAUDE君がまずdeckNamesとかmodelNamesというAnkiConnectのコマンドで、私のデッキ構成を確認してくれました。

「単語登録用に『覚えたい語彙』というデッキがありますけど、これ使いますか?」

って聞かれたんですが、いや違うんです。

実際に運用してるのは「英語 備忘」というデッキが主で、なんと積み上がって、もう6,558枚ですよ、6,558枚。ここに出会った単語、言い回し、表現とか全部詰め込んできました。 ナーンにも考えずに。今考えてみればもうすこしこまかく分けてもよかったかなーなんて思ってますが笑

CLAUDE君はそのデッキの直近のノートを確認して、Front/Back(Ankiのカードの表面と裏面のこと。表に単語、裏に意味や例文を書きます)の構成とか、発音記号+品詞+意味+例文っていう私の書き方のクセ(たまにウィズダムをそのままコピペした形跡も…笑)まで把握してから、設計に入ってくれました。

え、かかかかかかぁぁつ!!賢すぎる!!

スキルができるまでの全部(時系列で)

①「スキル化してほしい」と頼んでみた

「単語を貼るだけで整理して登録できるようにしたい、スキル化してほしい」とお願いしました。

結果、~/.claude/skills/tango-seiri/SKILL.mdという新しいスキルファイルが作られて、「単語リストを貼って『整理して』」と言えば起動するようになりました。既存のanki-flagスキルと同じAnkiConnectのパターンが流用できたみたいで、この辺の設計はわりとスムーズでした。

ためていた単語たちを、ただチャットに貼るだけでピピピーと動いてもらえます。

貼って、Ankiに新規カードで入れといて〜よろしく〜〜〜♪( ´θ`)ノ

②登録前に必ずプレビューを出す仕様に

とはいえ、いきなり全自動で登録されるのはちょっと怖いじゃないですか。

「リスト貼ったら、まずこんな感じで登録しますがいいですか?って確認出してほしい」とお願いしました。

これで、単語ごとのFront/Back案を先に見せてもらって、OKが出るまでは実際には登録しない、という必須ステップが組み込まれました。

大量の単語を一気に間違った内容で登録してしまうリスクを防げるので、これは絶対必要な仕様だったなと思います。

また、例えば月曜〜金曜日まで溜めた単語を土日で一気にAnkiに登録してた時は辞書でコピペしてたので間違いはないんですが、今回AIなので、変な意味になってないかの確認が必要です。

で、その日のうちに記憶がまだ新しく、どんな記事の内容か、また単語の意味もわかっている新鮮なうちに、確認して間違いがなさそうかチェックしてAnkiにインポートする流れとしました。

③発音記号とTTS音声をカードに仕込む

普段、Ankiのカードを復習するとき、ショートカットキーの「R」を押すと音声が再生されるようにしてるんです。

あもちろん、カードのなかにMP3などの音声ファイルリンクをはったらという条件ですが。

個人的にウィズダムを使ってるのはこの音声もコピペできるからなのです!ほんと便利でした・・・過去形笑

なので「フォネティック記号(発音記号)と、TTS(Text-to-Speech、文字を音声に変換する技術)からくる自然な発音の音声を後ろのカードに入れてほしい」と頼みました。

ここ、課金APIを一切使わずmacOS標準の機能だけで解決できたのが、地味に嬉しいポイントでした。仕組みはこうです。

say -o word.aiff "word"
afconvert -f m4af -d aac word.aiff word.m4a

sayコマンドでMacに単語を喋らせて音声ファイルを作り、afconvertでAnkiが読める.m4a形式に変換する。それをAnkiConnectのstoreMediaFileでAnkiのメディアフォルダに保存すれば、Back欄に[sound:word.m4a]と書くだけで「R」キー再生ができるようになるんです。

④初回3語で試運転

「じゃあ試しにこの3つ単語登録してください」と、unilateral・coercion・through and throughの3語でお願いしました。先日読んだ The Japan Times Alpha です。

※本リンクはアフィリエイト広告です(PR)

📰 英語学習にThe Japan Times Alphaを使っています

The Japan Times Alpha

週刊の英字新聞で、時事ニュースを英語で読む習慣をつけるのに使っています。語彙解説や文法コーナーもあり、英検・TOEIC対策にも使えます。Fujisanで定期購読すると毎週自動で届くので管理が楽です。

The Japan Times Alpha をFujisanで見る

重複チェック→プレビュー提示→OK→音声生成→AnkiConnectのaddNotesで一括登録、という一連の流れが初めて通しで動いた瞬間です。想定通りに一発で動いてくれて、「おお、良さそう」ってなりました♪( ´θ`)ノ

⑤定義の書式を相談しながら固めていった

「たかが単語カード、そこまで細かく決めなくても」と思うかもしれませんが、ここからが結構やり取りが長かったところです。「定義が複数あれば①②を入れてほしい、類義語・対義語も入れてほしい」「類義語は(A / B)、対義語はその後に(⇔C / D)で」と、細かく指定していきました。

たとえばunilateralなら「①一般:一方的な/②法律:片務的な」みたいに、分野で意味が大きく変わる単語だけ①②を振る、というルールに落ち着きました。

これ、実は理由があって。以前英検を受けたとき、speculativeを「思索的な」で覚えてたら、試験では「投機的な」の意味で出題されたことがあったんですよ・・・o(`ω´ )o

あの時の悔しさがあったので、複数の意味を残しておく大事さは身に染みてました。

⑥ウィズダム辞書のスクショを見せてしまう

でてきたAIの出力を確認しましたが、なんか文字が少ない。
いままで辞書ベースでなれてきたのもあり、

「8年間ウィズダムをコピペしてきたので、これくらいの情報量あってもいいのでは」

と、unilateralの辞書スクショ(語義1〜6・派生語まで載った本格的なもの)をそのまま見せてみたんです。

さすがに著作権のある辞書の文言をそのままAIで複製するのはまずいので、CLAUDE君と相談して「一般的によく使う意味+試験や記事で紛らわしい意味」だけに絞り、代わりに派生語(-ly, -istなど)を追加する、という折衷案に落ち着きました。

全部を再現するんじゃなくて、実用的な範囲で厚みを持たせる。この落としどころ、わりと納得感ありました。

⑦「音声、なんか作られた感ありません?」

しばらく使ってみて、「音声、もっと自然なTTSないですかね」って相談してみました。

だってなんかわかります?あのブラウザで単語だけしらべて、でてきた結果にたまにスピーカーついてて、ブラウザの音声で発音される音源。あれだったんです。

もっと自然な発音音声ないですか?

調べてもらったら、Macに入っている英語音声は標準のSamanthaだけで、上位互換の自然な声(Enhanced/Premium)はまだダウンロードしてなかったことが判明。

マックのシステム設定→アクセシビリティ→読み上げコンテンツから無料でダウンロードできると教えてもらいました。

実際に開いてみたら「Ava」とかそういう名前じゃなくて「Siri Voice 4」という表記だったんですよね。macOSのバージョンによって表記変わるらしくて、ちょっとややこしかったです(;´Д`A

⑧「Siri Voice 4」をsayコマンドから使う方法を発見

Siri Voice 4をダウンロードしたはいいものの、say -v ?の音声一覧には出てこないんです。新しい音声エンジン扱いだから名前指定ができないみたいで。

結果、-vオプションを丸ごと省略してsayを実行すると、システム設定で選んだ声(=Siri Voice 4)がデフォルトとして自動的に使われることが判明しました。

afplayでその場で再生して聞き比べてみたら、とっても自然で。

これですこれこれ。

スキルの音声生成コマンドから-v Samanthaの指定を削除するだけで解決しました。

⑨27語まとめてバッチ登録

night out・booze・guffaw・giggle・snicker・bonobos・maglev lineとか、いろんな記事から拾ってきた雑多な27語を、まとめてドンと登録してみました。

重複チェックでfandomだけ既存カードとかぶってたのでスキップして、残り26語のプレビューをまとめて提示してもらう流れ。

既存で持ってる単語もきちっと浮き出てきていい感じのルールができました。

⑩「dot tokyo」を思いっきり勘違いする

やはり、一度出力の確認をしてよかったなと思った点。

最初CLAUDE君、表現の dot Tokyo を「.tokyo」というドメインの話だと誤解して定義を作ってきたんですよ。

あ、多分これは「なんか東京の至る所にっていう意味合いっぽいです」と指摘したら、

実際は動詞のdot(〜のあちこちに散らばっている、点在する)の用法で、“cafés dot Tokyo”みたいな使われ方でした。

しかも、登録単語が . Tokyo になってたのでFrontをdotに修正して、動詞としての定義に差し替えてもらいました。

確認作業をつくっておいてよかったなと思った点、また、数日経ってたら、そのまま確認しても気づけず、 おっけ〜〜〜登録しちゃって〜♪( ´θ`)ノ

と間違えて覚えてた可能性あります爆

⑪AIタグで管理する

最後に、「Claudeから作ったものが後で検索・一括変更できるように、(AI)みたいな印を入れたい。タグでもいいんですかね?」と軽く相談してみたんです。

Back欄に文字を埋め込むより、Ankiのタグの方がtag:AIで検索・一括編集できて実用的だろうということで、AIタグを採用することにしました。過去に登録した30枚(初回3語+バッチ27語)にも遡ってタグ付けしてもらって、これでスキルとマニュアルにルールとして明記されました。

使ったAnkiConnect APIまとめ

action用途
deckNames / modelNamesデッキ・ノートタイプの一覧確認
findNotes / notesInfo対象デッキの既存カード確認・重複チェック
storeMediaFile音声ファイルをAnkiのメディアフォルダに保存
addNotes重複を自動スキップしつつ一括登録
addTags過去ノートへの遡及タグ付け

解決・今のところの完成形

tango-seiriという新スキルが完成して、実際に計30語(初回3語+バッチ27語)を、8年運用中の「英語 備忘」デッキに登録できました。

書式(①②の使い分け・類義語(A / B)・対義語(⇔C / D)・派生語行・音声埋め込み位置・AIタグ)は、全部会話の中で相談しながら少しずつ固めていったものです。フォーマットは固定じゃなくて「一緒に見て育てていくもの」という前提でスキルに書いてあります。

感想・次にやりたいこと

8年間「1つずつコピペ」でやってきた作業が、単語を貼ってプレビューにOKを出すだけで終わるようになりました。これ、地味にすごい変化だと思ってます。

発音記号とTTS音声がセットで入るので、Ankiで「R」キーを押せばいつも通り発音を確認しながら覚えられるのも変わらず。著作権のある辞書をそのまま複製せず、実用的な範囲で語義・類義語・派生語を厚めに残す、という落としどころにも納得感がありました。

今後も単語を貼るたびに、多分フォーマットは微調整していくと思います。育っていく過程も含めて、また記事にできたらいいなと思ってます。

同じように、辞書と手作業のコピペでコツコツ単語帳を育ててきた同士の方には、共感してもらえるところがあるんじゃないかなと思います。

今日学んだの英語表現(B2〜C1)

一応英検1級目指してるスーツマンのこの記事のトピックから使えるフレーズをAIがピックアップ。

① streamline(= 〜を効率化する、無駄を省く)

We streamlined the process of adding new vocabulary cards.

「単語カードを追加するプロセスを効率化した」という意味で、今回のスキル作りそのものを表すのにぴったりの単語でした。

② redundant(= 重複した、余分な)

The system automatically skips redundant entries.

「システムは重複した項目を自動的にスキップする」。今回の重複チェック(findNotes)の話にそのまま使えます。

③ tedious(= 退屈な、うんざりするような)

Copying definitions by hand became tedious after a few years.

「何年か経つと、定義を手でコピペするのがうんざりする作業になった」。8年間コピペし続けた気持ちを一言で表すならこれだなと思いました。

参照:Cambridge Dictionary

関連記事

Ankiで重複するカード、記憶を頼りに手作業でタグ付けしてたら大変すぎてClaude Codeに任せてみた話

同じClaude Code×AnkiConnectシリーズの記事もあわせてどうぞ。Ankiフラグカードのリライトの話も、いずれ書けたらと思っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です