主にメモ

ただのメモ

OCRHelper

f:id:nmtblue:20200621104340p:plain

自炊した画像ファイル等からOCRしてテキストをスマホの読み上げアプリで聴けるようにする為に自分用に、日本語プログラミング言語の「なでしこ」で作ってみました。😄

(肝心のOCR部分は、Googleドライブにお任せですが...💦)
GoogleドライブのOCR機能は、市販ソフトの認識率以上ですよ~😍。 

f:id:nmtblue:20211003105510j:plain

 

ダウンロード

7zipで圧縮していますので7-zip等で解凍して下さい。

 

※ 画像ファイル分割PDF変換がエラーで起動しない時

 

 

なでしこで作ったアプリのせいか?ウイルス検知に誤認される可能性があります。気になる方は使用をお控えください。

お使いのパソコン環境や、プログラムの不具合などによって問題が生じる場合があります。それにより損害が生じても、損害に対する保証は出来かねますので、あらかじめご了承ください。

 

bunkoOCR Helper

bunkoOCRを少し試しているのですが、認識率もさることながら、GoogleDriveでのOCRで出来なかったルビ無しのOCRがいいですね。

※うちのPC(CPU AMD Ryzen 7 PRO 4750GE with Radeon Graphics   3.10 GHz 内臓GPU)では1冊bunkoOCRでOCRするのに4時間程度かかりますが…

 

以前から愛用しているiOS用テキスト読み上げアプリ(Voice Dream Reader)で聴くとGoogleDriveで変換したテキストではルビが邪魔でいつもイラっとしていましたw。

 

そこで、bunkoOCRで生成したルビ無テキストファイル(noruby.txt)を結合。

改行ごとにテキスト読み上げアプリ(Voice Dream Reader)では間があるので改行を削除。

代わりに「。」の後に改行を追加。

UFT-8でOCRされるので書式を崩さないように日本語プログラミング言語「なでしこ」v1とPowershellの合わせ技で作ってみました。

できたテキストファイルは、フォルダ名+.noruby.txtです。

 

Powershellコマンドプロンプトもほとんど知識無しでしたが、ChatGPT先生に聞きながら試行錯誤したら意外とできるものですね。(一度尋ねてそのまま動いたためしがないのでエラーを含めて何度も尋ねるを繰り返しましたw。)

なでしこv1でプログラムを作るのに便利ですね。ChatGPTもPowershellも。

 

ダウンロード

 

ソース

 

Bing自動検索

MSリワード、自分用w。

直接https://www.bing.com/news?q={対象}と出来れば良かったんだけど

うまくポイントにならないようで、力業で。

 

#Bing自動検索
https://blog-bootcamp.jp/related-keyword/
「.\related_keyword.csv」を開いてSJIS変換
#「.\*.csv」で「.csv」のファイル選択。それを開いてSJIS変換
I=0
それを配列シャッフルしてワドに代入
ワドを反復
  「"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" "https://www.bing.com/news?q=%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9&form=ml11z9&crea=ml11z9&wt.mc_id=ml11z9&rnoreward=1&rnoreward=1"」を起動
  対象をコピー
  2秒待つ
  266,115へマウス移動
  マウスクリック
  1秒待つ
  266,115へマウス移動
  マウスクリック
  1秒待つ
  『^a』をキー送信
  1秒待つ
  『^v』をキー送信
  0.5秒待つ
  『{ENTER}』をキー送信
  2秒待つ
  I=I+1
  『%{F4}』をキー送信
  1秒待つ
  母艦=「{I}回目 {クリップボード}」
  もし I>34ならば「終了します。」と言う。終了
終了

 

FFmpeg一括変換

ダウンロード

ソース

※なでしこではShiftJISなファイル名のみ対応だそうなので、ダメそうな文字を含むファイル名のもはfile_name_error_list.txtへ書き込まれます。

※ちなみにアイコンはBing Image Createrに作ってもらいましたw。

※av1の動画をiPhoneで再生するには、要VLCPlayer、いまのところかな。

 

