【PowerToys】「Text Extractor」OCRで英語を優先させる方法

この記事では、Windowsで使える便利機能を詰め込んだソフト「Microsoft PowerToys」の「Text Extractor」機能で、日本語ではなく英語を優先させる方法を書きます。
手動で英語のOCRファイルを入手する必要があります。
「PowerToys」の「Text Extractor」機能はデフォルトで日本語が優先されるようになっています。日本語テキストを取得する時には便利ですが、英語テキストだと不便です。

試しに日本語を優先した状態で「Microsoft PowerToys」というテキストを読み取ってみました。結果は以下のようになりました。
<!--「Microsoft PowerToys」というテキストを日本語優先で読み取った結果-->
Mic 「 0S0負 PowerToys
「Mic」と「PowerToys」の部分は読み取れましたが他は正しくありませんでした。
テキストコピーできないソフトや画像上のテキストをクリップボードにコピーできる便利な機能ですが、優先言語以外の取得は精度が悪いです。

僕は日本語テキストの場合キー入力したほうが早い時があります。OCRソフトを活用する場面は英語テキストをコピーする時です。
そんな僕からしたら日本語優先だと困るので英語優先にしてみます。「PowerShell」を使って英語用の言語パックをインストールします。
優先言語を「英語」にすることで逆に日本語のテキストが認識できなくなります。いちお切り替えることは可能ですが、本記事は主に英語テキストを取得するユーザー向けです。英語以外の言語にすることも可能です。
「Text Extractor」用の英語のOCR言語パックを入手する方法
「PowerShell」を管理者権限で起動する
Windowsに標準搭載されている「Windows PowerShell」を管理者として実行します。コマンドプロンプトや通常権限の「PowerShell」だとダメなので注意です。

言語パックをダウンロードする
起動できたら以下のコマンドをコピペしてEnterで実行します。「en-US」が英語の言語パックです。
$Capability = Get-WindowsCapability -Online | Where-Object { $_.Name -Like 'Language.OCR*en-US*' }

恐らく1つ目のコマンドは特に成功メッセージなどないと思います。勝手に2行目が表示されます。続いて以下のコマンドを実行します。
$Capability | Add-WindowsCapability -Online

「Operation Running(動作確認中)」というメッセージが表示されます。
その下に「〇」の進行状況が表示されるので満タンになるまで待ちます。使っているテーマなどによっては「〇」ではなくプログレスバー(進行状況バー)かもしれません。

下記画像のように徐々に「〇」の数が増えていきます。
僕の環境だと数分程度かかりました。辛抱強く待ちます。いくら待っても変わらない場合Enterを押します。場合によっては画面(進行具合)が更新されるかもしれません。

僕は素人なので分かりませんが、恐らく1つ目のコマンドで英語のOCR言語パックを選択、2つ目のコマンドでローカル(PC)内にダウンロードしているんだと思います。
ダウンロードが完了すると自動的に青色背景のメッセージが消えて下記画像のように表示されます。
Path :
英語のOCR言語パックを「PowerShell」経由で入手した後のメッセージ
Online : True
RestartNeeded : False
メッセージは理解できませんが成功ってことです。

実際にインストールされているか確認する
「Microsoft PowerToys」を起動して「Text Extractor」ページを開きます。
「優先する言語」のドロップダウンリストを開くと、日本語だけでなくインストールした「English (United States)」も表示されます。選択することで優先言語を「英語」に変えられます。

エクスプローラーの以下の場所を開くことで実際にダウンロードされているか確認できます。
C:\Windows\OCR
インストール前は「ja-jp」だけでしたが、インストール後は「en-us」フォルダーもあります。

ダウンロードしたけど「en-us」フォルダーがない場合、別のドライブの「OCR」フォルダーにダウンロードされていないかチェックしましょう。配置する場所は「C:\Windows\OCR
」です。Dドライブなどではありません。
実際にOCR精度をチェックする
優先言語を「英語」にした上で冒頭で試した「Microsoft PowerToys」というテキストを再度取得してみます。以下のようになりました。
<!--「Microsoft PowerToys」というテキストを英語優先で読み取った結果-->
Microsoft Power Toys
「PowerToys」の間に余計な半角空白が入ってしまいましたが、綴り自体は正常に取得できています。やはり自分が取得したい言語を優先にしたほうが便利です。

逆に「ナポリタン寿司」という日本語テキストで試してみましたが、そもそも取得できませんでした。いくら範囲選択しても画面が元に戻らず、クリップボードを見てもコピーされていませんでした。
日本語を取得したい場合「Text Extractor」機能を発動した後、文字を選択する前に画面上の好きな場所を右クリックします。
インストールしている言語パックの切り替え右クリックメニューが表示されるので「日本語」をチェックします。これで一時的に優先言語が日本語に切り替わるので取得したい文章を範囲選択します。

