青空文庫のテキストを音声ファイルにするWSHスクリプト2新しい方は、いろいろ複雑な処理ができるようになっています。そのぶん、ちょっと時間はかかってしまいますが。公開しておきますので、お好みでお使いください。追記終わりこの前のスクリプトを拡張して作ってみた。簡易的に青空文庫で配布されているテキストを音声ファイルに変換できるようにしてみた。私takayanは、このプログラムによって生じる一切の不具合、影響などに関する損害は一切感知しません。それに同意いただいた方のみご利用ください。ver.1.0.4※分割したとき(標準)、m3u形式のプレイリストも出力するようにしました。※分割数の桁が最低桁数を超えるとエラーが出てしまう点を修正しました。解凍ソフトを使って適当な場所で解凍すると二つのWSHのスクリプトが入っている。aozoravoice.wsfは青空文庫のテキストファイルを引数にして、それを音声ファイルに変換する。sendto.wsfは「送る」メニューに「青空文庫テキストを音声に変換」を登録する。WindowsXPでのみ動作確認をしている。基本的に以前のtextvoice.wsfを素直に拡張したものなので、xdoc2txt.exe、lame.exeも使える。今回はxdoc2txtはなくてもいいけれど、とりあえずそのまま使えるようにしてある。詳しいことは、SAPI5の音声ファイルを作るWSHスクリプトに書いたことと同じだ。前回書いたように、ルビを削除したり、複数ファイルに分割したりできるようにしてみた。漢字をルビで置き換えられるようにしてみたが、ルビが振られる漢字は、近くでまた現れたときにはわざわざルビが振られない。そのため漢字をルビで置き換えるように設定しても、二度目からのものは漢字のままになってしまう。この対策として、漢字とルビの一時的なデータベースを作って置換していけばいいのだろうが、面倒なのでやっていない。このaozoravoice.wsfの最初の方には次のような変数宣言文がある。分割の基準となる文字数ここを書き換えることでいくつか動作を変えることができる。ruby_modeはルビをどうするかを決める。0,1,2のどれかを入れる。分割フラグdivide_flagはtrueかfalseを指定する。falseならば分割しない。trueならば、limitの文字数を基準にファイルを分割する。改行単位で文章は処理されるので、このlimitをあふれたらファイルが分割される。分割が選ばれているときはファイルに番号がつけられる。このときketaの値で桁数をそろえられる。小さい数の時は桁をそろえるために左側が0で必要なだけ埋められる。それから、numbering_flagがtrueのときは、ファイルの先頭で番号を読み上げる音声が挿入される。どの音声エンジンを使うか、読み上げ速度をいくつにするかは、このプログラムでは設定できない。コントロールパネルの音声認識を開いて音声合成タブを開いて設定する。青空文庫で作品のテキストファイルをダウンロードする。aozoravoice.wsfを使って変換する。変換には二つの方法がある。aozoravoice.wsfのアイコンの上に、青空文庫テキストファイルをドラッグ&ドロップする。テキストファイルで右クリックをして「送る」メニューから「青空文庫テキストを音声に変換」を選ぶ。これで音声ファイルが、テキストファイルと同じフォルダにできるはず。Playerで開くことで、連続再生させることができる。(ver1.0.2〜)最後に、巨大なファイルを変換してしまうといつまで経っても終わらないので、問題が起きたのかどうか分からない。短い作品で動作確認を。|2008年04月18日プレイリストとか分割してファイルを出力できるようにしたのはいいけれど、これを連続再生させるようにしないと意味がない。そこで、aozoravoice.wsfでm3u拡張子の付いたファイルも一緒に作成するようにしてみた。これを開くと順序通りに連続再生してくれる。m3u形式のプレイリストとは言っても、ただファイルの名前を並べただけのもの。相対パスつまりファイル名だけ記述している。必要ならば、メモ帳とかのテキストエディタで開いて編集できる。WindowsMediaPlayerが出力するものには「#EXTINF」とか曲の情報らしきものも書き込まれているけれど、それがなくてもプレイリストとしてはちゃんとはたらくので何もつけなかった。m3u形式は名前からして本来mp3のファイルを指定するためのものなのだろうが、wavファイルを指定してもなんとかなるみたいだ。Playerに関連づけされていている場合、ダブルクリックで連続再生が開始される。m3uファイルがitunesに関連づけされていている場合、つまりダブルクリックでiTunesが起動する場合は、ライブラリにプレイリストに書かれている曲が追加され、連続再生が開始される。iTunesのメニューを使う場合は次の二つの方法がある。「ファイル」メニューの「ファイルをライブラリに追加」(CTRL+O)を選んでm3uファイルを開くと、そのプレイリストに書かれている曲がライブラリに登録される。一つ、ファイルメニューの「インポート」(CTRL+SHIFT+O)を選んでm3uファイルを開くと、プレイリストとして登録される。前半部分このブラウザでは再生できません。再生できない場合、ダウンロードは🎵こちら青空文庫の下記のテキストを、スクリプトを使ってルビを読みとして用いて音声にファイルに変換した。Kyoko_Full_22kHz。|2008年04月19日M3U形式プレイリストを作るWSHスクリプトテキストエディタで編集できるプレイリストというのは便利だな。いうことで、フォルダを放り込んだらそこにある音楽ファイルのリストを作るスクリプトを作ってみた。選択したファイルやフォルダ内に含まれる音楽ファイルのリストを作ってくれる。曲順が気に入らなければ、メモ帳なんかで開いて、切り取り・貼り付けで動かせばいい。要らない曲は削除すればいい。私takayanは、このプログラムによって生じる一切の不具合、影響などに関する損害は一切感知しません。それに同意いただいた方のみご利用ください。解凍ソフトを使って適当な場所で解凍すると二つのWSHのスクリプトが入っている。playlistup.wsfはプレイリストを作るスクリプト本体。sendto.wsfは「送る」メニューに「簡易プレイリストの作成」を登録するもの。WindowsXPでのみ動作確認をしている。いつものように「送る」メニューに登録して使う。フォルダが一つだけだとその中にプレイリストを作る。ファイルが一つだけか複数のファイルやフォルダのときはプレイリストをそれが置いてあるところに作る。プレイリスト内のファイルは相対パスで表記される。フォルダの中は再帰的に検索される。ファイルは名前順で並べ替えてある。プレイリストのファイル名はそれが作られるフォルダ名に".m3u"が付いたものになる。同じ名前のファイルがあるときは上書きされる。音楽ファイルかどうかは拡張子だけで判断している。どの拡張子を音楽ファイルと見なすかは、最初の方に宣言している変数extensionsに記述してある。プレイリストを作る機能はそれぞれのミュージックプレイヤーについていて、マウスで簡単に順序を入れ替えたりできるから、それがちゃんと使いこなせる人にとってはこのスクリプトは不要だと思う。VoxでSAPI4音声を使うSAPI5を使ったWSHスクリプトを書いて遊んでいたら、SAPI4でやり残していることを思い出した。Voxを改造してSAPI4でも使えるようにしたのはいいのだが、CTRL+SHIFT+Aで連続読みをさせると突っ走ってしまうという問題があってまともに使えていなかった。それをちょっと修正してみた。click,speakも対応させた。Voxで日本語をしゃべらせるには日本語SAPI5音声を用意しないといけない。SAPI4は無料で配布されているものもあるので、それでも使えるようにならないかといろいろやっている。※先日までこのページで配布していたものは、まだまだ未完成なので、ここからのダウンロードリンクは削除した。このページからアドインをインストールした人は削除してください。et-web開発室で書いていくので、よければまた見てください。Naokoを選ばないようにするものを置いている。Vox」を日本語化したものを二種類公開している。表示されるもしくは発音される英語の文字列を日本語に単純に置き換えた必要最小限の改造のものと、実験的に本家にない細かな改造を施したものの二つ。今回紹介するのはこの拡張版のほうだ。Voxは、Firefoxに最先端のWebアクセシビリティ機能を実装させる機能拡張。Chen氏が開発している。Firefox本家のものも日本語のsapi5合成エンジンさえあればそれだけで日本語でちゃんと実用できる。menu.」としゃべったりするのを気にしなければいいだけのこと。Vox本家は3.6にバージョンが上がっているが、今回こちらはまだ3.4のまま。Firefox3betaにも対応していない。SAPI4での連続読みで起きる現象は最初から分かっていたが解決方法が分からないままだった。そのまま放置して忘れてしまっていた。今回いろいろ調べたら、問題は話し中かどうかの確認をTextDataDoneというのを使って捕まえていたせいだった。これだと読み終わりのタイミングがつかめないので、こうなってしまう。かわりにAudioStopという関数を使えばいいことに気づいた。(06/28)OpenJTalkの共有ライブラリを作ってみました。追加しました(03/14)点字タイプ入力ソフトに、テンキー点字入力機能を追加しました(11/13)OpenJTalkの共有ライブラリを作ってみました。2.0QRコードSeesaaブログ。