コードでオーディオブックを作る方法 - 「santinic/audiblez」を使った自動化解説
「santinic/audiblez」は、ソフトウェアエンジニアにとって、特に以下のような点で非常に役に立ちます。
音声データ生成の自動化
音声データの生成は、手動で行うと非常に手間がかかります。このツールを使えば、既存のEPUBファイルから一括でオーディオブックを生成でき、作業時間を大幅に削減できます。
オフラインでの利用
オンラインのTTS(Text-to-Speech)サービスは、API利用料やインターネット接続が必要です。このライブラリはオフラインで動作するため、コストを抑えつつ、いつでもどこでも利用できます。
カスタマイズ性
TTSエンジンの選択、音声速度の調整、不要なテキストの削除など、生成される音声の細かい設定が可能です。
導入はとてもシンプルです。Pythonのパッケージマネージャpipを使ってインストールできます。
pip install audiblez
必要なライブラリ
audiblezは、テキスト読み上げ機能にpyttsx3というライブラリを使用しています。このライブラリは、OSにインストールされているTTSエンジンを利用するため、別途インストールする必要がある場合があります。
Windows
SAPI5が標準で入っているため、追加インストールは不要です。
macOS
NSSpeechSynthesizerが標準で入っています。
Linuxespeakまたはfestivalが必要です。
sudo apt-get install espeak
sudo apt-get install festival
EPUBファイルからオーディオブックを生成する基本的なサンプルコードです。
from audiblez import AudiobookGenerator
# AudiobookGeneratorクラスを初期化
generator = AudiobookGenerator(
input_file="your_book.epub", # ここにEPUBファイル名を設定
output_file="your_book.mp3", # 生成されるオーディオファイル名
engine="pyttsx3" # TTSエンジンを指定
)
# オーディオブックを生成
generator.generate()
print("オーディオブックの生成が完了しました!")
生成したオーディオブックを、章ごとに分割して保存したい場合は、以下のようにsplit_by_chapterをTrueに設定します。
from audiblez import AudiobookGenerator
generator = AudiobookGenerator(
input_file="your_book.epub",
output_dir="audiobooks", # 生成されるオーディオファイルの保存先ディレクトリ
split_by_chapter=True # 章ごとにファイルを分割
)
generator.generate()
print("章ごとに分割されたオーディオブックの生成が完了しました!")
さあ、お待たせしました!スター・ウォーズのコントです。
舞台
デス・スターの通信室
ルーク 「父さん!ついに完成しました!これで、父さんの好きな文学作品を、好きなだけ聴けるオーディオブックにできます!」
ベイダー 「(深く、重い呼吸音)…ホォォォ…馬鹿な。なぜワタシに文学が必要なのだ?フォースの力で全てを読み取れる…」
ルーク 「いやいや、フォースは疲れるでしょう?このsantinic/audiblezを使えば、pip install audiblezとコマンドを打つだけで、EPUBファイルから自動でオーディオブックが作れるんです!」
ベイダー 「なんだと…?(呼吸音)…本当に、ワタシの時間を奪わないと誓えるか?」
ルーク 「もちろんです!それに、音声の速度も調整できます。父さんのセリフみたいに、ゆっくりと重厚な音声も作れますよ!」
ベイダー 「ふん。試してみる価値はあるかもしれぬな。だが、もし役に立たなければ…フォースチョークだ…」
ルーク 「(焦って)大丈夫!大丈夫ですから!まず、このinput_fileに父さんの好きな「帝国の歴史」を入れて、output_fileにempires_history.mp3と…」
ベイダー
「…待て。そのoutput_dirにdarkside_audiobooksと設定しろ。ワタシのコレクションだ…」
ルーク 「は、はい!わかりました、父さん!」
ナレーター そして、デス・スターの通信室には、機械音声で朗読される「帝国の歴史」のBGMが流れ始めたのであった…