JPを触っていたら、付属の音声合成eSpeakに日本語がないのはとても残念だと思った。NVDAのポータブル版にそれが入っていれば、USBメモリを差せばどのWindowsXPも、音声パソコンにすることができるから。いうわけで、いろいろ調べてみた。結局まだできないのだけど、ちょっと面白いものができたので、公開してみることにする。eSpeakを調べていると、MBROLAという音声合成のプロジェクトを見つけた。世界中の音声が用意されていて、これで使える日本語音声も三種類公開されている。MBROLAのプログラムに音素で表記された文章を与えると、それを音声として読み上げてくれる。いうことで、漢字仮名交じりの日本語をこれで使える音素に分解するスクリプトを作ってみることにした。V0.2という名前で公開されていた。これはRubyというプログラミング言語で記述されていて、OSはlinux向けに書かれていた。これはとてもよくできていて、日本語の文書を渡すとその通りに発音してくれる。抑揚はつけていないので、棒読みになる。これをNVDAでも使えるようにと思って、NVDAを記述しているPythonというプログラミング言語で書き直してみた。結局まだどう組み込めばいいのかもわからないので、まだまだNVDA対応などではないけれど、とりあえず漢字仮名交じり文を音素に分解できるようになった。出力されるファイルをMBROLAのプレイヤーで開くとちゃんと棒読みで喋ってくれる。muDaTTSは数字の羅列をちゃんと日本語の数として読んでくれる。この再現にはかなり手こずったが、なんとかこちらでも読めるようになった。基本的な部分はRubyからPythonへの翻訳なので原形をとどめているところもあれば、こんなふうにかなり変更してあるところもある。muDaTTSはアルファベットが読めなかったので、変換辞書を作って対応してみた。単語の日本語での読み方が用意してあればそれで読み、単語が分からないときは綴りを読むようにした。この辞書へは英単語以外も登録できる。muDaTTSでは、漢字から仮名への変換にChaSenというソフトを使っていたが、後発のmeCabというソフトを使ってみたかったので、そちらを使うように書きかえた。kakasiというプログラムを仮名からローマ字への変換に使っていたが、ここのアルゴリズムを考えるのは面白そうだったので仮名文字から直接音素記号をはき出すように自分で書いてみた。最終的にはこのスクリプトだけで、しゃべり出してくれることを目的としているけれど、まだMBROLAの扱い方が分からないので、今のところは日本語テキストを標準入力に与えると、音素に分解したテキストファイルを標準出力に吐きだすようになっている。ここで使われている音素の記号は後述するJP2で使われているものである。名前はPyDaTTSとしてみた。ダウンロードは次のリンクからできる。WindowsXPのみ対象。PyDaTTS.zip解凍するといろんなファイルが出てくる。スクリプトやバッチファイルもファイルの内容を理解してから実行してください。自己責任でご利用ください。ウィルス検査してからUPしてあります。念のため確認してください。これを動かすためには、四つのソフトがインストールされている必要がある。MBROLA用日本語音声JP2それぞれ以下のサイトのダウンロードページからダウンロードする。リンク先にインストールの指示もあると思うので、それにしたがって入れていけばいい。ProjectMBROLAのダウンロードページの下の方にJP2も用意されている。JP2を解凍したものをMBROLAがインストールされた場所にコピーする。コピーした中の付属のphoファイルをダウンロードすると、音声登録の指示が出るので、それにしたがって登録すればいい。漢字→かな(ローマ字)変換プログラムはっきりいって、これはまだプログラムの分からない人には扱えない。これが一般の人向けに利用できるようになるのはまだ当分先だろう。それを作るのは僕である必要もない。バッチファイルを入れてあるので、「text.txt」に適当な文章を書いて、play.batをダブルクリックすれば、標準的なMBROLAのインストールをしていれば、そしてJP2という日本語音声を入れてあれば、たぶんしゃべり出してくれる。パラメータをいじるとJP2のサンプルのようにそれなりに抑揚もつけられるのだけど、その数値の意味をまだ理解していないし、たぶん難しいので、棒読み。今回作ったサンプル音声は以下のリンクから聞くことができる。・平成17年10月1日に調査された日本の総人口は、127,767,994人です。(06/28)OpenJTalkの共有ライブラリを作ってみました。追加しました(03/14)点字タイプ入力ソフトに、テンキー点字入力機能を追加しました(11/13)OpenJTalkの共有ライブラリを作ってみました。2.0QRコードSeesaaブログ。