チャーハンノート

チャーハンの作り方に関する覚書

AlexaにKindle本を朗読させてオーディオブックにする

AmazonブラックフライデーでEcho Show 5という製品を購入した。
Kindleの読み上げ機能があり、思いの外読み上げの品質が良かったので、録音してオーディオブックにしてみた。
その過程と手順についての記録。

目次

Alexaというものを知った

AmazonブラックフライデーでEcho Show 5という製品を購入した。
Alexaという音声認識サービスを内蔵した、いわゆるスマートディスプレイと呼ばれる製品。

www.amazon.co.jp

「今日の天気は?」とか「明日の予定は?」みたいな素朴な質問の他に、部屋の照明や家電のオン・オフのようなコントロール音声で指示できる。

AlexaがKindle本を朗読する

そんなスマートディスプレイの機能を色々と試しているうち、Kindle本を読み上げるという機能を知った。

iPhone版のKindleはSiriの読み上げ機能に対応しているので、それを使うことが多かった。
Alexaで読み上げられた音声を聴いた感想は「Siriよりも誤読が少なく、読み方も自然に感じられる」というものだった。

ちなみに、Alexaでkindle本を読み上げるには、その本がAlexaに対応している必要がある。

https://www.amazon.co.jp/gp/help/customer/display.html?nodeId=GYDXGLMJXN5D73UN

大抵の本は読み上げに対応しているが、文字サイズが固定の定型フォーマットの本や雑誌は対応していないと考えたほうがいい。

オーディオブックの代わりになるか

オーディオブックというものがあり、本や雑誌の文章を人間が朗読したものが販売されている。メジャーなのはAmazonのAudibleだろう。

www.audible.co.jp

自分もAudibleを契約していたことがあった。
1500円/月で1コイン支給され、1コインで1冊だけ購入できるという仕組だが、配信される書籍が意識高めの分野に偏っていて、次第に飽きてきて退会してしまった。
「忙しいビジネスパーソン」がメインターゲットだろうから仕方ないが、もっとしょうもない本もひたすら聴いてみたかった。

話を戻すと、AlexaのKindle読み上げ機能をつかえば、Audibleよりもはるかに多くの本をオーディオブックのように扱うことができると考えたのだった。

AlexaのKindle読み上げ機能が苦手なところ

Alexaに対する期待度が一気に高まった。
しかし、問題点がいくつかあった。

レジュームができない

KindleアプリからSiri読み上げを使うことのメリットは、ページ単位で中止・再開(レジューム)を柔軟に対応できること。
一方、Alexaではそれが苦手のようだった。
一旦止めてから再開すると「はじめに〜」などと最初の説明から初めてしまう。

どうしたものか。
いっそのことAlexaの読み上げ音声をそのまま録音してしまおうと考えた。録音してしまえば、再生アプリ次第ではレジューム再生なども柔軟に対応できる。
ところが……

Echo Show5にはライン出力端子がない

Echo Show 5にはライン出力端子がない。旧世代の製品にはあったのだが撤廃してしまったらしい。
録音するにはスピーカーの近くにラジカセなどを置くなどしないといけない。

Alexaのアプリがあった

などと絶望に伏していたところ、AlexaはiPhoneAndroid用のアプリも提供されていて、Kindle読み上げ機能も扱えることを知ったのだった。

Amazon Alexa

Amazon Alexa

  • AMZN Mobile LLC
  • ライフスタイル
  • 無料
apps.apple.com

手持ちのiPhoneAndroid端末にAlexaのアプリをインストールして、同様にKindleの読み上げ機能を試してみた。
それぞれ、Echo Showと同等に読み上げていることを実感できた。

これなら既存の設備で音声出力ができる。
それどころか、内部オーディオソースを録音する方法があれば録音設備もいらないし、録音時のレベル調整のようなケアも必要ない。
これで何とかいけそうな気がしてきた。

読み上げと録音はAndroid端末で

以下の機材でKindle本のオーディオブックを自作することにした。

使用機材
Android端末(Alexa読み上げ、録音用)
Mac(音声データ編集用) ※PCでも可

読み上げと録音にiPhoneは向かないことがわかった。
iPhoneにはデフォルトで画面収録機能があり内部音声も収録できるのだが、そのビットレートが高すぎて、設定で変更することもできなかった。
試しにiPhoneの画面収録を試したところ、25秒で60MB。ビットレートにして19Mbpsだった。3時間も収録したら26GBになってしまう。

そういうわけでAndroid端末を使用することにした。
今回使用した機種はOukitel C21という格安スマホ(購入時120$)だが、Android OSのバージョンが10以上であれば何でも良いだろう。

AndroidのPlayストアでは内部音声だけ録音するアプリがいくつか見つかった。
しかし、通話録音に特化されたものが多く、あったとしても自分の用途には使い勝手が悪かった。
色々と探した結果、AZスクリーンレコーダーというアプリ(無料)を使用することにした。画面収録アプリなのだが、内部音声を含めて収録できるとのことだった。

play.google.com

各種設定と収録手順

AZスクリーンレコーダーの設定

以下のキャプチャの通り設定した。
ストレージを圧迫しないためにも解像度、ビットレートは必要最小限にした。

・解像度 : 320x240
ビットレート : 1 Mbps
・フレームレート : 20 FPS
・動画速度の変更 : 無効化(デフォルトだった気がする)
・音声の録音をする : 有効
・オーディオソース : 内部オーディオ

これ以外の項目は、このみによって自由に設定してヨシ。

f:id:friedrice_mushroom:20211229200455p:plain

Android端末の設定

