「Pythonでテキストを読み上げる方法はないの?」
という疑問に答えます。

PythonはOpen-Jtalkを使うことでテキストの読み上げが可能です。

今回はPythonでテキストファイルを読み上げる方法について紹介します。

具体的には以下の2点です。
・Pythonでテキストを読み上げる手順
・Pythonで複数のファイルを読み上げる方法

Pythonで音声を作成する方法と再生する方法については「Python+Open JTalkで音声を操作する方法」も併せてお読みください。

Pythonでテキストを読み上げる手順

音読

Pythonでテキストを読み上げるためには以下の手順が必要です。

・読み上げるテキストファイルを用意
・音声ファイルを作成する
・音声ファイルを再生する

読み上げるテキストファイルを用意

Pythonで読み上げたいテキストファイルを用意します。
書かれている内容は何でもOKです。元々の辞書でも大抵の漢字は読めるので日本語で書いた文章であればほぼそのままでもOKです。
ただし、英単語などはそのままだと読めません。

以下のいずれかの方法で対応する必要があります。

1.英語表記をカタカナ(ひらがなでもOK)で書く
2.Pythonのコード上で変換する
3.Mecabで辞書を作成する

今回は「2.Pythonのコード上で変換する」で実装します。

※Mecabは漢字や英語の読み方が登録されたオープンソースの辞書ツールです。
プログラムに組み込むことで辞書に登録されたパターンから漢字や英語をルビに変換できます。ルビだけでなく発音のイントネーションなど音声で読み上げる時の情報も登録されています。

詳細は「MeCab公式サイト」を参照してください。

音声ファイルを作成する

Pythonで音声するためには「os.system()」メソッドで「Open-jtalk」を操作します。
記述方法は以下の通りです。

音声ファイルを再生する

音声を再生する場合は、「os.system()」メソッドでafplayコマンドを使用します。
記述方法は以下の通りです。

テキスト読み上げの実装例

テキスト読み上げの実装例は以下の通りです。

テキストファイル(test1.txt)の内容

こんにちは

◆実行例

複数のファイルを読み上げる方法

ファイル

複数のテキストファイルを一度に再生したい場合もあると思います。
複数のファイルを読み込む場合には「globライブラリ」を使用します。

「paragraphs/」というディレクトリにある全てのテキストファイルを読み上げたい場合には以下のように指定。

実装例は以下の通りです。
クラスやメソッドはそのままで「main()」の部分だけ書き換えればOK。

◆テキストファイル(paragraphs/test1.txt)の内容

こんにちは

◆テキストファイル(paragraphs/test2.txt)の内容

こんばんは

◆実行例

まとめ

Pythonでテキストの読み上げをさせたい場合はopen-jtalkを使うことで可能です。
元々の辞書でも大抵の漢字は読めるので日本語で書いた文章であればそのまま読めることも多いと思います。

英単語などはそのままでは読めないので以下のいずれかの対応が必要です。

1.英語表記をカタカナ(ひらがなでもOK)で書く
2.Pythonのコード上で変換する
3.Mecabで辞書を作成する

今回はPython内で変換しましたが、辞書の拡張性を考えるとMeCabで対応するのがオススメです。
MeCabでの実装方法については機会があれば書く予定です。

Pythonのファイル操作まとめTOP>>Pythonでファイルを操作する方法まとめ