まだまだ改良の余地はあります。アルファベットの羅列でローマ字読みができるものは、仮名に変換して読ませたほうがいいことに今更気付いたりしています(次回更新時に実装します)。
このパッケージの問題として、py2exeで実行ファイルが作れないということがあります。これはかなり大きな問題だと思います。つまり、利用するときスクリプトの実行できる環境を自力で構築しなければならないという高いハードルが付きまといます。また、なんとか実行ファイルが作れたとしてもpygameを使っているのでMixer以外の使いもしない様々なファイルが組み込まれてしまいます。これは、非同期再生をもっと軽い方法で解決すればいいのですが。当分無理そうです。
さて、下のプログラムは、ホームページ上の情報を音声ファイルに変換するサンプルです。pyファイルとして保存し使います。
アサヒ・コムの天声人語を早口で録音します。視覚障害者の方は新聞の記事を手軽に読みたいという要望をよく聞くので、ためしに作ってみました。XMLできちんと整理されている情報だともっと簡単なのでしょうが、HTMLの特定部分を探し出し抽出しています。なお、このスクリプトによって生成される音声ファイルはアサヒ・コムの著作物の複製に当たると思われますので、私的使用のみに限って利用してください。
#!/usr/bin/env python
#-*-coding:utf8-*-
import urllib2
import re
import os
import sys
import mbtts
tts=mbtts.create()
tts.set_rate(1.5)
lines=[]
t=urllib2.urlopen('http://www.asahi.com/paper/column.html')
txt=t.read()
txt=unicode(txt,'eucjp')
r=re.compile(u'<strong>(.*?)</strong>')
d=r.search(txt).group(1)
name=d
lines.append(d)
r=re.compile(u'<div class="Utility mb0"><p>(.*?)付</p>')
d=r.search(txt).group(1)
name=name+u' '+d
if os.path.exists(name+u'.wav'):
tts.speak(name+u'のファイルは既に存在するので作成は行いません。')
else:
lines.append(d)
r=re.compile(u'<p>\n(.*?)\n</p>')
d=r.search(txt).group(1)
d=re.sub(u'▼',u'。\n',d,0)
lines.append(d)
tts.speak_lines_to_file(lines,name+u'.wav')
tts.speak(name+u'のファイルができました。')
こんな感じでいろいろ使えます。今回のパッケージを使いこなすにはPythonでプログラミングができないといけませんが、とても使いやすい言語なのでおすすめです。
動くように作った自分で言うのもなんですが、これがWindows7でも、MacOSXでも、Ubuntuでも動くというのは、やっぱり面白いですね。
今更ですが、素晴らしい技術やファイルを公開してくださっている Python,pygame,SDL,MBROLA,MeCab、そしてmuDaTTS.rbの開発者の方々に感謝します。
iPadの「VoiceOver」テクノロジーとはどんなのですか。視覚障害者も健常者と同等に使えるようです。
残念ながら健常者と同等というわけにはいけません。それでも基本的な操作である音楽再生は(見えない画面の配置を覚えたり、かなりの慣れが必要ですが)、ちゃんと使えます。ちょっとまどろっこしいですが電卓も使えます。VoiceOverに対応したアプリ、例えば青空文庫を読む「豊平文庫」も使えました。ただし、音楽や設定を管理するitunes自体があまり視覚障害者に使いやすいものではないので、完全に同等に使えるレベルではありません。ある程度の準備をサポートする人が整える必要があると思います。
それでも、日本語音声がはじめから入っていること、それも十分聞き取りやすい音声(視覚障害者の方に直接聞いてもらったときの感想です)であること、操作が単純なためキーやボタンがたくさんある機械よりもかえって操作習得が容易なことなど、とても素晴らしい特徴を持っていると思います。