試したのは、文字列を日本語に書き換えたFire Voxの日本語版と本家のFire Voxの両方。
日本語版Firefox 2.0.14、そして英語版Firefox。
音声はドキュメントトーカ for Mac Ver3のたかし。
最初から日本語版の組み合わせで試してみた。そしてすぐにうまくいかないことが分かった。ちゃんとTTSはMacOS用のものが選択され、たかしの声でしゃべってくれるのだけど、パーセントと連呼ばかりしてまともな言葉をしゃべってくれない。
Fire Voxの日本語版で置き換えた日本語文字列もパーセントと読んでしまうし、ページ上の日本語もメニューの日本語もパーセントと読んでしまう。英単語があると、そこだけはちゃんと言ってくれる日本語音声だから日本人読みになっているが。
よく聞くとパーセントだけでなくそのあとに英数字もしゃべっている。おそらく16進数。また文章の開始の箇所ではスラッシュとも言っている。
理由を調べてみた。開発者用ページをみると、Mac標準の開発環境であるCocoaでXPCOMを作るのがうまくいかなかったので、簡易HTTPサーバーを作って、それへのリクエストとして発音させているらしい。
アドオンのコードを眺めてみると文字列がURLエンコードされて、Macに渡されていることがわかる。当然と言えば当然だ。そのためにアスキー文字列以外はエスケープエンコーディングされてパーセントと16進数に変換されてしまって、それをそのまま音声にしていたのだと分かった。
この解決策として考えられるのは、このパーセント付きの文字列を、MacOSのTTSが理解できる日本語に変換するコードを入れて、それを読ませるようにプログラムを修正することだろう。ひまがあったらこれも書こうかな。
最近のMacOSXにはVoiceOverという標準のスクリーンリーダ機能がついている。Macにインストールできる日本語音声も販売されている(ドキュメントトーカ for Mac Ver3)。しかし残念なことに現時点では日本語音声はVoiceOverには対応できていない。
この日本語音声の製品には簡単な音声ブラウザがついていて、それではちゃんと日本語で読み上げているので日本語音声をプログラミングすることは可能で、このFire Voxでの日本語読み上げも十分可能性はある。
Fire Voxの日本語版がうまくいかないので、本家のFire Voxを入れてみた。英語はもちろん読んでくれるが、当然日本語の文字列はパーセントと読んでしまう。Macではショートカットキーの修飾キーはCommandキー+Shiftキーを使う。ただしFとD、QやMなどは使えたが、Aなどいくつかのコマンドは使えなかった。スペル読み上げ(S)をしてしまうと、それが解除できなくなってしまった。
音声はtakashiで固定されていた。VoiceOverの設定で英語音声に切り替えても変わらなかった。Macの言語を英語に切り替えて起動させてもやはりtakashiの声になってしまった。
結論としては、Fire VoxはとりあえずLeopardでしゃべってくれるが、日本語文字列は読んでくれない。まだWindows版と比べて読み上げの機能もまだまだ。
以上で簡単な報告終わり。
余裕があれば、MacOSX用のモジュールの書き方も勉強して書いてみたいけれど、それよりもWindows版でまだ改造したいことがある。テキスト入力やテキストエリアで入力時の日本語を読むようにさせたい。ホームページリーダーやネットリーダーのように専用の入力ダイアログボックスを用意して、そこでの入力動作を監視させればいいだろう。
(18:30 寝ぼけて書いてたところを修正)