本を読むことは良い習慣ですが、聴くことでより一層便利になります。
オーディオブックは、いつでもどこでも簡単に聴くことができるので、従来の本の代わりになります。
この記事では、Pythonを使って、本を読み上げてくれるオーディオブックメーカーを構築します。
Python を使って電子書籍をオーディオブックとして読む
それでは、PDFの電子書籍をオーディオブックに変換するブックリーダーやPythonスクリプトを作る手順を紹介します
1. 必要なモジュールのインストール
まず始めに、オーディオブックメーカーのコーディングに必要なモジュールをインストールする必要があります。
ここでは、pipパッケージマネージャを使用して、pyttsx3とPyPDF3モジュールをインストールします。
pyttsx3はPythonの音声合成ライブラリで、PyPDF3はPythonでPDFファイルの読み込みと編集を行うためのライブラリです。
pip install pyttsx3
pip install PyPDF3
|
2. PDF ReaderとTTSモジュールのインポート
Pythonファイルでは、まず必要なモジュールをインポートすることから始めます。
import PyPDF3
import pyttsx3
|
次に、pyttsx3エンジンオブジェクトを初期化し、読み込みを行います。
engine = pyttsx3.init() |
3. PDFを開く・読む
さて、音声エンジンを初期化したので、PDFを開いてその内容を読み込む必要があります。
図のように、openメソッドにPDFの名前を渡します。
もしPDFがPythonスクリプトと同じディレクトリにない場合は、名前とPDFの場所を渡すことが必要です。
book = open ( 'sample.pdf' , 'rb' )
|
PDFの内容を一行ずつ、音声に従って読み取るために、図のようにPyPDF3モジュールのPdffileReaderメソッドを使用します。
そして、extractTextメソッドを用いて、pdfリーダーのオブジェクトからテキストを抽出します。
pdfRead = PyPDF3.PdfFileReader(book)
#to start the reading from 1st page in the pdf page = pdfRead.getPage( 0 )
#to extract text to read text = page.extractText()
|
4. PDFを読み上げる
PDFを開き、内容を読んだら、次はこのデータをpyttsx3ライブラリの音声エンジンに送り込む必要があります。
#takes in message to read or text engine.say(text) engine.runAndWait() |
スクリプトを実行すると、渡されたPDFの読み上げが始まります。
最終的なコードは以下のようになります。
import PyPDF3
import pyttsx3
engine = pyttsx3.init()
book = open ( 'sample.pdf' , 'rb' )
pdfRead = PyPDF3.PdfFileReader(book)
#to start the reading from 1st page in the pdf page = pdfRead.getPage( 0 )
#to extract text to read text = page.extractText()
#takes in message to read or text engine.say(text) engine.runAndWait() |
5. 音声の変更
pyttsx3ライブラリでは、以下のような様々な音声の変更を行うことができます。
発話速度を変更する設定
rate = engine.getProperty( 'rate' ) # gets the current rate of speech
engine.setProperty( 'rate' , 125 ) # sets up new rate of speech (passed in as 125 to change to 1.25x or 150 to make it to 1.5x)
|
音声を変更する設定
音声の大きさ
voices = engine.getProperty( 'voices' ) # gets the current voice type
#engine.setProperty('voice', voices[0].id) #changing index, changes voices. 0 for male engine.setProperty( 'voice' , voices[ 1 ]. id ) #changing index, changes voices. 1 for female
|
音声の音量を変更する設定
音声の大きさ
volume = engine.getProperty( 'volume' ) #gets the current volume (min=0 and max=1)
engine.setProperty( 'volume' , 1.0 ) # setting up volume level between 0 and 1
|
また、次のコードを使用して、完全なオーディオブックファイル、つまり音声の観点から完全なpdf(本)をオーディオファイル(タイプ.mp3)で保存することができます。
engine.save_to_file( 'text, ' audiobook.mp3')
|
結論
以上、Pythonでオーディオブックメーカーを作るチュートリアルをお送りしました。
PDFからオーディオブックへの変換に関するこの短いチュートリアルを楽しんでいただけたでしょうか。
もっと直感的で自動化できるようにスクリプトをいじってみてください。