広告を利用しています

当サイトは広告を掲載しています。消費者庁が2023年10月1日から施行した景品表示法の規制対象(通称:ステマ規制)にならないよう配慮して記事を作成しています(記事はこちら、消す方法はこちら

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

2023年1月12日豆知識系

「Microsoft PowerToys」のアイコン

この記事では、Windowsで使える便利機能を詰め込んだソフト「Microsoft PowerToys(マイクロソフト・パワートイズ)」の「Text Extractor(テキスト・エクストラクター)」機能で、日本語ではなく、英語を優先させる方法を書きます。

手動で、英語のOCRファイルを入手する必要があります。

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

「PowerToys」の「Text Extractor」機能は、デフォルトで日本語が優先されるようになっています。これは、日本語テキストを取得する時には便利ですが、英語テキストだと不便です。

「PowerToys」の「Text Extractor」スクリーンショット

試しに、日本語を優先した状態で、「Microsoft PowerToys」というテキストを読み取ってみました。結果は、以下のようになりました。

<!--「Microsoft PowerToys」というテキストを日本語優先で読み取った結果-->
Mic 「 0S0負 PowerToys

「Mic」と「PowerToys」の部分は読み取れましたが、他は正しくありませんでした。テキストコピーできないソフトや、画像上のテキストをクリップボードにコピーできる便利な機能ですが、優先言語以外の取得は精度が悪いです。

優先言語を日本語にした状態で、「Microsoft PowerToys」英語テキストを取得した画像

僕は、日本語テキストの場合、キー入力したほうが早い時があります。こういったOCRソフトを活用する場面は、大体英語テキストをコピーする時です。僕は、英語が全くできないので、ソフトの英語テキストをコピーして、翻訳したい時に使っています。

そこで、「Text Extractor」の優先言語を「英語」にしてみます。「PowerShell(パワーシェル)」で、インストールするコマンドを実行します。

なお、優先言語を「英語」にすることで、逆に日本語のテキストが認識できなくなります。いちお、切り替えることは可能ですが、本記事は、主に英語テキストを取得するユーザー向けです。英語以外の言語にすることも可能です。

英語のOCR言語パック入手方法

Windowsに標準搭載されている「Windows PowerShell」を管理者として実行します。古いほうではなく、新しい「PowerShell 7」でもOKです。コマンドプロンプトや、通常権限の「PowerShell」だとダメなので注意です。

スタートメニューで「Windows PowerShell」と検索した画像

起動できたら、以下のコマンドをコピペして、Enterで実行します。「en-US」が、英語の言語パックです。

$Capability = Get-WindowsCapability -Online | Where-Object { $_.Name -Like 'Language.OCR*en-US*' }
「PowerShell」を使って、英語のOCR言語パックをインストールする手順画像1

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

$Capability | Add-WindowsCapability -Online
「PowerShell」を使って、英語のOCR言語パックをインストールする手順画像2

「Operation Running(動作確認中)」という青色背景のメッセージが表示されます。その下に「〇」の進行状況が表示されるので、満タンになるまで待ちます。

「PowerShell」を使って、英語のOCR言語パックをインストールする手順画像3

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

「PowerShell」を使って、英語のOCR言語パックをインストールする手順画像4

僕は素人なので分かりませんが、恐らく1つ目のコマンドで英語のOCR言語パックを選択、2つ目のコマンドで、ローカル(PC)内にダウンロードしているんだと思います。

ダウンロードが完了すると、自動的に青色背景のメッセージが消えて、下記画像のように表示されます。

Path :
Online : True
RestartNeeded : False

英語のOCR言語パックを「PowerShell」経由で入手した後のメッセージ

メッセージは理解できませんが、恐らく成功していると思います。

「PowerShell」を使って、英語のOCR言語パックをインストールする手順画像5

実際にインストールされているか確認する

「Microsoft PowerToys」を起動して、「Text Extractor」ページを開きます。

「優先する言語」のドロップダウンリストを開くと、日本語だけでなく、インストールした「English (United States)」も表示されます。選択することで、優先言語を「英語」に変えられます。

「English (United States)」を追加した後の「PowerToys」の「Text Extractor」スクリーンショット

エクスプローラーの以下の場所を開くことで、実際にダウンロードされているか確認できます。

C:\Windows\OCR

インストール前は、「ja-jp」だけでしたが、インストール後は「en-us」フォルダーもあります。

ダウンロードしたけど、「en-us」フォルダーがない場合、別のドライブの「OCR」フォルダーにダウンロードされていないかチェックしましょう。配置する場所は、「C:\Windows\OCR」です。Dドライブなどではありません。

実際にOCR精度をチェックする

優先言語を「英語」にした上で、冒頭で試した「Microsoft PowerToys」というテキストを再度取得してみます。以下のようになりました。

<!--「Microsoft PowerToys」というテキストを英語優先で読み取った結果-->
Microsoft Power Toys

「PowerToys」の間に、余計な半角空白が入ってしまいましたが、綴り自体は正常に取得できています。やはり、自分が取得したい言語を優先にしたほうが便利です。

優先言語を英語にした状態で、「Microsoft PowerToys」英語テキストを取得した画像

逆に、「ナポリタン寿司」という日本語テキストで試してみましたが、そもそも取得できませんでした。いくら範囲選択しても、画面が元に戻らず、クリップボードを見ても、コピーされていませんでした。

日本語を取得したい場合、「Text Extractor」機能を発動した後、文字を選択する前に、画面上の好きな場所を右クリックします。

インストールしている言語パックの切り替え右クリックメニューが表示されるので、「日本語」をチェックします。これで、一時的に優先言語が日本語に切り替わるので、取得したい文章を範囲選択します。

「Text Extractor」発動中の右クリックメニュー

次回は、再び優先言語に設定した言語になります。頻繁に使う言語を優先にして、それ以外は、右クリックから切り替えるようにするといいかなと思います。

英語のOCR言語パックをアンインストールする方法

英語のOCR言語パックが不要になった場合、同じように「Windows PowerShell」を管理者で起動して、削除コマンドを実行します。

インストールする時と同様、2つのコマンドが必要です。まず1つ目は、以下のコマンドです。

$Capability = Get-WindowsCapability -Online | Where-Object { $_.Name -Like 'Language.OCR*en-US*' }
「PowerShell」を使って、英語のOCR言語パックをアンインストールする手順画像1

2行目が表示されたら、2つ目のコマンドを実行します。

$Capability | Remove-WindowsCapability -Online
「PowerShell」を使って、英語のOCR言語パックをアンインストールする手順画像2

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

「PowerShell」を使って、英語のOCR言語パックをアンインストールする手順画像3

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

英語のOCR言語パックを削除した「C:\Windows\OCR」画像

英語以外のOCR言語パックを入手する方法

「PowerShell」で以下のコマンドを実行することで、入手可能なOCR言語パックが一覧表示されます。

Get-WindowsCapability -Online | Where-Object { $_.Name -Like 'Language.OCR*' }
「Get-WindowsCapability -Online | Where-Object { $_.Name -Like 'Language.OCR*' }」コマンドを実行した「PowerShell」画像

例えば、「Language.OCR~~~ja-JP」は日本語です。「ja-JP」という部分で判別できます。ISO言語コードと国名コードの組み合わせになっています。こちらのサイト様で調べられます。

2023年1月時点で調べた一覧を貼っておきます。今後変わる可能性もあるので、あんまり信用しないでください。

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」を使って、フランス語のOCR言語パックをインストールする手順画像1

上記画像は、新しい「PowerShell」なので、若干UIが異なります。

フランス語を入手できました。

「PowerShell」を使って、フランス語のOCR言語パックをインストールする手順画像2

中国語の場合は、以下になります。2つ目のコマンドは、共通なので省略します。

$Capability = Get-WindowsCapability -Online | Where-Object { $_.Name -Like 'Language.OCR*zh-CN*' }

感想

以上、「Microsoft PowerToys(マイクロソフト・パワートイズ)」の「Text Extractor(テキスト・エクストラクター)」機能に、日本語以外の言語パックを追加する手順でした。

本記事は、以下のMicrosoftの公式ドキュメントを参考にさせていただきました。「PowerToys」、かなり便利です。

参考:PowerToysWindows 用の Text Extractor ユーティリティ | Microsoft Learn

2023年1月12日豆知識系

Posted by ナポリタン寿司