名詞リストについてですが、海外のゲームで固有名詞などがそのまま翻訳されずに訳文に出てきた際に任意の名称に置き換えられるというものです。
例えば、Eschalon: Book I のEverSleep墓地とかなどは翻訳されずに
そのまま訳文に「EverSleep」と出てきますがそれを翻訳時に「EverSleep」→「エヴァースリープ」と置き換えてから訳文に表示する機能です。
以下の3行の文章に対してOCRを試してみたところ…
Even so, the Queen seems more
determined than ever. Under her rule,
prosperity awaits the Ant Kingdom!
以下のようにOCRされました。
Even so, the Queen seems determined than ever. Under
アプリケーションの自動拡大設定をオフ※にすると以下のように全体がOCRできたので、この設定の影響の可能性が高いです。
Even so, the Queen seems more determined than ever. Under her rule. prosperity awaits the Ant Kingdom!
忙しい中お返事くださりありがとうございます。
・ホワイトリストについて
リンクの通りで良さそうとのことなので、試しにホワイトリストではなくブラックリストの方に「|」を指定してみました。
結果としてちゃんと「|」を無視してくれるようですね。
(※一番右のは紛らわしいですがIビームです)
前にちゃんと動作しなかったのは、画像側の問題だったかもしれません。
他に何かOCRの段階で無視した方がいい文字などありましたら、是非助言をお願いします。
・余白について
余白についてですが、画像の二値化を行わないので、決め打ちで白や黒を入れるのは難しいですね・・・。やれるとしたら画像の一番外側を拡張して引き伸ばす感じになるんでしょうかね?
・プログラムについて
ことプログラムの分野においては、素人玄人問わず、出来る人はすごいという認識です。
趣味であそこまでやれるのはすごいですね、素直に尊敬します。
フィードバックはモチベーション維持に直結しますので、どしどしください。また、こちらも質問させてください。
遅くなりました、今ダウンロードして起動確認をしてみました。
どうも、DeepL が起動しないようです。
原文右クリック時も起動しません。
予め、DeepL を起動しておくと意図したとおりに翻訳してくれるのですが。
返事が遅くなってすいません。
Terrariaのアップデートが来ましてちょっとバタバタしてました。
・ホワイトリストについて
指定方法はリンクの通りでOKだと思います。自分の場合は、漏れに気が付きやすいように ASCII コード順に並べただけです。「Ascii」と「Windows1252」にわかれているのは、試行錯誤していたときの残骸です。ご指摘の通り ASCII のみで良いと思います。
・余白について
自分の場合は、黒地に白い文字に場合は、反転させて白地に黒い文字に変換していました。
特に意味はないのですが、条件を統一したほうが、認識精度向上のテストケースが減るかな?と考えたためです。
それとプログラムは趣味で覚えたものですので、詳しいことはわかっていません。画像処理やOCRも以前作成していた時にネットで調べたものです。ネットがあれば素人でも色々なことにチャレンジできる時代になったので、とてもありがたいです。
後ほど、最新版を使ってみたいと思います、ありがとうございました。
PCOTを更新しました。最新版をDLしてご利用ください。
私信です。
・synctam様
大分落ち着いた(?)のでOCRの読取精度の向上に注力したいと思うのですが、いくつか質問させてください。
・ホワイトリストについて
前にホワイトリストを取得するサンプルを頂いたと思うのですが、以前私がやったホワイトリストの設定方法は対象の文字を直接指定する方法でした。
参考URL:<http://notame.hatenablog.com/entry/2019/02/03/234131>
synctam様のサンプルにある文字コードを指定する方法と何か違うのでしょうか?
もし3.X系と4.X系のバージョン違いに起因する問題だったらすみません。
それとサンプルには文字種に「Ascii」と「Windows1252」とで分かれていますが、分ける意図はあるのでしょうか?サンプルソースから読み取った感じだと基本Asciiで問題ないという認識で合っていますか?
・余白について
余白をつけると読取精度が上がるという情報、とても為になりました。ありがとうございます。
そしてまたしても質問で恐縮ですが、数ピクセルの余白を付ける際、黒字に白の文字などでも文字通り白の余白を付けた場合、読取精度は上がるのでしょうか?もし試していたら結果を教えて頂きたいです。
最後にこの分野では知識が浅いため、恥も外聞もなく質問しています。もしお気を悪くされていたら申し訳ありません。
ご理解が早くて助かります!そうなんですよね、アプリごとで理想の挙動が変わるのが難しいです。
一旦はご不便かと思いますが、今の仕様のまま継続してご使用頂きたいです。
ただ、NOFA様のおっしゃりたいことも分かるので、「これ!」という方法が見つかったら対応するかもしれません。
また何かありましたらお気軽にお問合せください。
お返事ありがとうございます!
>そうした場合に、対象ゲーム画面を移動させた瞬間に簡易コマンドモードに移行してしまうと、画面を二つ並べて見比べるのに手間がかかってしまいます。
自分の場合OCRのキャプチャの一部に間違いがあった時などは、基本PCOTの方をアクティブにしたまま修正しているのでそういった問題は起こらないのですが、たしかにそういった部分はゲームによって変わってきますし、動かす必要のあるゲームの場合は機能が邪魔になってしまうかもしれませんね。
>ご存じかも知れませんが、翻訳表示画面は右上の「×」ボタンだけでなく、「ESC」キーで閉じることも可能です。
一度閉じ忘れてゲーム画面の方をアクティブにしてしまうと、ESCでも簡易モードにはならなくなってしまうのでそこを手間に感じてしまいました。元々自分の閉じ忘れぐせ?が発端の要望なので、閉じるくせを身につけるようにしたいと思います!
色々と考えてみたのですが、接続先のゲームのフォントの関係でOCRの読取精度があまりよくない場合、辞書登録で読みそこなった単語などを補完するような仕組みになっていますが、その際にゲームの文章でどこの単語を読み間違えたのかを翻訳表示画面と見比べて辞書登録を行うケースもあると思います。
そうした場合に、対象ゲーム画面を移動させた瞬間に簡易コマンドモードに移行してしまうと、画面を二つ並べて見比べるのに手間がかかってしまいます。
・文字だけだと分かりにくいかも知れないので、参考画像を用意しました。
このような場合、どちらかがどちらかに不便を押し付ける形になってしまいます。
ご存じかも知れませんが、翻訳表示画面は右上の「×」ボタンだけでなく、「ESC」キーで閉じることも可能です。
両方を活かす方策があれば言うことなしですが、幸いDeepLを閉じるのも「ESC」キーで閉じられますので簡易コマンドモードに移行するのは「ESC」キーを2回押すだけと思えばそこまで手間ではないと思いますが、如何でしょうか?
更新ありがとうございます!文章がさらに見やすくなりました。原文に指定するフォントの方も気をつけたいと思います。
>このご要望の件についてですが、正直いうと難しいです!w
>というのも、「翻訳表示画面がアクティブでなくなった時に簡易コマンドモードへ移行する」のであれば割とすぐに実装できそうなのですが、
翻訳を読んだあとの閉じるボタンを押す手間が減ってくれればいいなと思っていたので、もし前者の方が楽に実装できるなら自分はそちらでも大丈夫ですが、たしかに初めて使う方はちょっと混乱しちゃうかもしれませんね。
>設定がたくさん出来ると一見自由度が高くて汎用性がありそうですが、設定の手間もどんどん増えていくので、オプション項目を増やすのは消極的です。
それはたしかに…。自分もオプションが多すぎるツールは、どれがより重要・便利になる項目か逆にわからず結局デフォルトのままで使っちゃたりすることがあります。
前者・後者どちらの方法でもオプションなしの無条件で動作するよう実装するなら、Readmeに「ツールが画面から消えてしまった・小さくなってしまった」とかの項目を作って「~の場合自動的に簡易コマンドモードに移行するようになっています」という解説を付記しておくといいかもしれません。
ご報告ありがとうございます!
>>ボタンの表示バグが直ってること確認できました。
よかったです!この更新で一番意義があったかもしれませんw
>>フォント指定でテキストもすごく見やすくなりました。
原文に指定するフォントですが、見てお気づきの通り、(見た目上)大文字と小文字の区別がないフォントや、暗号さながらの記号ばかりのフォントがあるのでご注意ください。
全て大文字で表示されるフォントでも内部的には大文字小文字が分かれています。辞書登録には向かないので使用を控えてください。
>>簡易コマンドも、半透明度を増やすことで思った以上にゲーム画面上にあっても気にならずに使いやすかったです。
そういって頂けてとても嬉しいです!頑張った甲斐がありました。ショートカットには及ばないものの、代替機能としての利用は期待できそうですか?
>>テキストボックスの枠と文章の左端の間にもう数ピクセルの隙間があるともっと見やすくなるかなと感じました。
修正しました。最新版をDLして確認してみてください。
最後に・・・
>>使ってみての細かい要望としては、翻訳文を読んだあと閉じるボタンを忘れてゲーム画面に戻ってしまうことが結構あったので、選択したプロセスをアクティブにした場合は自動的に簡易コマンドモードにするオプションがあると嬉しいかなと思いました。
このご要望の件についてですが、正直いうと難しいです!w
というのも、「翻訳表示画面がアクティブでなくなった時に簡易コマンドモードへ移行する」のであれば割とすぐに実装できそうなのですが、「特定のプロセスがアクティブになった時に簡易コマンドモードへ移行する」だと、接続先のプロセスが現在アクティブかどうかを常に監視する必要があるのです。
前者と後者の明確な違いは、後者がゲームをアクティブにした時にだけ簡易コマンドモードに移行するのに対し、前者は試してませんが、恐らくデスクトップをクリックしても簡易コマンドモードに移行してしまいます。使う人によっては「あれっ消えた!?」となりかねないので実装に慎重にならざるを得ません。
ただ、後者が実現できるならその方がいいですよね。その場合はオプション設定ではなく、簡易コマンド画面を使用する場合に無条件でそのように動作するようにしたいのですがいかがでしょうか?
設定がたくさん出来ると一見自由度が高くて汎用性がありそうですが、設定の手間もどんどん増えていくので、オプション項目を増やすのは消極的です。
いずれにせよ、まず実現できるかどうか調査しますのでしばらく時間をください。
WinAPIを叩けば多分なんとか出来ると思うのですが、慣れてないのです・・・。
長くなりましたが、ご確認願います。
更新お疲れ様です!
ボタンの表示バグが直ってること確認できました。
フォント指定でテキストもすごく見やすくなりました。簡易コマンドも、半透明度を増やすことで思った以上にゲーム画面上にあっても気にならずに使いやすかったです。
使ってみての細かい要望としては、翻訳文を読んだあと閉じるボタンを忘れてゲーム画面に戻ってしまうことが結構あったので、選択したプロセスをアクティブにした場合は自動的に簡易コマンドモードにするオプションがあると嬉しいかなと思いました。
あとテキストボックスの枠と文章の左端の間にもう数ピクセルの隙間があるともっと見やすくなるかなと感じました。
修正してみました。確認をお願いします。
早速デグレましたね・・・すみません・・・orz
問題を切り分けるため、いくつか確認して頂きたいことがあります。
どちらにせよ一度見てみますね。ご報告ありがとうございました。
要望を取り入れていただき、ありがとうございます。
・[プロセス名].cfgファイルについて
旧バージョンのフォルダーに上書きコピーし、普通に起動したところ、問題なく起動できました。
意図したとおりに動作しております。
・DeepLの起動について
システム設定で「DeepLと連携」と「自動的にDeepLを起動」がチェックされているにも関わらず、翻訳時に DeepL が自動起動されません。
何か確認すべきことがありますか?
私信です。
>>synctam様
[プロセス名].cfgファイルですが、PCOT起動直後に設定ファイルの不整合を自動で修正するようにしてみたので、まずは一度普通に起動して頂いてもいいですか?もしそれでおかしなことになったらお手数ですがご報告をお願いします。
お知らせ:翻訳支援ツールPCOTを更新しました!
更新項目を以下に列挙します。
注意事項
今回の更新により、画面を右上の「×」ボタンで閉じずにタスクトレイに常駐します。
PCOTを終了させる場合は翻訳表示画面右下の「PCOTを終了」ボタンを押して終了させるか、タスクトレイのアイコンを右クリックして「PCOTを終了」を選択してください。
今回追加された簡易コマンド画面について
翻訳表示画面を最小化したり、「ESC」キーや右上の「×」ボタンで非表示にした場合、「簡易コマンド画面を使用」が有効になっていると、簡易コマンド画面が表示されます。
これは、翻訳に必要最低限のコマンドをまとめた機能になっています。対象がマウスカーソルから離れたら翻訳できないという場合などに利用してください。透明度を高くしておくとゲームの邪魔になりにくいです。
また、簡易コマンド画面は「ESC」キーで非表示にできます。簡易コマンド画面が非表示になった場合は翻訳表示画面が表示される仕組みです。今回の更新の目玉は間違いなくこの機能ですが、割と色々無茶したため、盛大にバグっている可能性があります。もしおかしな挙動をした場合はご報告お願いします。
システム設定画面について
今回の更新のもう一つの新機能です。システムの共通設定を行います。プログラム一覧画面から起動します。
こちらから原文、訳文それぞれのフォントとフォントサイズを指定できます。TOP画像にある通り、かなり色んな種類のフォントが指定できますが、フォントデータを読み込むのに多少画面表示に時間がかかる場合があります。ご注意ください。
DeepLとの連携についてもこちらで設定を行いますが、翻訳表示画面でも設定可能です。
前バージョンではDeepLと連携するかしないかの二択でしたが、今回翻訳後にDeepLを自動で起動するかどうかのチェックも追加されています。
これは何のためかと言うと、ゲーム(プロセス)によってはOCRの精度が悪い場合もあり、その状態で翻訳時にDeepLが問答無用で起動してしまうとDeepLを閉じる手間があるので、原文を辞書登録などで編集後に右クリックでDeepLを起動したい場合などに利用します。
最後は上記の説明にある今回追加した簡易コマンド画面の使用可否や簡易コマンド画面の透明度を設定することができます。
【注意】不透明度を最低値の「1」に設定すると、簡易コマンド画面が見えなくなります!
かなり色々と更新したので、恐らく不具合があると思います。その場合はこの掲示板にてご連絡ください。
以上です。あー疲れた。
・ブラック/ホワイトリストについて
確かに自分で貼ったリンク先の最後に「It has been fixed !」と書いてありますね、見落としてました。
とりあえず、仕様がまとまったことなので一旦要望は締め切ります。
・ブラック/ホワイトリストについて
2019/6にリリースされた v4.1.0 でサポートされたはずなのですが・・・
「Release 4.1.0 Release · tesseract-ocr/tesseract」
https://github.com/tesseract-ocr/tesseract/releases/tag/4.1.0
しかし、まだ上手く機能しているのか判断できませんね。しばらく様子を見た方が良さそうですね。
・「原文を小文字化」について
そうですね、その仕様であれば今のままで良いと思います。
・「ダブルコーテーションを除去する」について
その仕様で良いと感じました。
参考ソースまで貼って頂いてありがとうございます!
ただ・・・まことに残念なことにtesseract-ocr 4.1.0では、ホワイトリストが使えないようです・・・。
How to whitelist characters in tess4j version 4.1.*
使い始めた時にはそんなことはつゆ知らず・・・。せっかく参考ソースを貼って頂いたのにすみません。
確かにそういう使い方が出来ますね。ならば領域ごとの保存が望ましいということですね。
>>「原文を小文字化」は一律で行っても良いように感じます。
とありますが、チェック機能そのものがなくていいという意味合いでしょうか?
元々「原文を小文字化」については、GoogleTranslateFreeAPIが大文字だけの単語や大文字だけの文章の翻訳精度が異常に悪かったので、読み取り箇所が全て大文字の場合は強制的に小文字にしています。
ただ、文章を一律小文字化すると頭大文字の段落や固有名詞などでは翻訳結果が変わるため、その場でユーザーが確認できるようにチェックして利用して頂くことを目的としていました。
文章全てが大文字だと強制的に小文字になる現在の仕様と、文章単位で強調表示としての大文字の単語が混在することを考えると、プロセス単位、領域単位で保存するメリットがあまりないように思いますがこれといった要件はありますか?
ダブルコーテーションについてですが、文章単位で翻訳精度が上下するので、PCOTでは領域単位やプロセス単位で持つのではなく、翻訳(読取)全体に関わる事だと思うので、辞書登録で処理タイプを「無視」とする仕様になっています。尚、辞書に登録した文言は「辞書一覧画面」にて、有効/無効を切り替えることが可能です。
・動作環境について
自分は、tesseract-ocr v3.5.2.0 を使用していました。PCOTでは、tesseract-ocr 4.1.0 をお使いのようなので状況が異なるのかもしれません(v4系はOCRエンジンが大幅に拡張されたので私も移行したいのですが、まだ使い方がわかっていません)。
・ブラック/ホワイトリストについて
ブラックリストについてですが、自分は使ったことがありません。理由は、Tesseract-ocr で言語に英語を指定した場合の認識対象の文字種を調べる方法がわからなかったためです。認識対象の文字種がわかればブラックリストでも良いと思います。
・ホワイトリストの使用例について
Tesseract-ocr ホワイトリストのサンプルプログラムを Gist にアップしました。
https://gist.github.com/synctam/5b351411ca6062eff2b89173a87cb152
CatInnerTesseract.cs 31行目のコンストラクタでホワイトリストの設定を行っています。ホワイトリストの文字種は CatOcrDriverBase.cs 58行目の GetWhiteList() 関数で設定しています。どちらも、MITライセンスで公開しますので、ご自由にお使いください。
・「対象通り改行」について
領域ごとに保存できた方が良いと思います。この部分については、PCOTがどの様な処理を行っているのかわかりませんので、以前検討していた時のことを書きます。自分の場合は、改行が一つの場合は無条件に文を繋げてしまい、改行が二つ以上の場合は段落が別と捉えていました。しかし、この方式ですと、例えばアイテムの説明画面のようにアイテム名と説明文が繋がってしまい問題が発生しました。このように領域ごとに状況が異なるため領域ごとに指定できるのが良いと思います。
・「原文を小文字化」について
ゲーム(プロセス)単位で保存できた方が良いと思います。「原文を小文字化」は一律で行っても良いように感じます。
・「ダブルコーテーションを除去する」について
この前の投稿で言い忘れましたが、「ダブルコーテーションを除去」すると、一部の文章では翻訳精度が上がることがありました。以前検討していた時は、領域ごとに保存していました。
長くなりましたが、よろしくおねがいします。
参考意見ありがとうございます。
余白を設けるのは盲点でした、検討してみます。
whitelistについてですが、まだ画像の拡大をやってなかった頃か設定の方法が悪かったのか定かではありませんが、以前やった時は読取精度が著しく下がってしまったので元に戻した経緯があります。
もし宜しければ、synctam様の方で設定した具体的なwhitelistの文字リストをご提示頂けないでしょうか?
あと、重ねて質問で恐縮ですがwhitelistに読取対象の文字を全て列挙するのと、blacklistに除外文字だけを列挙するのとでは、読取精度に差が出るのでしょうか?
どちらもやってみた感じ、読取精度が逆に下がってしまったので設定方法か何かがまずかったような気がしてなりません・・・。(変化があったということは、設定自体は出来てたと思うのですが・・・)
画像の余白についてはC#のGraphicsクラスの操作に慣れていないため、少し時間がかかりそうなので、今回の更新からは外しますが、whitelistなどはすぐに反映できると思うので次回リリース時に反映しようと思います。
あと最後に確認しておきたかったのですが、「対象通り改行」や「原文を小文字化」チェックの保存単位はゲーム(プロセス)単位でよろしかったでしょうか?それともタイトル(領域)単位の方がよろしいでしょうか?
気が付きませんでした、指摘した部分は既に実装済みとのことですね、安心しました。
私も、二値化については閾値などの設定がわからず、大津の二値化も含めてうまくいきませんでした。また、ガンマ値変更もやってみましたが効果はあまりなかったです。仰るとおりグレースケールのみで良いような気がします。
Tesseractの精度向上策としては、切り取った画像の周りに余白を追加するとOCRの精度が向上することがあります。この例では上下左右に8ドットの余白を追加しています。
変更前画像:https://i.imgur.com/kZ3aIye.jpg
変更後画像:https://i.imgur.com/zkNyAMl.jpg
切り取り領域の設定でどうしても文字ギリギリで指定しないといけないゲームもありますので、余白の追加は有効だと思います。
もう一つは、Tesseractのオプションで whitelist の指定をすることでした。自分の場合はアルファベットの英数字+記号(縦棒|は除く)のみを指定していました。これは、数字のイチ(1)、大文字のアイ(I)、小文字のエル(l) を縦棒(|)に誤認識することが多かったためです。
参考になれば幸いです。
早速のフィードバックありがとうございます。
現行で名詞リストはゲームごとの保存となっております。名詞リスト登録後に作成される[プロセス名].cfg内で「NounTable」とある場所のデータがそれです。
こちらについても、現行で(私の方では読取倍率と呼んでいますが)ゲームごとではなくタイトルラベル単位で設定されています。前述の[プロセス名].cfg内の「TitleTable」とある場所の「ReadMultiples」という項目がそれです。
デフォルト値は2(2倍)となっています。この値はタイトル設定画面で直接値を設定するほか、新規作成時もしくは編集時の翻訳範囲の再選択時にキャプチャー画面上でマウスホイールで値を増減(最小x1~最大x10)できます。
何故ゲームごとではなく、タイトルラベルごとにしたかというと、同じゲーム内でも場所によってフォントサイズが変わっている箇所があったので、それに対応した結果となります。
つまり、同じことを考えていたということですね。先生に近づけた気がしてなんだか嬉しいです。
今だから言いますが、開発中ブログに訪れるたび、synctam様のことを勝手に「先生」と呼んでいましたw
あとこれは余談ですが、私も当初synctam様に倣って画像を二値化してOCRにかける方法を実装してみたのですが、二値化する際の閾値を取得するのに大津の二値化手法を使って最適な閾値で二値化を実現できたと思いきや、人の目から見るとちゃんと文字として認識できるにも関わらず、どうもTesseractOCRとの相性が悪いらしくて読取精度が異常に下がりました・・・。
PCOTでは結局画像の二値化は没になりましたが・・・こちらについて、何か解決策はご存じですか?
自分の中では今の所、どんな画像も強制的にグレースケールにした状態が一番読み取り精度が高い気がします。
ご検討いただきありがとうございます。
設定(.cfg)ファイルの非互換については了解いたしました。
OCR訂正辞書(wordlist.dat)については、現状通りシステムにひとつで構わないと思います。名刺リストについては、ゲーム毎に設定できると良いと感じました(何処に情報が保存されているか確認できなかったのですでに対応済みであればごめんなさい)。
あと、画像の拡大倍率をゲーム毎に設定できるようにするのも良いかもしれません。例えば、設定ファイルにデフォルト値を入れておいてUIへの実装は先送りする方法でも良いかとおもいます。なお、以前実装の確認をしていた時は、領域ごとに拡大倍率を設定できるようにしていました。これについいては、現状での必要性が明確ではないため、参考程度に考えてください。
今のところ気がついたのは以上となります。
よろしくおねがいします。
お知らせ
公開して早々ですが、次回更新は少し大幅な更新となりそうです。ご使用して頂いている皆様にはご不便をおかけしますが、今しばらくお待ちください。
少し言い訳させて頂きますと、元々思いつきで自分が使うだけの想定で始めてバージョン管理も何もなく2か月程度で作った物なので粗が多いのです・・・。見た目がダサいのはセンスがないからです。
以下、私信です。
>> synctam様
ゲームごとのチェック状態の記憶に関してですが、既に何かしら登録されたプロセスが存在する場合、データ構造の整合性が合わずエラーとなってしまいます。
お手数ですが、次回リリース時にお手元でdataフォルダ配下の[プロセス名].cfgファイルから新規作成した同名ファイルとの差分をマージして頂く必要があります。ご不便をお掛けして申し訳ありません・・・。
上記の通り、プロセスごとの設定についてはデータ構造上、影響範囲大きそうなので今のうちに潰しておいた方がいいですね。他に今ある機能でプロセスごとに記憶しておきたい項目は無いと思ってよろしいですか?
>> NOFA様
貼っていただいた画像を確認しました。酷いですね・・・。
一応対応してみたので、次回リリース時には直っていると思います。ダメだった場合はお手数ですが再度ご報告をお願いいたします。
あと、ショートカットについてですが、なるべく他のアプリに迷惑(笑)をかけずに、ショートカット以外の方法でアプローチ出来ないか模索中です。
コレジャナイ感が半端ないことになりそうな気もしますが、期待せずにお待ちください。
ご使用頂きありがとうございます。
ご要望の件ですが、テキストを選択コピー出来るのであれば辞書登録は不要ですし、DeepLを使用して頂ければ翻訳精度の低いPCOTを使用するまでもなく質の高い翻訳結果を得られますので、DeepLのご使用を強く推奨いたします。
また、もしなんらかの事情で、DeepLをインストールしたくない場合は、PCOTの原文にコピーした後で原文下部にある「即時翻訳」ボタンを押して頂ければ、すぐに翻訳結果が得られます。
要望なのですが、ゲームによってはテキストをそのまま選択コピーできるものが
あったりするので、もしよければテキストコピーからの翻訳にも対応してもらえないでしょうか、よろしくおねがいします。
お返事ありがとうございます。
ショートカットの実装にはそういう難しさがあるんですね。別の翻訳キャプチャソフトではWinキー+Qキーとか、あまり使われないWinキーと他のキーを同時押しした時にキャプチャするのが初期設定になっていたのですが、それもアクティブなアプリとバッティングしないためだったのかもしれませんね。
>もし宜しければ、画面のハードコピーなどを貼っていただくことはできますか?そうでなければ、OSがどのような設定になっているかを教えて頂けると幸いです。
これでアップロードできてるでしょうか。一応ボタンを押すことは出来るので自分だけの問題でしたら修正などはなくても大丈夫だと思います。
名詞リストの説明もありがとうございます。訳された文章に対して使うのですね。辞書リストも名詞リストも、翻訳キャプチャソフトにあったらいいなと思っていた機能だったので嬉しいです。
要望ありがとうございます。
「DeepLと連携」については確かにシステムで覚えておきたいですね。設定ファイルを新設します。
「対象通りに改行」は試したプロセスのサンプル数が少なかったせいか、翻訳精度が落ちる傾向があって辞書登録時の比較用という認識でした。
ただ、確かに改行の位置によってGoogle翻訳もDeepLも翻訳結果が変わるので、ゲームごとに覚えておくといいですね。
「原文を小文字化」については、DeepLがある以上もう正直要らないかなと思っていたんですが、よくよく考えれば辞書登録は訳文と対比して作成するので必要ですね。
というわけで、近いうちに実装します。少しお時間ください。
>>NOFA様
ショートカットについては、まだ色々と検討の余地がありそうなので、こちらを先に対応させてもらいます。
フォントサイズについては、こちらの対応と併せてリリースしますので、ご了承願います。
フィードバックありがとうございます。長文です。すみません。
やっぱりこういう要望でますよね・・・私も欲しいですw
実は当初実装しようかと思っていたんですが、キーストロークを監視して上書きするような事をするので、Windowsや現在アクティブなアプリ(接続できるのはゲームだけじゃないので)とバッティングしたらどうしようと思って、実装を見送ったのです。
後は、もしキーコンフィグを付けるとなると上記の理由からプロセスごとにショートカットキーを設定する必要もあって、些か設定の手間が増えそうな気がして・・・。
なので、ショートカットの対象ボタン(フリー選択や翻訳)を決めた上で原則Windowsや他のどのアプリともバッティングしないショートカットを決め打ちで実装するなら、行けそうな気がします。
PCOTがアクティブな状態でのキーコンフィグの実装については他のアプリに影響しないので全然問題ないんですけどね。
もし宜しければ、画面のハードコピーなどを貼っていただくことはできますか?そうでなければ、OSがどのような設定になっているかを教えて頂けると幸いです。
辞書リストと名詞リストの違いについて説明します。
辞書リスト・・・原文に対して置換を行う
名詞リスト・・・訳文に対して置換を行う
が大まかな違いとなります。
名詞リストについてですが、海外のゲームで固有名詞などがそのまま翻訳されずに訳文に出てきた際に任意の名称に置き換えられるというものです。
例えば、Eschalon: Book I のEverSleep墓地とかなどは翻訳されずに
そのまま訳文に「EverSleep」と出てきますがそれを翻訳時に「EverSleep」→「エヴァースリープ」と置き換えてから訳文に表示する機能です。
上記の性質上、訳文の対象箇所を選択した上で名詞登録機能を利用して頂ければ、正常に機能すると思われます。
原文から選択した文字を置換前テキストに設定すると、原文と訳文で大文字小文字や半角全角が変わってしまっている可能性がありますので、置換前テキストは訳文から取得するようにしてください。
お返事ありがとうございます。
>要望についての確認ですが、ショートカットを設定出来るようにしてほしいといった内容で合っていますか?
はい、ショートカットキーで自分の好きなキーをフリー選択ボタンに設定できればいいなと思いました。自分の場合は海外ゲームプレイ中の翻訳に使いたいのですが、翻訳のたびにボタンを押しにゲーム画面外にカーソルを移動するのが手間だったので実装していただけたらとても嬉しいです。
あとこれは自分のOSの「閉じる」等のボタンやタイトルバーの大きさを少し変更して使っているからかもしれませんが、辞書登録と名詞登録の「確定」「キャンセル」ボタンが上のチェックボックスやテキストボックスに重なって表示されてしまいます。そこ以外は問題ありませんでした。
また辞書リストと名詞リストの機能なのですが、この2つの具体的な違いや使い分け方はありますか?辞書リストの方はうまく機能していたのですが、名詞リストの方は自分の使い方が悪かったのか機能しないようでした。
「翻訳表示」画面のチェックボックスの状態について
現状、「DeepLと連携」のチェック状態が記憶されないようです。チェック状態を記憶できるように変更できないでしょうか?できれば、他のチェックボックスも記憶されると嬉しいです。
ただ、記憶はゲーム毎とシステムに分ける必要があるかもしれません。例えば、「DeepLと連携」のチェック状態はシステムで共通の設定として保存。一方、「対象通りに改行」や「原文を小文字化」についてはゲーム毎に記憶など。
ご検討いただけると嬉しいです。
ご使用頂き、ありがとうございます!
要望についての確認ですが、ショートカットを設定出来るようにしてほしいといった内容で合っていますか?
申し訳ありませんがフォントの件と併せて対応しますので少しお時間下さい。
ご不便をおかけしますが、お願いいたします。
とても便利なツールありがとうございます!
要望なのですが、フリー選択ボタンのキーコンフィグがあるとマウスのサイドボタンなどで楽にキャプチャ画面が出せて便利かなと思いました。
また自分のディスプレイ(2560x1440)だと翻訳テキストのフォントが小さく行間が狭いので、ちょっと読みづらいと感じました。
有益な情報提供ありがとうございます!
なんとか対応してみましたので、お手数ですがご確認願います。
ご推察の通り、Windowsフォームで作成しています。
本業が業務システム開発なので、見た目がダサいのはご愛敬ですw
Spoonail様も同様のツールを作成されていたんですね。
私はOCRも翻訳APIも殆ど触ったことがなく、無料で際限なく使えるものを
手探りで探してましたが・・・この分野は色々大変そうだということを
身に染みて実感いたしました。
screen.pngを確認したところ、見切れていました。
一応、こちらに現物を添付します。
https://drive.google.com/open?id=1lafteBnh0g3n-aP5hsxfck5K-19vXw0b
高DPI対応ですが、Windowsフォームの場合マニフェストファイルで対応できるようです。(Windowsフォームでの開発かな?と予想しました。違っていたらすみません。)
https://qiita.com/felis_silv/items/efee4b1a397b0b95100a
実は自分もOCR+翻訳ソフト作っていて、これに一時期悩まされました(^_^;)
フォームが拡大されているのでズレちゃうんですよね…
早速の対応ありがとうございます。
ワンクリックで DeepL 翻訳も実行されるようになり、更に使いやすくなりました。
ご使用頂き、ありがとうございます!
高DPI設定については全くの盲点でした。ご指摘感謝いたします。
一点確認して頂きたいのですが、OCR読取を行うと実行ファイルと同階層に
「screen.png」という直前に取り込んだ画像を出力しています。
これが見切れているという認識で合っていますか?
ただ、ご指摘の点についてですが、調査をしてみますが内容によっては
対応できない場合もあることをご了承願います。
いずれにせよ、説明書には注意点として明記させていただきます。
ご指摘ありがとうございました!
すみません・・・勢いあまって右クリックの処理を外してしまいました・・・。
原文テキストを編集後、再度DeepLで翻訳する場合に右クリックは必要だったのを
思い出したので、急遽もとに戻しました。
周りの友人含めて誰一人まともに触ってもらえなかったので
ご意見を頂けて浮かれてしまったようです・・・すみません。
再度戻したものをアップしましたのでお手数ですがご確認ください。
すみません、高DPI設定でスクリーンの拡大をしているとおそらくキャプチャ画像が切れてしまっているのか、OCRがうまくいかないようです。
以下の3行の文章に対してOCRを試してみたところ…
Even so, the Queen seems more
determined than ever. Under her rule,
prosperity awaits the Ant Kingdom!
以下のようにOCRされました。
Even so, the Queen seems determined than ever. Under
アプリケーションの自動拡大設定をオフ※にすると以下のように全体がOCRできたので、この設定の影響の可能性が高いです。
Even so, the Queen seems more determined than ever. Under her rule. prosperity awaits the Ant Kingdom!
※アプリケーションのプロパティ>互換性タブ>高DPIの設定>高DPIスケール設定の上書き>チェックボックスをON
一応※の操作でPCOT.exeに対して拡大をオフにすれば問題なく動作はするのですが、この設定に気づかないユーザーも多いかなと思い報告させていただきました。
修正したものをOneDriveに上げました。
お手数ですがご確認ください。