Pythonで作るGUIアプリ 番外編
今回は、番外編としてGUI付きデスクトップアプリの応用例を紹介いたします。先日、少し時間が取れたため世界一高精度な翻訳ツールであるDeepLを使ってKindle電子書籍の翻訳(英語→日本語)のアプリをPySimpleGUIを使って作成してみました。
きっかけは、英語の技術書をKindleで読んでいたところぬるっぽ様が開発された翻訳支援ツールPCOTを知りDeepL翻訳と連携されたアプリで非常に面白いな。Pythonでも自分専用のKindle翻訳アプリを作れるのではないかなと触発されたからです。
今回は、図1、図2のようなGUI付きアプリを作成しました。もちろんPySimpleGUIを使っています。
図1のメインウィンドウでは、Kindleの読み取り座標を指定するインプットテキスト、OCR領域の確認ボタン、読み取りページ数そしてDeepLでの翻訳実行ボタンを設置しています。OCR領域の確認ボタンを押すと、図2の右側のようにOCRで読み取る領域が表示されます。表示がずれている場合は、座標をインプットテキストから調整出来ます。
DeepL翻訳のボタンが押されると、指定したページ数分だけ自動でOCR読み取りを実行し、DeepL APIを使って翻訳を実行します。そして、図3のように翻訳結果をポップアップに表示します(txtでも書き出すようにしています)。
今回は、Kindleでシャーロックホームズを翻訳してみました。56ページを1分ちょっとで翻訳する事が出来ました。翻訳精度もDeepLを使っていますので、かなり良いと思います。Twitterで実際に動作している動画を張り付けてありますので、ご興味あればご確認ください。
手動で同じことをしようと思うとかなり時間がかかってしまいます。OCR領域の切り出し→OCR実行→OCR結果のDeepL翻訳→翻訳結果を別のメモ帳などへ貼り付けをする必要があります。1ページあたり20秒かかったとすると18分以上かかってしまいます。
英語の技術書などは500ページくらいあるものもありますので、3時間弱かかります。たぶん途中で心が折れてしまって技術書を読む機会が減ってしまうかもしれません。
プログラムを学ぶと、このような自動化も出来て自分専用アプリを気軽に作成出来るようになります。
特にPySimpleGUIは習得が容易ですので、是非とも使ってみてください。GUI部分が簡単であれば、それ以外の部分に時間と労力をかけることが可能になります。
今回のアプリは、PySimpleGUIだけではなく、Tesseract-OCR、PyAutoGUI、pandas、DeepL APIなどを使用していますので入門講座では紹介しきれませんので別の機会に紹介させていただければと思います。
記事が参考になりましたら、❤️を押していただけると励みになります😊