pyttsx3で簡単に読み上げを実装する

pyttsx3で簡単に読み上げを実装する

こんにちは、ゆんつです。

文字で書かれている情報を目で見る場合。

その間、視線は画面に奪われるので、他の作業ができません。

でも、文字で書かれている情報を読み上げてくれれば。

情報は耳から取得できるので、情報を聞きながら別の作業をすることができます。

Pythonで手軽にテキストを音声読み上げしたい場合。

「pyttsx3」というライブラリを使用することで簡単に実装することができます。

今日は

pyttsx3のインストール方法と基本的な実装方法

について説明したいと思います。

pyttsx3のインストール方法

pyttsx3のインストール

pyttsx3は以下のコマンドでインストールします

pip install pyttsx3

基本的な実装

pyttsx3でテキストを読み上げたい場合。

以下のコードで簡単に読み上げてくれます。

import pyttsx3

# 初期化
engine = pyttsx3.init()

# 読ませたいテキストをsayメソッドの引数に指定
engine.say('読み上げさせたいテキスト')

# 読み上げの実行
engine.runAndWait()

例えば、以下のコードを実行すると

import pyttsx3

# 初期化
engine = pyttsx3.init()

# 読ませたいテキストをsayメソッドの引数に指定
engine.say('本日は晴天なり')

# 実行
engine.runAndWait()

以下のような音声で読み上げられます。

ゆんつ
少し早口ですね

読み上げスピードの速さ、ボリュームなどは調整が可能です。

読み上げスピードの調整

デフォルトの状態では読み上げスピードは「200」に設定されており、このスピードは自分で設定することが可能です。

読み上げスピードの設定は

.setProperty('rate', 変更後のスピード)

で行うことができます。

数字を大きくするほど、読み上げのスピードは早くなります。

例えば、速度を150にしたい場合は、以下のような感じにします。

import pyttsx3

# 初期化
engine = pyttsx3.init()

# 読み上げスピードの設定
engine.setProperty('rate', 150)

# 読ませたいテキストをsayメソッドの引数に指定
engine.say('本日は晴天なり')

# 実行
engine.runAndWait()

このコードを実行したのが、以下の音声。

デフォルトの200よりも読み上げスピードを遅くしたことで、普通の早さの読み上げになりました。

ちなみに、読み上げスピードの数値は

.getProperty('rate')

で取得することができます。

ボリュームの調整

デフォルトの状態では、読み上げのボリュームは1に設定されています。

ボリュームも自分で設定することが可能です。

音量の設定は

.setProperty('volume', 0~1の間でボリュームを設定)

で行なうことができます。

例えば音量を半分にしたい場合は、以下のような感じのコードにします。

import pyttsx3

# 初期化
engine = pyttsx3.init()

# 読み上げスピードの設定
engine.setProperty('rate', 150)

# ボリュームの調整
engine.setProperty('volume', 0.5)

# 読ませたいテキストをsayメソッドの引数に指定
engine.say('本日は晴天なり')

# 実行
engine.runAndWait()

このコードを実行したのが、以下の音声。

先ほどの音声(読み上げスピードを150にした音声)に比べて、音量が半分になっているのがわかります。

ちなみに、ボリュームの数値は

.getProperty('volume')

で取得することが出来ます。

読み上げ音声ファイルの保存

読み上げ音声は、音声ファイルとして保存することができます。

音声ファイルへの保存は

engine.save_to_file('読み上げさせたいテキスト', '保存パス')

で可能です。

例えば、先ほどの読み上げスピードやボリュームを設定した読み上げを保存したい場合は、以下のような感じのコードになります。

import pyttsx3

# 初期化
engine = pyttsx3.init()

# 読み上げスピードの設定
engine.setProperty('rate', 150)

# ボリュームの調整
engine.setProperty('volume', 1)

# 読みあげさせたいテキスト
text = '本日は晴天なり'

# 読み上げ音声の保存
engine.save_to_file(text, 'voice.wav')

# 実行
engine.runAndWait()

ちなみに、ファイル形式を「mp3」にすると、mp3で書き出されるのですが、実際にそのファイルを実行してみると再生できません。

どうやら、pyttsx3はwav形式のファイルのみサポートしているみたいです。

pyttsx3で情報をラジオのように聞きましょう!

というわけで、pyttsx3で音声読み上げを実装する方法について書いてみました。

pyttsx3は、短いコードで音声読み上げを実装できるので、とっても便利。

ネットから情報を取得して、その情報をpyttsx3で読み上げさせれば、まるでラジオのような感覚で情報を耳から得ることができます。

ゆんつ
作業しながら情報が取得できます

それでは、またー。