みかんのゆるふわ技術ブログ

Raspberry PiやIoT関係のことを書き残していきます

Raspberry Piがしゃべった!?Pythonで音声合成を使う

f:id:kimura_khs:20201017195658p:plain:w400

おかえりなさいませ、ご主人様、お嬢様!

家に帰ったらこんな風に話しかけられたらうれしいですよね🥰 せっかくRaspberry Piがあるので、Raspberry Piにしゃべらせてみましょう。

セットアップ

以前の記事でスピーカーの使い方を紹介しています。

www.mikan-tech.net

こちらの記事で、Python + FFmpeg + pydubを使ってPythonからMP3ファイルの再生ができる環境を構築していますので、そちらをセットアップしておいてください。pydubを使って再生してみます。

音声合成

gTTS

いろんな音声合成エンジンがありますが、今回は次のものを使ってみます。

pypi.org

Google翻訳の読み上げ機能を使って、Raspberry Piにしゃべらせるライブラリです。

こんな使い方をしていいのか?🤔ちょっと疑問ではありますが、試しに少し使うだけならそれほど問題ないのでしょう。

Google翻訳を使うので、使用時にインターネットに接続されている必要があります。

Raspberry Piには次のようにしてインストールします。

$ pip3 install gtts

コマンドで音声合成

早速音声合成してみましょう。~/.local/bin/gtts-cliというツールがインストールされていますので、これで試してみましょう。

$ ~/.local/bin/gtts-cli -l ja -o out.mp3 "おかえりなさいませ、ご主人様、お嬢様"
$ mpg321 out.mp3

お帰りのあいさつをしてくれました😊

Pythonプログラムから音声合成

Pythonのプログラムから合成する場合は、次のようにします。

from gtts import gTTS
from pydub import AudioSegment
from pydub.playback import play

tts = gTTS("おかえりなさいませ、ご主人様、お嬢様", lang="ja")
tts.save("out.mp3")

sound = AudioSegment.from_mp3("out.mp3")
play(sound)

これをokaeri.pyというファイル名で保存し、実行します。

$ python3 okaeri.py

おなじようにお帰りのあいさつをしてくれましたね👌

Google翻訳がベースなので、いろんな言語に対応しています。 音声合成するたびにGoogle翻訳にアクセスしにいくので、使い過ぎないよう、ちょっとだけの利用にとどめてくださいね。

照度センサーやドアセンサーなどと組み合わせると、帰宅を検知してしゃべらせることもできます。便利に活用しましょう!☺️