AZスクリーンレコーダーの仕様として、画面オフの時は音声が収録されないらしい。
そのため、充電中は常時スクリーンセーバーが表示されるようにする。

設定→ディスプレイ→詳細設定 → スクリーンセーバー と進み、下記キャプチャのように設定する。

f:id:friedrice_mushroom:20211229120410p:plain

その他、充電ケーブルは差しておく、あらゆる通知をオフにする、Wi-Fi環境は整えておくなどして端末の設定は完了。

Alexaアプリの設定

設定というか、Alexaでは読み上げ速度を変更できる。
「Alexa、読み上げ速度を早くして」などと言うと+0.25倍速くなる。 自分は2段階早め(1.5倍)にした。
これで1冊あたりの読み上げにかかる時間は4〜7時間くらい。

収録を始める

以下の手順で収録を始める。
1. AlexaアプリからKindle本を選択
2. 読み上げを開始したところから一時停止
3. Azスクリーンレコーダーで画面収録を開始
4. 読み上げを開始(最初にもどって再生される)
5. 放置

音量はミュートでもOKだが、最小音量にして就寝前に収録を開始した。

起床後、ホームベーカリーの出来上がりを見るが如く端末を確認する。
どうやら読み上げが終わっていることを確認し、画面収録を終了する。

これで収録は完了。

ビットレートは1Mbpsに設定していたが、スクリーンセーバーだと画面の更新頻度が少ないためか、8時間ほど収録した(よく寝た)にも関わらず528MBだった。
計算だと3.6GBぐらいになるはずだが、少なめなのでヨシ。

収録動画から音声ファイルを抽出する

以下ではMacでの手順を紹介する。
(WindowsPCでの手順はいくらでもやりようがあるので省略)

Android端末の動画ファイルをMac本体にコピー

MacではデフォルトではAndroid端末のデータ転送ができないため、 「Android File Transfer」というアプリをMacにインストールする必要がある。

www.android.com

Android端末に保存された収録動画ファイルをMacの任意のフォルダへコピーする。

音声ファイルへ変換

Macではデフォルトの機能で動画ファイルから音声ファイルへの変換ができる。(初めて知った)
Macへ保存した動画ファイルを右クリック(二本指タップ)→サービス→”選択したビデオファイルをエンコード” をクリック。

f:id:friedrice_mushroom:20211229120447p:plain

“メディアをエンコード” というウィンドウがでてくるので、設定のプルダウンメニューから”オーディオのみ”を選択し、”続ける”をクリック。
変換が始まるので、数分待つ。

f:id:friedrice_mushroom:20211229120510p:plain

動画と同じフォルダに“〜〜.m4a”というファイルが作成された。
これで音声ファイルへの変換は完了。

無音区間のトリミング

出力された音声ファイルについて、読み上げ前後にある不要な無音区間を消去(トリミング)する。

ここではいわゆる波形編集ソフトを使う。今回はWavePadという有料のMac用アプリを使用したが、フリーソフトでもWindowsでも同等のことができれば何でもヨシ。

f:id:friedrice_mushroom:20211229120531p:plain

読み上げ前後の無音区間を3秒ほど残して切り取りが完了したら、そのまま上書き保存する。
コーデックやサンプルレート、ビットレートの設定は下記とした。

f:id:friedrice_mushroom:20211229120553p:plain

保存された音声データは、6時間ちょっとで176MB程度。 ビットレートを128kbpsにしていたので340MB程度と見積もっていたが、またしても計算が合わない?

音声ファイルの情報をみると、モノラル音声ということがわかった。
なのでビットレートも半分だった。

f:id:friedrice_mushroom:20211229120610p:plain

最後の仕上げに、保存した音声ファイルに適当な名前をつけたら完成。
「著者 - タイトル.m4a」とかだろうか。

あとはクラウドストレージに保存するか、iPhone/Android端末本体に保存すれば、いつでもオーディオブックを聴ける状態になった。

自作オーディオブックの再生環境

出来上がった自作のオーディオブックをiPhoneで再生してみる。

クラウドストレージに置いた音声ファイルを再生するアプリは様々ある。
今回自分が使ったのはCloudbeats audiobooks offlineというアプリ。

Cloudbeats audiobooks offline

Cloudbeats audiobooks offline

  • Roman Burda
  • ブック
  • 無料
apps.apple.com

Google Drive、OneDrive、DropBoxなどメジャーどころは対応していて、普段から録りためたラジオ番組を聴くなど多用している。
レジューム機能にも対応しているので、別の音声ファイルを聴いてから元のファイルを再生しても、続きから再開できる。
しおり機能もある。まさにオーディオブックにはうってつけ。

数時間聴いた感想

聴いてみての感想。
多少の誤読があったり、特に人名はほとんど正確でなかったりするところは散見されるが、AIに任せている時点で妥協できた。

他に気づいた点は、読み上げの途中で1〜2秒ほど不自然な無音区間があったこと。
頻度は5〜10分に1回ほど、そこそこあった。

通信が混雑しているからなのか、CPU負荷が増大しているからなのかはわからなかった。
気にしないことにした。

最後に

以上、AlexaにKindle本を朗読させてオーディオブック化する手順について書いた。
ビットレートや読み上げスピード、読み上げ中の謎の無音区間など、まだまだ課題やチューニングが必要な点がないわけではない。
だが、最小限の手間で、個人で使用するには申し分ない品質でオーディオブック化する手順は確立できたと思う。

手持ちのKindle本のオーディオブック化をコンプリートすべく、夜な夜なAlexaに朗読させる日々。