最近、動画ファイル用のストレージの空き容量がなくなってきたため3年前にH.265で変換した動画ファイルを再度変換してみようと思い試行錯誤してみました。以前試してみたAV1のコーデック「libaom-av1」は、物凄く時間が掛かる代物で実用的ではないと感じてAV1での変換を諦めていましたが、「libsvtav1」を試してみるとこれがlibaom-av1より、速いというかむしろH.265のコーデック「libx265」よりもかなり速い。(2.5倍くらいか・・・)ということで久しぶりに日本語プログラミング言語「なでしこ v1」でffmpegのフロントエンドを作ってみました。

 

そこで出来た動画を見比べてみても自分の目では遜色ないと思えるのですが数値で画質が数値で測れるVMAFスコアで検証してみました。(100が最高値、%の意味ではなくあくまでも品質評価の指標らしい、たぶん)

 

Blue-rayからH.264(libx264)で変換したsample.mp4(サイズ:1.61GB 長さ1:39:31) をffmpegで以下のコマンドでそれぞれ変換してます。(libsvtav1のqpは品質で小さいほど高画質となります。)


ffmpeg -i sample.mp4 -vcodec libx265 -c:a aac -ac 2 sample-h265converted.mp4

ffmpeg -i sample.mp4 -vcodec libsvtav1 qp=45 -c:a aac -ac 2 sample-av1converted.mp4

 

コーデック サイズ VMAFスコア
libx265 482 MB 94.347841
libsvtav1 qp=45 290 MB 91.215262
libsvtav1 qp=43 318 MB 92.077913
libsvtav1 qp=40 370 MB 93.277861
libsvtav1 qp=38 411 MB 93.883247
libsvtav1 qp=36 457 MB 94.398944

 

以上のような結果となりました。VMAFスコアでlibx265のデフォルト設定と同等な

libsvtav1のqpは36くらいということでサイズ差はいまいち。

でも実際の動画を見てもVMAFスコア90以上あれば十分だとわかりました。

(最近、老眼入ってきてるしねw)

qp=45が自分の中ではサイズと画質の両立ができてると感じてlibsvtav1 qp=45で

動画を再変換することに決めました。

 

※VMAFスコアをffmpegで計測する場合は

ffmpeg -i [参照動画ファイル] -i [評価対象動画ファイル] -lavfi libvmaf -f null -

 

BGM Player(VLCメディアプレイヤーで)

長いことPCを起動と同時になでしこ1で作った、指定したフォルダ内の音楽ファイルを列挙して

ランダムのプレイリストを作ってMCIで鳴らすタスクトレイに常駐のものを使っていたのですが、

最近、追加した音楽ファイルのファイル名のいくつかにUnicodeが使われていて

なでしこ1を使用するとUnicodeのファイル名のファイルでエラーがでて止まってしまう。

手動でファイル名をリネームすればいけるのですが、これからも増え続けることを考えると、何とかしておきたい。

試行錯誤してみたのですが、…うまくいかない。(自分には荷が…)

なでしこ1.6で64bit化。Unicodeのファイル名に正式対応!?…。してくれませんかね~。無理かな、やっぱり。

 


諦めてVLCメディアプレイヤーをコマンドから起動させて同じようにするための

なでしこ1メモ。

 

#vlc playerシャッフル再生 in タスクトレイ (スタートアップフォルダへ要登録)

母艦の可視はオフ
「"C:\Program Files\VideoLAN\VLC\vlc.exe" --random --loop --qt-start-minimized --qt-notification=0 --recursive=expand "C:\hogehoge"」を起動
終了

 

/*"C:\hogehoge"内のサブフォルダも含むファイルを

ランダム、リピート、システムトレイのアイコンのみでVLCを起動

 

VLC オプション
プレイリスト
  -Z, --random, --no-random      ファイルをランダムに再生
                                 (デフォルトで無効)
  -L, --loop, --no-loop          すべてをリピート
      --recursive={none,collapse,expand} 
                                 サブディレクトリの振る舞い
Qtインターフェース (qt)
      --qt-notification={0 (常にしない), 1 (最小化時), 2 (常に)} 
                                 トラックの変更時、ポップアップで通知
          VLCが最小化もしくは、隠されている時に現在のプレイリストの項目が変更されるとアーティストとトラック名を通知するポップアップを表示します。
      --qt-start-minimized, --no-qt-start-minimized 
                                 システムトレイのアイコンのみでVLCを起動
                                 (デフォルトで無効)
          VLCはタスクバー上のアイコンのみで起動します。
*/