memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

Kindleの固定レイアウト本を読み上げて欲しくてやってみたこと⇒失敗でした

先日、以下のKindle本を購入しました。Alexaで読み上げようと思ったら。。。Alexaアプリで出てこない。固定レイアウト本だったからなんですね。。。こりゃ使えん。

薄い本なので読み上げなくても読めなくはないのですが。。。なんか悔しいなぁ。。。と思って読み上げられないかやってみたことを以下つらつらと書いてみます。

まず、Kindle本をスクショして画像にする必要があります。

ネットには既にスクリプトなど公開された方がいましたが、せっかくなので自分でも作ってみようと思いました。ちょっと時間がかかりました。

色々と試行錯誤して完成したのが以下です。

使い方はコメントとして書き入れていますので何となくおわかりいただけるかと思います。

以下、使い方の例です。

(1)上のコードをコピペしてbashファイルを作成します。a.shとします。

(2)次に、Kindleアプリを起動してスクショしたい本を開きます。

(3)a.shでスクショするためにKindleアプリのWindowsIDが必要になるので、以下でインストールし、「getwindowid Kindle --list」を実行します。ターミナルでね。

brew install smokris/getwindowid/getwindowid

(4)すると以下のような感じの実行結果が表示されるので、本のウィンドウらしい7541を覚えておきます。

"移動..." size=394x155 id=7543 "" size=580x278 id=7542 "○○○○さんの Kindle for Mac - 小さな会社のスクラム実践講座 (Japanese Edition)" size=1047x1391 id=7541

(5)a.shをvscode等で修正して「wid=7374」の「7374」を上記の例では「7541」に変更します。さらにKindle本のページ数を確認して「page=10」の10を変更します。書籍に書いているページ数より少し多めにしておくといいかもしれません。

(6)ターミナルでa.shのある場所に「mkdir o」とoという名前の空ディレクトリを作成し「a.sh」を実行します。oディレクトリ内にc_???.pngというファイルがpage数分生成されるはずです。ウィンドウをスクショしているので周りがOCRで邪魔になるのでXnCovert等(使い方はいろんなところにあるので省略します)でクリッピングします。

(7)a.shが終了したらoディレクトリ内の先頭の画像をダブクリで開いて(プレビューアプリが起動する)、プレビューの左ペインに残りのページ画像をドラッグ&ドロップすると複数ページのファイルになります。このファイルをプリントしPDFを出力します。

(8)あとは、このPDFファイルをOCRアプリにかけて検索可能なPDFにします。私はscansnapユーザなので、Scansnapの「検索可能なPDFに変換」というアプリを起動して、(7)のPDFをドラッグ&ドロップしました。ちなみに、プレビューで生成したPDFファイルはScansnapでスキャンしたPDFファイルではないのでOCRしてくれません。ケチですね。。。以下の方法で対処できます。

snap.hyuki.net

(9)完成したPDFをcalibre等でepubにしてもいいですが、とりあえずPDFファイルをGoogle Play Bookにアップロードしてみました。。。でも読み上げはしてくれません。PDFファイルをKindleにパーソナルドキュメントとしてアップロードしましたがやはり読み上げはダメ。

(10)Google DriveにPDFをアップロードしてGoogleドキュメントで開くと。。。OCR的なことをしてくれると書いていましたが。。。これもダメ。というかダメさがよくわかります。左が画像、そして右がテキストです。テキストはPDFなので行がぶつ切り状態になっていて、しかも認識があちこちでエラーしていました。これを読み上げても何のことか。。。ということです。

上のスクリプトを作るだけで半日以上を費やしました。。。おーまい。

固定レイアウトとか手を抜かないでちゃんと作って欲しいなぁ。。。コードとかバンバン出てくるような書籍ならしかたがないけど、これくらいの本だったらテキストをそのまま流してくれた方がまだいいし、画像がもしあれば画像だけ入れればいいだろうし。言うは易しってわかりますが。なんか悔しい。

読むしかないということで。。。