【pyttsx3】Pythonの音声読み上げ機能で「寿限無」を読ませてみた!

Pythonの音声読み上げ機能のサムネイル画像 Python

Pythonで音声読み上げができないだろうかと思っていたら、
pyttsx3を使えば、たった3行で実装できるらしい。

それを使って寿限無を読ませてみました!

pyttsx3とは

pyttsx3はテキスト読み上げ変換ライブラリです。

py = python
tts = text to speech
x3 = wakaranai

https://pypi.org/project/pyttsx3/


音声読み上げ機能の実装

まずは3行で実装してみます!
手順も簡単です。


pyttsx3のインストール

次のコマンドでpyttsx3をインストールします。

pip install pyttsx3



pyttsx3の実装

3行といっていますが、importは3行に含めていないです。。。

import pyttsx3

engine = pyttsx3.init()
engine.say("音声読み上げライブラリ")
engine.runAndWait()

これで動かしてみると「音声読み上げライブラリ」と読み上げてくれます!

けっこういいですね!


英語を読み上げる場合

日本語だけでなく、英語でもテキストを読み上げてくれるらしいので試してみます。

import pyttsx3

engine = pyttsx3.init()
# ここで英語を指定する
voices = engine.getProperty('voices')
engine.setProperty("voice", voices[1].id)
engine.say("I will speak this text")
engine.runAndWait()

日本語でもそうですが、超早口ですね。


速度の調整

次はテキストを読み上げる速度を調整してみます。

import pyttsx3

engine = pyttsx3.init()
voices = engine.getProperty('voices')
engine.setProperty("voice", voices[1].id)
# ここで速度を調整する
rate = engine.getProperty('rate')
engine.setProperty('rate', rate-50)
engine.say("I am speaking this text")
engine.runAndWait()

だいぶゆっくりになりましたね。これくらいがちょうどいいかも。


音声ファイルの保存

読み上げてくれた音声を録音することができます。

ファイル名を指定してmp3で同階層に保存されます。

import pyttsx3

engine = pyttsx3.init()
voices = engine.getProperty('voices')
engine.setProperty("voice", voices[1].id)
rate = engine.getProperty('rate')
engine.setProperty('rate', rate-50)
# english.mp3というファイル名を指定して録音する
engine.save_to_file("I am speaking this text", 'english.mp3')
engine.say("I will speak this text")
engine.runAndWait()




寿限無を読ませてみる

短い単語よりも長い文章を読ませてみたい!

そこで寿限無の一節を読ませてみました。テキストはこちら。

和尚の書いてくれた紙を熊さんは読み上げる。「ええー、寿限無寿限無、五劫のすり切れ、海砂利水魚の水行末、雲来末、風来末、食う寝るところに住むところ、やぶらこうじのぶらこうじ、パイポパイポ、パイポのシューリンガン、シューリンガンのグーリンダイ、グーリンダイのポンポコピーのポンポコナの長久命の長助、うーん、こう並べてみるとみんなつけてえ名前ばかりですねえ」

# -*- coding: UTF-8 -*-
import pyttsx3

engine = pyttsx3.init()
rate = engine.getProperty('rate')
engine.setProperty('rate', rate-50)
text = "和尚の書いてくれた紙を熊さんは読み上げる。「ええー、寿限無寿限無、五劫のすり切れ、海砂利水魚の水行末、雲来末、風来末、食う寝るところに住むところ、やぶらこうじのぶらこうじ、パイポパイポ、パイポのシューリンガン、シューリンガンのグーリンダイ、グーリンダイのポンポコピーのポンポコナの長久命の長助、うーん、こう並べてみるとみんなつけてえ名前ばかりですねえ」"
engine.say(text)
engine.runAndWait()

いざ実行!!!

いい感じに機会が読み上げてくれました。

実行してみて面白いのが、漢字の読み方。

「寿限無」 は 「ことぶきかぎりむ」

「海砂利水魚」 は 「みじゃりすいぎょ」

「雲来末」 は 「くもくまつ」

「風来末」 は 「かぜらいまつ」

特に漢字の読み間違いは辞書データなどを作成して精度高くできないのだろか

pyttsx3でもっと楽しめそうですね!

最後まで読んでいただき、ありがとうございます!

タイトルとURLをコピーしました