>>2007年11月01日Leopardの日本語VoiceOver対応についてご無沙汰してました。第一回を書いたままそのまま放置してしまってすみません。Leopard発売ということで、発売当日入手しました。それなりの期待とともに、Tigerからの上書きインストールを実行。改善されてあるだろう日本語VoiceOverを試してみました。残念ながらメニュー読み上げなどVoiceOverの機能が全く使えませんでした。使用言語を英語に切り替え、英語の音声にしてみるとちゃんと読んでくれているので、VoiceOver自体は機能しているのですが、日本語では駄目でした。日本語読み上げソフトであるDtalkerはちゃんと動いているようです。Dtalkerに表示されるホームページも読んでいます。日本語音声そのものが機能できないのではなく、VoiceOverの日本語音声への接続?がうまくいっていないようです。その時点では発売元のクリエートシステム開発株式会社のホームページにはまだ何の情報もありませんでしたので、メールで問い合わせてみました。数日後メールが戻ってくると、現在のホームページにあるものと同じ文面が書いてありました。http://www.createsystem.co.jp/dtalkerMacOSX.htmlレパード対応につきましてドキュメントトーカアプリケーションの基本的な機能につきましては、問題なく動作しております。つきましては、動作しなくなっております。何らかの仕様変更がおこなわれたもようでアップル社に問い合わせ中です。情報を入手しだいレパードに対応し、アップデータを本ページにて公開する予定です。いましばらくお待ちくださいますようお願い申し上げます。メールを待っている間、データを保存して、Leopardのクリーンインストールで再度挑戦しましたが、やっぱり駄目でした。Macのアップデートがうまくできるようになったので、それでいいです。いうわけで、改善されているはずの、日本語VoiceOverの報告は、ちょっとおあずけです。使えないというのではなく、対応するのに少し待たなくてはいけないということでしょうから、期待しながら待つことにしましょう。今日の「世界一受けたい授業!!」にナイジェル・マーヴェン氏このブログでときどき書いているナイジェル・マーヴェンさんが日本のテレビに登場。11月10日(土)19:57〜20:54。うちの新聞のテレビ欄には名前が出ていないけど、今日出演。世界一受けたい授業!!◇絶滅したはずの古代生物を保護して育てるというイギリスの人気テレビ番組の案内人、ナイジェル・マーベン氏は、古代生物の知られざる生態を明かす。アレルギーのメカニズムと驚きの新事実を紹介。地球温暖化の影響で新たに発生するアレルギーの原因があるという。早大教授で建築防災工学の権威である長谷見雄二氏は、火災の新常識を教える。最近、ここに何も書かずに、プログラムを作ってた。以前、作ってたものの続きだ。僕は純粋に趣味でプログラムを作っている。僕にとってはこのブログを書く作業は、プログラムを作ることの応用だから、本来の姿に帰った感じでいる。ホームページを見るブラウザにFirefoxというのがある。いろんな拡張機能を組み込むことで、様々な機能を新しく追加していくことができる。Voxというのがある。Firefoxにページの音読機能を組み込む拡張だ。http://firevox.clcworld.net/以前、Firefoxのバージョンが1.5になる前、それの日本語版を作ってみた。英語の拡張機能だったが、日本語の音声合成を入れてあるとちゃんと日本語でページを読み上げてくれる。これだけでもかなり面白く使える。元々が英語向けに作られたものだからメニューやページの要素を英語で読み上げてしまう。それを日本語で言わせるように改造してみようと思い立った。最初は文字列を単に英語から日本語に置き換えていくだけの改造をしていた。一般的なFirefoxの拡張には利用者に合わせて言語を自動的に切り替える機構がついている。Voxにはついていなかった。その機構を組み込んでみた。知らなかったので、一から勉強した。手こずったがでなんとか作ることができた。そのとき一月ぐらい調べたことをまとめたページが次のページ。http://et-dev.main.jp/index.php?Firefox%B3%C8%C4%A5%A4%CE%A5%ED%A1%BC%A5%AB%A5%E9%A5%A4%A5%BAかなり苦労して、ここまで作って、僕は燃え尽きてしまった。Firefoxがバージョンアップして1.5になったときに拡張が動かなくなったので、対応バージョンの数字をちょっと書き換えたりして対応したが、それからは何もしていたかった。FirefoxがFirefox2系列に移行したのに、それには対応せずにいた。それが最近、NetReaderという素晴らしい音声ブラウザを触ったり、初音ミクの歌声を聞いたりしたら、また再びこれを作りたくなった。それが11月に入ってからだ。Voxがバージョンアップ。以前いじってた頃からかなりバージョンが進んでいたので、対応バージョンの数字を書き換えるだけでは不具合がいろいろ出てきてしまった。自分でも何をどうやればいいのか完全に忘れてしまっていた。それで以前自分がまとめたページを参考にしながら、作り直してみた。まとめておいてくれたと過去の自分に感謝した。それから今日までずっと作り続けていた。かかりそうだが、なんとか形になってきた。Voxはホームページに指定された言語名を検出して、その言語の音声合成があればその声で読んでくれる。英語で書かれたページはちゃんと英語に、フランス語のページを開いたら、そこにHTMLで言語の指定があれば、それをフランス語で読み上げてくれる。対応する各国語の音声合成をパソコンに入れていないといけないし、ページに言語の指定がないといけないけど、それでもこれはいい機能。人間の側にその言葉を理解できる頭がないといけないけれど。機械に読み上げてもらいながら目で文字を追ったほうが、外国語は目で読みだけより分かりやすい。知らない言葉を嘘読みするよりは、機械に教えてもらった方がいい。ネイティブスピーカーと話したら、あなたの言葉は機械のようだと皮肉を言われるかもしれないが。それと、SAPI4で発音できるようにしてみた。VoxはWindowsだとSAPI5の音声がパソコンに組み込まれていないと読み上げてくれない。いままでの日本のスクリーンリーダはほとんどSAPI4の音声だったから、こっちのほうがいいんじゃないかなと以前から考えていた。その機能を組み込むためには、XPCOMという技術を理解していないといけないらしいので、調べて組み込んでみた。わかってみるととても簡単だったが、わかるまでが大変だった。何事もそういうものだ。この週末には公開できるだろう。Voxを日本語化したものです。詳しくは以前まとめた次のリンクを見てください。Voxの本家は次のリンクで公開されています。Firefoxとりあえず、現時点でできあがっているものを公開します。あとで正式な公開をします。当然ですが、自己責任での使用でお願いします。Firefox2向けのものです。SAPI音声をお持ちの方が対象です。Voxを本家と呼びます。menu.」とか、そういう英語文字列はそのままになってしまいます。それを日本語に置き換えるものです。訳語は既存のスクリーンリーダを参考にしながら決めています。できるだけ簡潔になるように心がけています。menu.」は「〜にはサブメニューがあります。」だと冗長なので単に「〜メニュー」としたりしています。いい加減な訳もまだ残ってますが、ぼちぼち修正していきます。大きく変わらないようにしていますが、それでもいくつかの変更点があります。・イベントの音声をFirefoxのロケールに依存させています本家ではメニューやコントロールの読みは、コントロールパネルの音声認識で設定するコンピュータの既定の声になっていますが、これをFirefoxのロケールで判断するようにしています。メニューに使われている文字列の言語の声になるようにしています。日本語のFirefoxを使っていれば、日本語でしゃべります。日本人なのに英語版Firefoxを利用されていれば、この場合Firefoxのロケールは英語になるので、メニューなどのイベントを英語で読み上げてくれます。・SAPI4音声でも読みますWindowsで制御の仕組みが提供されている音声合成にはSAPI4とSAPI5があります。Voxは標準でSAPI5対応の音声が使えますが、これを改造してSAPI4対応の音声でも使えるようにしました。最低限の機能しかまだ付けていません。音声のピッチの制御や、言語の選択などができません。音声の選択もできません。ロボ太郎ではなく読み秀君で読ませたいという指定がまだできません。それから、全文読みをさせているとき画面のカーソルとの同期ができていません。いうのも改善していきたいと思います。過去の技術であるSAPI4への対応はこの程度簡易的でもいいんじゃないかとも考えています。気付いている問題点がいくつかあります。・イベントの中に組み込まれている文字列をページの音声で読んでくれないページの音声とイベントの音声が違うときに気付きます。分かるのが、ページタイトルを読み上げるときです。これは、イベントを読み上げる言語の文法も絡んできます。いうわけで改造は後回しにしてます。Voxの改造において、どの言語の音声で発音させるかのルールは次の通りにしていました。ページの言語指定というのはHTMLタグのxml:lang属性などによる言語指定のことです。さっき読ませて分かったのですが、seesaaブログではちゃんと"ja"に指定されています。・メニューおよびイベントの読みは、Firefoxのロケールの言語の音声。そのロケールの言語の音声が用意されていなければ、Windowsの既定の音声。・ページの文字列の読みは、言語指定が無いときは、メニューおよびイベントの読みと同じにする。・ページの文字列の読みは、言語指定があるときは、指定されている言語。指定されている言語の音声が見つからなければ、言語指定がないものとして扱う。・言語指定を無視するように設定されているときは、ページの文字列の読みは、言語指定がないものとして扱う。・ただし、ページの文字列でも、タイトル名など要素と密接なものは、やむを得ずメニューやイベントの読みの音声となっている。考えてみると、このルールだと、言語指定がないときは、そのメニューに使われている文字列と同じ言語だと解釈してしまいます。具体的に説明すると、日本語のメニューが表示されているFirefoxで日本語の文書を読んでいるときは問題はありませんが、言語指定のない外国語のページを読もうとすると(例えばYahoo!USA)、そのページも必ず日本語で読もうとしてしまいます。言語指定が無くても、英語のページは英語で読めた方がいいわけですが、今回の改造だと、英語版のFirefoxに切り替えない限り英語では読んでくれません。本家の場合は、言語指定の無いページはWindowsの既定の音声で読んでくれるので、コントロールパネルでこの設定を切り替えることで解決します。現状ではHTMLタグに言語指定のあるページの方が少ないはずですから、この切り替えは簡単な方がいいでしょう。僕の改造のようにFirefoxのロケールを書き換えないといけないのでは困ります。イベントの読みとページの読みを分けた意味が無くなります。この改造は改悪になっています。これは余計な改造でした。上記の二番目のルールは、本家と同じように次のようになるべきです。・ページの文字列の読みは、言語指定が無いときは、Windowsの既定の音声とする。言語を指定できるようにするのもいいかもしれません。現在利用できる音声のリストを用意しておいて、メニューバーやボタンを使ってそのページを読ませる音声を選ぶようにしてもいいでしょう。この機能があると便利です。このプログラムを作るのは今すぐには無理なので今回の修正では見送ります。いう改造は別系列を作ってやるべきかもしれません。いうわけで、ページの文字列を思い通りの音声で読んでくれないときは面倒ですがコントロールパネルの「音声認識」で既定の声に切り替えてください。将来的にはFirefox上から切り替えられればいいなと思っています。いうわけで、xpiファイルを更新しました。バージョンナンバーをどうしようか決めかねてるので、今のところ同じ名前で置いておきます。|Firefoxを多言語対応にする方法そんなこんなで、Firefoxを多言語で使えるようにしてテストしてます。現在僕のFirefoxでは、メニューを英語や韓国語にしたりするとちゃんとその音声でメニューを読み上げてくれてるわけです。この方法を解説してみましょう。音声の入れ方は後回しにして、まずFirefoxを多言語対応にしてみましょう。知ってる人は知ってるでしょうが、その方法を書いておきます。firefoxを使っていない人は、日本語版Firefoxを持ってきて、インストールします。いうところをクリックすれば、ダウンロードが始まるはずです。指示に従ってインストールします。Switcher」という拡張機能を組み込みます。Switcher」を入れてみます。Firefoxで次のページを開いて、拡張機能をダウンロードして組み込みます。ページの上の方で許可を求めるメッセージが表示されるかもしれませんが、そのときは許可を与えてください。指示に従って、再起動させれば、完了です。Add-onsこれによりFirefoxに言語パックを切り替える機能が追加されました。言語パックとはメニューの項目名などその言語用の用意されたファイル群です。ツールメニューを開き、その中にある言語パックのサブメニューを見ると「日本語」があるはずです。今度は、英語版Firefoxをインストールしましょう。英語を使えるようにするには、Firefoxの英語版をインストールします。先ほどの日本語版を入れたときと同じ要領です。英語版は次のページの下の方に置いてあります。→その他のシステムと言語インストールの作業は英語での指示ですが、先ほどの日本語版をインストールしたので同じことをやれば問題ありません。起動させると、前回とは違ってメニューが英語のFirefoxが立ち上がるはずです。ツールメニューの言語パックのサブメニューを開いてみます。英語なので、表記はtoolsメニュー、Languages項目になっているはずです。State)とJapaneseが並んでいるはずです。ここにあるJapanese日本語を選びましょう。Firefoxを終了させ、再び起動させます。すると馴染みの日本語メニューのFirefoxが現れます。最初から英語でインストールするよりも、日本語で手順を知ってからやった方がわかりやすいので、このような方法にしましたが、英語の説明が読めれば、最初から英語版をインストールして下記の方法で日本語の言語パックを入れてもかまいません。上記の方法でも英語版のみのインストールでも、英語版Firefoxを最後にインストールするとちょっと都合が悪いことがあります。それはセーフモードでの起動の時に、英語版が起動してしまうことです。この問題はもう一度日本語版Firefoxを上書きインストールすることで対処できます。※追記終わりいろんな言語を入れてみましょう。英語以外は拡張機能ファイルの形で言語パックが配布されています。それをさっき入れた拡張機能と同様に組み込んでいけばいいです。各言語パックが置いてあるのは、次のリンクです。これはWindows用Firefoxのバージョン2.09用のリンクです。→ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.9/win32/xpi/Windows以外を使っているときや既にバージョンがあがっているときは、次のリンクから対応OSの対応バージョンのxpiディレクトリまで自力でたどり着いて下さい。→ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/たくさんのxpiファイルが並んでいるので、この中から必要なものを見つけます。複数の地域で話されている言語の場合は、言語の略語と地域の略語の組み合わせになっているはずです。ポルトガル語(pt-PT)とブラジル・ポルトガル語(pt-BR)となります。インストールが完了すれば、これでいろんな言語でメニューが表示されるFirefoxのできあがりです。「ツール」メニューの「言語パック」にあるメニューで言語を選び、再起動させれば切り替えられるようになります。Switcher」は、より細かな指定ができる拡張機能です。Switcher」ではあらゆるロケールに切り替えることができるようになります。再起動も自動化できます。Switcher」で十分です。ちなみに、ロケールというのは、言語や地域ごとで決まっている表記規則の集まりのことで、言語と地域の略号によって表されるロケール名で区別されます。具体的な例として、Firefoxのメニュー文字列はロケールによって切り替わっています。Naokoが使えるようになっているかもしれません。これはいわゆるロボ声なので、サンプルとしては使えますが実用向きとはいえません。マイクロソフトのSAPI5のページには、英語の音声も置いてありますが、日本語はありません。現状では購入しないと日本語のSAPI5対応音声を使うことはできません。実際に購入して調べてみた結果を書いておきます。日本語のSAPI5対応音声を手に入れるには次のような方法があります。Vox公式サイトで紹介されている通販サイトを利用3.音声合成が付属する機器・ソフトを購入では、詳しく説明していきます。市販の日本語音声合成です。日本語だけがほしければ、現時点ではこれが一番確実な方法でしょう。これは富士通の音声合成技術を利用したものです。はなちゃん、ロボ太郎、ロボ子」が使えるようになります。サンプル音声は上記サイトで聴けます。これらの音声はSAPI5だけでなく、SAPI4にも対応しています。Voicesページには音声サンプルとその購入ページへのリンクがあります。リンク先の購入ページでの支払いはクレジットカードやPayPalなどが使えます。英文サイトですので慎重に内容を読んでから契約して下さい。金額はもちろんアメリカドルです。ためしに一つここから買ってみました。ダウンロードにしましたが406MBありました。他にも探せば、このような音声合成を販売している海外サイトもあるかもしれませんが、もちろん慎重に利用しましょう。音声合成を使っている商品を購入することで、パソコンにSAPI5音声を組み込んでしまいましょう。おすすめなのが、PanasonicのICレコーダ「RR-US470」です。これには日本語だけでなく、英語・中国語・フランス語・ドイツ語・スペイン語・イタリア語・韓国語・ロシア語のあわせて9ヶ国語のSAPI5音声合成が入っています。これらの言語で書かれた文書の相互翻訳もできます。他のPanasonicのICレコーダでも同様なソフトが付いてくるのですが、このRR-US470についてくるのが今のところ一番高機能なソフトになっています。音声合成機能のサポートそれ以前に、RR-US470はとても使いやすいICレコーダです。他のICレコーダと使い勝手を比較したわけではないのですが、使ってみてとても便利だと思いました。ジョグダイアルによる操作が快適です。それも一つ分回す毎に分かりやすくピッと操作音が鳴ってくれます。回しすぎて終わりまでいくと最初に戻ってしまいますが、そのときはピッピッと特別に知らせてくれます。設定などの複雑なことは手探りだけではできませんが、基本的な操作は液晶画面を見なくても使えるので目の不自由なかたも便利に使えると思います。モノラル録音ですが音声メモ用と割り切ればそれで十分です。後日この商品の使い方をまとめてみたいと思います。市販の音声認識ソフトの中には音声合成も付属しているようです。それがSAPI5対応なのか確認していないのでここでは具体的な商品名はあげません。Chenさんが作ったマウス操作でホームページを音読させるFirefox用拡張機能です。Voxと同じCLCライブラリを使って作られています。日本語化の作業は、同じライブラリを使っているので簡単にできました。それも最初から国際化をしてあったので、作業はそれほどありませんでした。Voxに付属しているライブラリを使用しているので、公式よりもバージョンが新しくなってしまってます。修正しなければならないところがあると思いますが、とりあえずβ版として公開しておきます。読ませたいところをドラッグさせて、左上の白いボタンを押せば、読み上げてくれます。Voxの日本語版も少し修正しました。ライブラリを共有しているので、今までのものだと問題があったので、それを修正しています。訳文のおかしいところもいくつか書き換えました。Speakを参考にして、アドオン画面でロケールに合わせて説明を切り替えるようにしてあるのを真似てみました。日本語版]・ダウンロード(clc-4-tts_bundle_v3.4_jp.xpi)これからもちょくちょくこの二つの拡張機能を更新していこうと思います。今後は公開番号を後ろにくっつけて公開していきます。番号を付けていないものは最新の番号のものと同一のものです。常にこの記事からダウンロードできるはずです。Voxでおこないます。それはそうと、このサイトも改修したいと思いながら手を付けられずにいます。ソースをいろいろ眺めていると、いろいろアイデアが出てきて踏み込んだ改造をしたくなってきますが、公式のバージョンアップに合わせるのが難しくなるので、最低限にとどめておくつもりです。ロケールでアナウンスの言語を切り替える仕組みは面白いのでこのまま使い続けようと思います。そのせいでさらに余計な改造をしなくてはいけなくなっているのですが。シンプル日本語版いままで公開していたものの不具合を修正していると、やはり行儀のいい改造をやるべきだと痛感しました。動作は本家と同じ方がいいに決まっています。僕が無理な改造をしているせいで、迷惑をかけてもいけません。いうわけで最低限の改造をして日本語化したものを公開します。・ダウンロード(clc-4-tts_bundle_v3.4_jp.xpi)今まで公開していた最新版を指すリンクもこちらのバージョンのものを指すようになります。改造版はひっそりと作っていきます。今回のことで、改造版の不具合をいくつも見つけることができました。それも合わせて修正しました。いい加減な翻訳もいろいろ書き換えました。外国語を引用するときはlang属性を付けよう。ホームページで外国語を書くときは、ブログを含めて、その外国語をlang属性、xml::lang属性を付けておこう。ブログの気楽なところはHTMLタグを使わなくていいところなんだけど。できればタグにこの属性を付けるようにしよう。すれば、もしかするとページを開いてくれた人の役に立つことがあるかもしれない。ブログに外国語を書くことなんてないって人も多いだろうが、僕のブログは、外国語を引用してあるところも多い。いう人は、その引用文を囲むタグにこの属性をくっつける。blockquoteならば次のようにする。Voxは、この言語指定に対応している。Voxで読ませると、次の英文の引用の所で、英語の音声に切り替わるだろう。そのためには、SAPI5の日本語音声と英語音声がパソコンに入っていないといけない。language(言語を自動的に検出)にチェックしておかないといけない。条件があるけれど、それがそろうと、情報がとても便利に利用できるようになる。dog.別なサンプルとして、外国語の挨拶を読み上げるものを作ってみた。Voxのテーブルの読みの簡単なサンプルにもなっている。Voxのキー操作はここでは全然説明してこなかった。Voxの設定を開くと、英文字がいくつも並んでいる。CTRLキーとSHIFTキーと、その英文字を同時に押すことで、その機能を使うことができる。FとDとAとQはよく使う。固定修飾キーとしてPAUSE/BREAKを使うように設定していると、PAUSE/BREAKキーを押してオンの状態にしてあると、単に英文字のキーを押すだけで動作してくれるようにすることもできる。(06/28)OpenJTalkの共有ライブラリを作ってみました。追加しました(03/14)点字タイプ入力ソフトに、テンキー点字入力機能を追加しました(11/13)OpenJTalkの共有ライブラリを作ってみました。2.0QRコードSeesaaブログ。