2008年08月26日

青空文庫のテキストを音声ファイルにするWSHスクリプト2

以前作ったWSHスクリプトの青空文庫のテキストファイルを音声ファイルに変換するプログラムの改良版。

aozoravoice2 を作ってみました。

興味のある方は、どうぞ使ってください。
下記リンクからダウンロード後、解凍ソフトを使って解凍してください。

問題が起きても当方責任は持てませんので、自己責任でお使いください。また設定次第では耳障りなノイズが起きる可能性があります。特殊な設定を試す場合は、十分気をつけてお使いください。

最新版はここに置いています。
http://et-dev.main.jp/index.php?AozoraVoice

※ 2.3.2:日本語以外の文字コードに対応しました。
※ 2.3.0:設定ウィンドウからいろいろできるようにしました。
※ 2.2.3:WAVファイルの音声フォーマットができるようにしました。
※ 2.2.2:青空文庫形式のチェックを少しゆるくしました。
※ 2.2.1:音声の設定をタグを使わない方法にしたので、タグのせいで起きていたエラーには解決したはずです。
※ 2.2:グローバルな外部辞書の名前をglobal.txtに変えました。既に言葉を登録している場合は、お手数ですがファイル名を書き換えてください。


先日、コメント欄でaさんに青空文庫の変換プログラムをいろいろ教えてもらったので、そのプログラムの動作を参考にして、ルビ辞書と踊り字変換機能などを追加してみました。

大きく変わったところはどこかというと(詳しくは同梱のreadme.txtを見てください)、

・二文字以上の漢字のルビを内部の読み辞書に登録して変換
・外部の変換辞書
・踊り字の変換
・簡単設定
・音声の指定
・zipファイルもそのまま変換対象に(要 7-zip)

※ 7-zipはhttp://www.7-zip.org/で入手できます。



ルビ変換は「くの字点」以外はうまく変換できると思います。「くの字点」は、どこまで繰り返せばいいのかの判断を完全にしようとすると、日本語の構文解析をしないといけません。でも何もしないのもなんなので、今回は文字種だけの情報から断定できるものを変換してみました。これでも不得意な文体もあります。万が一そんな作品があったなら、該当スイッチをオフにして対処願うしかありません。

以前のものは、200行に満たないプログラムでしたが、今回は1000行を越える大きなものになってしまいました。正規表現での検索を何度も繰り返して、以前よりかなり複雑なことをやっているので、ちょっと時間がかかるようになってしまいました。でも時間をくっているのが音声出力の部分なので、極端に遅くなっているわけではないと思いますが、どうでしょう。メモリはたくさんあった方がいいですが。


今回新たな設定項目を付け足したついでに設定ファイルを分離してみました。以下は、配布時の設定ファイルの内容です。
設定項目をメインのプログラムから切り離して、以前より分かりやすくしたと言っても、初心者にtrueやfalseを書いてもらうのは申し訳ないので、メニューで項目を選べるようにしてみました。

「aozoravoice2.hta」をダブルクリックしてください。現れた画面で、目的に合わせて、メニューを選んだり、テキスト欄に記入して、ページ一番下の「設定ファイルを作成」ボタンを押すと、「aozoravoice2.hta」と同じ場所に設定ファイル「config.txt」が作られます。


踊り字は実際に使われているものが自然に変換できるように解釈されます。変換動作を言葉で説明しても分かりにくいでしょうから、例を示します。最初は適当な例文です。最後の部分は青空文庫で見つけた特異な例です。できれば、予想しながら変換結果を見てください。
毎晩々々
馬鹿々々しい

皆一人々々
結局後手々々

民主々義

続々
続々々
続々々々

づゝ
はゝゝゝ
たゞゝゞ

とう/\
つく/″\
ぢり/\
とぼ/\
地震だ/\
離れ/″\
たゞ/\
バタ/\/\
トン/\/″\/″\

折口信夫 偶人信仰の民俗化並びに伝説化せる道
阿知女々々々於々々
アヂメアヂメオヽヽ

種田山頭火 遍路の正月-
南無大師遍照金剛々々々々々々々々

島崎藤村 破戒
是非々々々々

夏目漱石 それから
痛快だ々々々と評してゐたが
これは次のように変換されます。
同の字点 毎晩々々→毎晩毎晩 :同数
同の字点 馬鹿々々→馬鹿馬鹿 :同数
同の字点 皆一人々々→皆一人一人 :区切
同の字点 結局後手々々→結局後手後手 :区切
同の字点 民主々→民主主 :区切
同の字点 続々→続続 :同数
同の字点 続々々→続続続 :文字
同の字点 続々々々→続続続続 :文字
一の字点 づゝ→づつ
一の字点 はゝゝゝ→はははは
一の字点 たゞゝゞ→ただただ
くの字点 :とう/\→とうとう
くの字点 :つく/″\→つくづく
くの字点 :ぢり/\→ぢりぢり
くの字点 :とぼ/\→とぼとぼ
くの字点 :地震だ/\→地震だ地震だ
くの字点 :離れ/″\→離れ離れ
くの字点 :たゞ/\→たゞたゞ
一の字点 たゞ→ただ
一の字点 たゞ→ただ
くの字点 :バタ/\/\→バタバタバタ
くの字点 :トン/\/″\/″\→トントンドンドン
同の字点 阿知女々々々→阿知女阿知女 :同数
同の字点 於々々→於於於 :文字
一の字点 オヽヽ→オオオ
同の字点 南無大師遍照金剛々々々々々々々々
    →南無大師遍照金剛南無大師遍照金剛 :同数
同の字点 是非々々々々→是非是非是非 :倍数
同の字点 痛快だ々々々→痛快だ痛快だ :同数


バージョンアップにともない修正 2008.09.07 02:45


posted by takayan at 04:20 | Comment(33) | TrackBack(0) | aozoraVoice | このブログの読者になる | 更新情報をチェックする