【Python】たった5行で日本語テキストを読み上げさせてみよう!【gTTS】【音声合成】

 今回は、音声で読み上げさせることができるライブラリ「gTTS」を紹介します。
Pythonで読み上げさせる方法の中でも、トップレベルに簡単に読み上げさせることができます。

これを利用して、Discordなどの読み上げボットなどに応用すると色々なものが作れます!

目次

テキストを読み上げさせてみよう!

準備するもの

・インターネット環境
・Pythonの環境及び、基礎知識

「gTTS」はWeb APIを利用しているため、インターネット環境が必須になります。

必要ライブラリのインストール

「pip」を使って2つのライブラリをインストールします。

テキストを読み上げするための「gTTS」をインストールします。

pip install gTTS

音ファイルを再生するための「playsound」をインストールします。

pip install playsound==1.2.2

 2022/2/26時点で、playsoundの最新バージョン(1.3.0)だと、どうしてもエラーが出たので、前のバージョンの1.2.2で紹介しています。

実際にコーディングしてテキスト読み上げさせてみよう!

 以下のコードでテキストを読み上げさせることができます。

from gtts import gTTS 
from playsound import playsound

#音声ファイルをAPIで取得する
tts = gTTS(text="まいちゃまっちゃまー!まいちゃまです!", lang="ja", slow=False)

#ファイルへ出力
tts.save('yomiage.mp3')

# 音声ファイルの読み込み
playsound('yomiage.mp3')

こんな短いプログラムでもう読み上げボットができてしまいました。
簡単過ぎて涙が出そうです!
こういう便利なライブラリがあるのがPythonのいいところですね。

特に、保存のパスを指定していないので、Pythonの実行フォルダに、ファイルが生成されます。

コードの確認

短いですが、コードの確認をしていきます。

#音声ファイルをAPIで取得する
tts = gTTS(text="まいちゃまっちゃまー!まいちゃまです!", lang="ja", slow=False)

 Web APIからテキストを音声に変換したオブジェクトを取得します。

引数の説明
text : 読み上げるテキストを指定します。
lang : 言語を指定します。
slow : 遅く読み上げるかどうかを指定します。

 作成した音声オブジェクトをファイルに出力します。

#ファイルへ出力
tts.save('yomiage.mp3')

 playsoundライブラリでファイルを読み込み、再生します。

# 音声ファイルの読み込み
playsound('yomiage.mp3')

まとめ

  今回、「gTTS」を使った読み上げプログラムの作り方を紹介しました。
「gTTS」を利用することで簡単に読み上げのプログラムを作成することができました。

 今後は、これを応用して「Discord」の読み上げBotの作成を行ったり、 オーディオの細かな変換ができる「FFmpeg」を用いて、読み上げ速度の変更を行うといった 記事を書く予定です。

 読み上げさせる方法は他に、Google Cloudサービスの「Text-To-Speech」APIや、 「OpenJtalk」を用いた手法がありますが、両方前準備に非常に時間がかかります。
それぞれの良さがあるので機会があれば紹介するかもしれません。

 今回の記事が、皆さんの技術力向上につながると嬉しいです。
以上、おつかれさまでした!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次