次回は再び優先言語に設定した言語になります。頻繁に使う言語を優先にしてそれ以外は右クリックから切り替えるようにするといいかなと思います。
英語のOCR言語パックをアンインストールする方法
英語のOCR言語パックが不要になった場合、同じように「Windows PowerShell」を管理者で起動して削除コマンドを実行します。
インストールする時と同様2つのコマンドが必要です。まず1つ目は以下のコマンドです。
$Capability = Get-WindowsCapability -Online | Where-Object { $_.Name -Like 'Language.OCR*en-US*' }

2行目が表示されたら2つ目のコマンドを実行します。
$Capability | Remove-WindowsCapability -Online

青色背景のメッセージが表示されるので「〇」がいっぱいになるまで待ちます。すぐに終わります。インストール時と同様3行くらいのメッセージが表示されればOKです。

「C:\Windows\OCR
」から「en-us」フォルダーが消えます。「Text Extractor(PowerToys)」アプリ画面からも「English (United States)」がなくなります。

英語以外のOCR言語パックを入手する方法
「PowerShell」で以下のコマンドを実行することで入手可能なOCR言語パックが一覧表示されます。
Get-WindowsCapability -Online | Where-Object { $_.Name -Like 'Language.OCR*' }

例えば、「Language.OCR~~~ja-JP
」は日本語です。「ja-JP
」という部分で判別できます。ISO言語コードと国名コードの組み合わせになっています。こちらのサイト様で調べられます。
2025年2月時点で調べた一覧を貼っておきます。今後変わる可能性もあるのであんまり信用しないでください。
Language.OCR~~~ar-SA~0.0.1.0
Language.OCR~~~bg-BG~0.0.1.0
Language.OCR~~~bs-LATN-BA~0.0.1.0
Language.OCR~~~cs-CZ~0.0.1.0
Language.OCR~~~da-DK~0.0.1.0
Language.OCR~~~de-DE~0.0.1.0
Language.OCR~~~el-GR~0.0.1.0
Language.OCR~~~en-GB~0.0.1.0
Language.OCR~~~en-US~0.0.1.0
Language.OCR~~~es-ES~0.0.1.0
Language.OCR~~~es-MX~0.0.1.0
Language.OCR~~~fi-FI~0.0.1.0
Language.OCR~~~fr-CA~0.0.1.0
Language.OCR~~~fr-FR~0.0.1.0
Language.OCR~~~hr-HR~0.0.1.0
Language.OCR~~~hu-HU~0.0.1.0
Language.OCR~~~it-IT~0.0.1.0
Language.OCR~~~ja-JP~0.0.1.0
Language.OCR~~~ko-KR~0.0.1.0
Language.OCR~~~nb-NO~0.0.1.0
Language.OCR~~~nl-NL~0.0.1.0
Language.OCR~~~pl-PL~0.0.1.0
Language.OCR~~~pt-BR~0.0.1.0
Language.OCR~~~pt-PT~0.0.1.0
Language.OCR~~~ro-RO~0.0.1.0
Language.OCR~~~ru-RU~0.0.1.0
Language.OCR~~~sk-SK~0.0.1.0
Language.OCR~~~sl-SI~0.0.1.0
Language.OCR~~~sr-CYRL-RS~0.0.1.0
Language.OCR~~~sr-LATN-RS~0.0.1.0
Language.OCR~~~sv-SE~0.0.1.0
Language.OCR~~~tr-TR~0.0.1.0
Language.OCR~~~zh-CN~0.0.1.0
Language.OCR~~~zh-HK~0.0.1.0
Language.OCR~~~zh-TW~0.0.1.0
各項目2行目の「State」がインストール状態を表しています。「Installed」がインストールされていて「NotPresent」が未インストール状態です。デフォルトでは日本語だけ「Installed」になっています。
上記リストを参考にして入手したい言語に置き換えたインストールコマンドを実行します。
下記コマンドが「フランス語のOCR言語パック」の1つ目コマンドですが、この中の「fr-FR
」という部分をご自身が欲しい言語パックに置き換えます。英語なら「en-US」にします。
$Capability = Get-WindowsCapability -Online | Where-Object { $_.Name -Like 'Language.OCR*fr-FR*' }
次に2つ目コマンドを実行します。2つ目のコマンドはどの言語でも共通しています。アンインストールするコマンドと間違えないよう注意です。
$Capability | Add-WindowsCapability -Online

上記画像は新しい「PowerShell」なので若干UIが異なります。
フランス語を入手できました。

中国語の場合は以下になります。2つ目のコマンドは共通なので省略します。
$Capability = Get-WindowsCapability -Online | Where-Object { $_.Name -Like 'Language.OCR*zh-CN*' }
感想
以上、「Microsoft PowerToys」の「Text Extractor」機能に日本語以外の言語パックを追加する手順でした。
本記事は以下のMicrosoftの公式ドキュメントを参考にさせていただきました。「PowerToys」かなり便利です。
参考:PowerToysWindows 用の Text Extractor ユーティリティ | Microsoft Learn