前回のものを大幅に拡張して作った、Windows、Ubuntu、MacOSX で使える音声合成処理のPythonパッケージです。
これ単体では動きませんが、無料で配布されているファイルを持ってくると、日本語の文字列を音声に変換してくれます。
興味のある方は、無保証ですが使ってみてください。
ダウンロード:
mbtts-0.95.zip
主な変更点ですが、
せっかくなので、jp2だけでなく、MBROLAの jp1,jp3の音声も使えるようにしました。
プログラムが長くなりすぎたため、ファイルを分割せざるを得なくなってしまったのですが、それを扱いやすくするために、パッケージにしてみました。Windows用のインストーラや、setup.py でPythonにインストールします。
非同期発声はどうしても実現したくて、でも、自分で作るのは面倒だったので、既存のpygameパッケージを使ってできるようにしてみました。
そして、MeCabバインディングのパッケージを別に作るのもあれなので、バインディング用のスクリプトも取り込みました。
それから、最初に書きましたが、LinuxでできるのならばOSXでもできるだろうということで、MacOSX対応にしました。pygameに依存したおかげで、それさえ入れられれば、あとは簡単に実現しました。
インストールの仕方とか、詳しくは、ダウンロードしたファイルを展開して出てくる mbtts.txt というファイルに全部書いていますので、それを読んでみてください。必要な外部ファイルがいろいろありますが、そのこともmbtts.txtに書いてあります。
基本的な使い方は、
>>> import mbtts
>>> tts = mbtts.create()
>>> tts.speak(u'あらゆる現実を、全て自分の方へ捻じ曲げたのだ。')
てな感じになります。
残念ながら、Unidicを使った日本語のアクセントやイントネーションの処理に関しては、間違いを修正したくらいでほとんど進歩はありません。
AquesTalkを組み込んだり、OpenJtalkを組み込んだりすることは、割と簡単にできるのではないかと思います。
最後に、先日、mmttsと名づけてみたのですが、mm というのは音声読み上げ対応ソフトで有名なmiyamiyaさんの一連のシリーズと語呂が同じになってしまうので、止めにします。mbtts にすることにします。