紙の教科書や問題集を使っていると、カード作成が一気に面倒になります。画面の中のテキストならコピーで済むのに、紙は打ち直すしかない——これはカード作成をやめる十分な理由になります。
写真を撮るだけでカードになれば理想的ですが、実際にやってみると撮ったあとのほうが本番です。この記事では、iPhone だけで写真から文字を取り出す方法、取り出したテキストをカードに割る手順、そして文字認識で何ができて何ができないのかを書きます。
後半は、日本語の文字認識をアプリに組み込んだときに分かったことです。
まず:専用の機能は要りません
暗記アプリの「OCR 機能」を探す前に確認してほしいことがあります。iPhone は標準で写真の文字を読み取れます。
「テキスト認識表示(Live Text)」という機能で、使い方は簡単です。
- 写真アプリ(またはカメラのプレビュー)で対象の写真を開く
- 文字の部分を長押しする。認識されていれば選択できる状態になる
- 範囲を調整してコピー
これで文字列が手に入ります。あとは暗記アプリの一括作成画面に貼り付けるだけです。iOS 標準なので追加費用はなく、どのアプリでも使えます。 AnkiMobile はテキスト/CSV の取り込みに対応しているので、Anki を使っている場合もこの経路が通ります。
正直に書いておくと、アプリ内の OCR ボタンと Live Text は、認識そのものの精度が基本的に同じです。どちらも Apple の端末内の文字認識を使うからです。専用ボタンの価値は精度ではなく手数(アプリを移動しないで済む)だけで、そこは正しく期待してください。
取り出したテキストを、カードに割る
ここからが本題です。文字を取り出しただけではカードになりません。 どこが表でどこが裏かを決める必要があります。
多くの暗記アプリの一括作成は、書式で判断します。私たちのアプリが対応しているのは次の4つで、他のアプリでもだいたい似た方式です。
| 書式 | 書き方 | 向いている素材 |
|---|---|---|
| Q/A マーカー | Q. 〜 の次の行に A. 〜 | 一問一答形式の問題集 |
| 区切り文字 | 表,裏 / 表:裏 のように1行1カード | 単語リスト・用語集 |
| 空行区切り | 1行目が表、続く行が裏。カード間は空行 | 説明が数行になるもの |
| CSV | カンマ区切り。書き出したファイルの取り込みにも使う | 表計算で整えた素材 |
判定は自動です。実装としては4方式すべてで解析してみて、最も多くカード化できた方式を採用しています。ユーザーに「これは Q/A 形式です」と申告させない代わりに、こういう作りにしています。
ただし、OCR 直後のテキストがこの書式になっていることは、まずありません。
(写真から取り出したまま)
第3章 意思表示
1 心裡留保 表意者が真意でないことを知りながら
した意思表示は原則として有効である
2 虚偽表示 相手方と通じてした虚偽の意思表示は
無効である
行が原稿の見た目どおりに切れているので、1つの項目が2行に分かれています。ここを整える一手間が、実は全工程で一番時間がかかります。
現実的なやり方は、取り出したテキストをメモアプリに貼り、区切り文字の形に直してから一括作成に流すことです。上の例なら次のようにします。
心裡留保,真意でないと知りつつした意思表示。原則として有効
虚偽表示,相手方と通じてした虚偽の意思表示。無効
この整形の過程が、そのままカード設計になっています。 面倒に見えますが、ここを飛ばすと後述する失敗をします。
実装して分かった、OCR の現実
① 「日本語対応」と書いてあっても、日本語が拾えないことがある
実装したときに一番時間を取られた問題です。英語は完璧に読めるのに、日本語だけ1文字も返ってこない。
原因はライブラリの既定値でした。Apple の文字認識は認識対象の言語を優先順で指定できるのですが、そのライブラリは言語を指定せずに呼び出していて、既定が英語のみだったのです。ライブラリの説明には日本語対応と書かれていましたが、実際には呼び出し側で ja-JP を明示しないと日本語は返りません。
私たちはライブラリにパッチを当て、認識言語に日本語と英語を指定し、言語補正を有効にすることで解決しました。
利用者としての教訓はこれです。「OCR 対応」と書かれていても、日本語を実際に撮ってみるまで信用できません。 試用時は英語ではなく、自分が使う言語の教材で確かめてください。
⚠️ この制約は日本語に限りません。 中国語・韓国語など、指定されていない言語は同じ理由で返ってきません(英語以外の言語で単語帳を自作するときに詰まる4点)。
② 端末の中だけで処理される
Apple の文字認識は端末内で動きます。写真がどこかのサーバーに送られることはなく、通信も課金も発生しません。機内モードでも動きます。
教材の写真は著作物であることが多いので、この点は実務上わりと重要です。
③ 返ってくるのは「行の配列」で、レイアウトは失われる
文字認識の出力はテキストの行の並びです。表組みや2段組は、視覚的な構造を失った状態で返ってきます。
- 2段組のページ:左右の段の行が交互に混ざることがある
- 表:セルの対応関係は残らない
- 図の中の文字:本文と区別されずに混ざる
対策は撮り方の側にあります。1段組の範囲だけを写す。見開きではなく片ページずつ。表は撮らずに自分で書く。
④ 縦書きと手書きは弱い
私たちの実装でも、ここは残っている課題です。横書きの印刷物は実用的な精度で読めますが、縦書きの書籍や手書きのノートは期待しないほうがいいというのが実感です。
縦書きの教材が中心なら、写真経由は諦めて手入力するほうが速い場合があります。
⑤ 入口を増やしても、後ろは変えない
設計上の判断も1つ書いておきます。私たちは OCR の出力を「テキスト行の配列」という形に固定しました。
こうしておくと、写真から読み取っても、貼り付けても、ファイルから読み込んでも、後段のカード化処理は同じものが使えます。入力経路が増えるたびにカード化のロジックが枝分かれすると、書式の判定がすぐ壊れます。
同じ理由で、貼り付けからの CSV 取り込みを後から足したときも、既存の判定方式には一切手を入れずに済みました。
一番よくある失敗:教科書を丸ごと取り込む
ここが本題かもしれません。
写真から一気に取り込めるようになると、ページ単位で放り込みたくなります。そして実際にやると、こうなります。
- 1ページぶんのテキストが、巨大な1枚のカードになる
- あるいは、行ごとにバラバラの断片カードが何十枚もできる
どちらも学習には使えません。取り込みが速くなっても、良いカードにはならないからです。1枚のカードは1つの問いに対応している必要があり、その分割は自分でやるしかありません。
もうひとつの問題は量です。1回の取り込みで200枚作れてしまうと、その200枚は明日以降の復習として必ず戻ってきます。間隔反復は「入れた枚数」を将来の復習として必ず返してくる仕組みなので、これは避けられません。1日20枚の投入でも1年後には毎日約290枚になるので、写真経由の一括作成は復習の負債を最速で作る方法でもあります。
現実的な使い方はこうです。
写真は「素材の回収」まで。カード化は別の作業として、後でやる。
移動中に教材を撮っておき、机に向かったときに整形してカードにする。この分け方なら、撮影の手軽さを活かしつつカードの質を落とさずに済みます。
手順のまとめ
どのアプリでも使えるルート
- 教材を撮る(1段組の範囲・明るく・なるべく正対して)
- 写真アプリで文字を長押し → コピー
- メモアプリに貼り、区切り文字の形に整える(
表,裏) - 暗記アプリの一括作成に貼り付けて、プレビューを確認してから取り込む
アプリ内 OCR があるルート
- 一括作成画面から「写真から読み取る」を選ぶ
- 抽出結果がそのまま入力欄に入るので、その場で整える
- プレビューを確認して取り込む
違いは手数だけです。3の整形は、どちらのルートでも必要です。
まとめ
- 専用機能は要らない。 iOS 標準の Live Text(写真の文字を長押し→コピー)でほぼ足りる。アプリ内 OCR も同じ Apple の端末内認識なので、精度は基本的に同じで、違いは手数だけ
- 文字を取り出しただけではカードにならない。書式(Q/A・区切り文字・空行・CSV)に整える一手間が全工程で一番重い
- 「OCR 対応」と書かれていても日本語が拾えないことがある(認識言語の指定漏れ)。試用は必ず自分の言語の教材で
- 認識は端末内で完結し、通信も課金も発生しない
- レイアウトは失われる(2段組・表は混ざる)。縦書きと手書きは弱い
- 最大の失敗はページ丸ごとの取り込み。取り込みが速くなっても良いカードにはならず、復習の負債だけが最速で積み上がる
- 写真は素材の回収まで。カード化は別の作業にする
この記事について
このサイトは、暗記アプリ RepeCa の開発元が運営しています。後半は、端末内 OCR を実装したときに実際に踏んだ内容です(認識言語の指定漏れで日本語が返らなかった件、出力を行の配列に固定した設計、縦書き・手書きが弱いという残課題)。
専用の OCR ボタンが無くても、iOS 標準の Live Text でほとんど同じことができます。 私たちも実装している機能ですが、価値は精度ではなく手数なので、そこは正しく書いておきます。同じ理由で、音声入力の専用機能は「OS のキーボードのマイクで足りる」と判断して作りませんでした。
- Apple. iPhone でテキスト認識表示を使って写真またはビデオに含まれる情報を利用する. Apple サポート(日本)(2026-08-23 確認)— Live Text の存在と操作手順の裏づけ
- Apple.
recognitionLanguages/VNRecognizeTextRequest. Apple Developer Documentation(2026-08-23 確認)— 認識言語を優先順で指定できること、および認識が端末内で完結することの裏づけ