以下のJEPAセミナーで、中根雅文(@ma10)さんが、スクリーンリーダーのNVDAからWindows10のOCR機能を呼び出して、アマゾンの画像ベースの固定レイアウトのKindleストアのコンテンツを文字認識させて読み上げさせるというハックを紹介されていました。
なるほど、そんな方法が!と思ったので、国立国会図書館デジタルコレクション(以下、NDLデジコレ)で試してみました。
NVDAの画像認識機能
NVDAのこの機能は、現行の最新版である2017.3版から実装された機能です。詳しい解説はNVDA 2017.3jp ユーザーガイドにありますので、その抜粋を以下に掲載します。
9. 画像認識
コンテンツの制作者がスクリーンリーダー利用者に対して十分な情報を提供していない場合には、画像認識が利用できます。 NVDA は Windows 10 に内蔵された文字認識エンジン(OCR)に対応しています。 そのほかの画像認識エンジンは NVDA アドオンとしての提供が可能です。
画像認識コマンドを実行すると、NVDA は現在のナビゲーターオブジェクトの画像からその内容を認識します。 既定の設定では、ナビゲーターオブジェクトはシステムフォーカスまたはブラウズモードのカーソルに追従するので、まず認識したい場所にシステムフォーカスまたはブラウズモードのカーソルを移動します。 例えば、ブラウズモードカーソルで画像に移動して認識を実行すれば、その画像が認識されます。 しかし、オブジェクトナビゲーションで認識対象を選ぶこともできます。例えば、アプリのウィンドウ全体を認識の対象にしたい場合などです。
認識が完了すると、認識結果がブラウズモードのドキュメントとして同じ場所に置かれます。その内容は矢印キーなどを使って読み取ることができます。 Enter キーまたはスペースキーを押すと、カーソル位置のテキストで既定のアクションが実行されます。これは通常のマウスクリックに相当する操作です。 Esc キーを押すと認識結果のドキュメントは消去されます。
9.1. Windows 10 文字認識
Windows 10 は多くの言語に対応した文字認識エンジンを内蔵しています。 NVDA はこのエンジンを使って画像やアクセシブルでないアプリに含まれるテキストを認識できます。
Windows 10 文字認識 の設定ダイアログで、文字認識に使う言語を選ぶことができます。 追加の言語をインストールするには Windows のスタートウィンドウから「設定」「時刻と言語」「地域と言語」を選び、「言語を追加する」を実行します。
Windows 10 文字認識で現在のナビゲーターオブジェクトの画像を認識するには NVDA+R を押します。
NDLデジコレのコンテンツで文字認識して読み上げる
結論から言うと、NDLデジコレのコンテンツを文字認識して読み上げることができました。
コンテンツ閲覧画面の標準表示(書誌情報エリアとコンテンツ表示エリアが表示されているもの)、フルスクリーンモードで試しました。
私がNVDAの操作に不慣れで、デジコレの標準表示画面上でNVDAのフォーカス(ナビゲーターオブジェクト)をうまく当てることができず、文字認識させることが私はできなったのですが、お手伝いいただいた中根さんはデジコレの標準表示画面上で文字認識させることができたようです(ありがとうございます)。
デジコレのフルスクリーンモードは私のほうでも、文字認識させて読み上げさせることができました。こちらは簡単。
もしNVDAの文字認識機能を使用して、NDLデジコレを使う場合は、フルスクリーンモードで使用することがおすすめです。標準表示と比べて、画像が拡大されるので、認識率が向上するということ(フルサイズモードで認識率が良くない場合は表示を拡大するとよくなる可能性あり)と、UIがシンプルになるので、目的の画像にフォーカスまたはナビゲーションオブジェクトを選択しやすいからです(画面の表示した段階で基本的にフォーカスが当たっている)。
コマの移動も左右の矢印キーで行えるので、コマ移動も容易です。このエントリの最後に今回の使用で利用しそうなNDLデジコレのショートカットを掲載しておきます。
利用の流れとしては、以下の流れになるでしょうか。
- NDLデジコレで目的の資料の閲覧画面に入る
- Fキーでフルスクリーンモードに切り替え
- 表示したいコマをを選択して表示
- NVDAキー+Rキーで文字認識
- 読み上げ
- 左右の矢印キーでコマの移動
この機能、面白いですね。他のものでも試してみたいと思います。
参考 NDLデジコレのショートカット
- フルスクリーンモードのオンオフの切り替え: Fキー
- 前のコマに戻る: 左矢印キー
- 次のコマに移動する: 右矢印キー