2007年11月20日

音声選択の修正

今回のFire Voxの改造において、どの言語の音声で発音させるかのルールは次の通りにしていました。
なお、ページの言語指定というのはHTMLタグのxml:lang属性などによる言語指定のことです。さっき読ませて分かったのですが、seesaaブログではちゃんと"ja"に指定されています。

・メニューおよびイベントの読みは、Firefoxのロケールの言語の音声。そのロケールの言語の音声が用意されていなければ、Windowsの既定の音声。
・ページの文字列の読みは、言語指定が無いときは、メニューおよびイベントの読みと同じにする。
・ページの文字列の読みは、言語指定があるときは、指定されている言語。指定されている言語の音声が見つからなければ、言語指定がないものとして扱う。
・言語指定を無視するように設定されているときは、ページの文字列の読みは、言語指定がないものとして扱う。
・ただし、ページの文字列でも、タイトル名など要素と密接なものは、やむを得ずメニューやイベントの読みの音声となっている。

よく考えてみると、このルールだと、言語指定がないときは、そのメニューに使われている文字列と同じ言語だと解釈してしまいます。

具体的に説明すると、日本語のメニューが表示されているFirefoxで日本語の文書を読んでいるときは問題はありませんが、言語指定のない外国語のページを読もうとすると(例えばYahoo!USA)、そのページも必ず日本語で読もうとしてしまいます。言語指定が無くても、英語のページは英語で読めた方がいいわけですが、今回の改造だと、英語版のFirefoxに切り替えない限り英語では読んでくれません。本家の場合は、言語指定の無いページはWindowsの既定の音声で読んでくれるので、コントロールパネルでこの設定を切り替えることで解決します。

現状ではHTMLタグに言語指定のあるページの方が少ないはずですから、この切り替えは簡単な方がいいでしょう。僕の改造のようにFirefoxのロケールを書き換えないといけないのでは困ります。せっかく、イベントの読みとページの読みを分けた意味が無くなります。つまりこの改造は改悪になっています。これは余計な改造でした。

上記の二番目のルールは、本家と同じように次のようになるべきです。

・ページの文字列の読みは、言語指定が無いときは、Windowsの既定の音声とする。

言語を指定できるようにするのもいいかもしれません。現在利用できる音声のリストを用意しておいて、メニューバーやボタンを使ってそのページを読ませる音声を選ぶようにしてもいいでしょう。この機能があると便利です。ただこのプログラムを作るのは今すぐには無理なので今回の修正では見送ります。こういう改造は別系列を作ってやるべきかもしれません。

そういうわけで、ページの文字列を思い通りの音声で読んでくれないときは面倒ですがコントロールパネルの「音声認識」で既定の声に切り替えてください。将来的にはFirefox上から切り替えられればいいなと思っています。

そういうわけで、xpiファイルを更新しました。バージョンナンバーをどうしようか決めかねてるので、今のところ同じ名前で置いておきます。

ダウンロード(clc-4-tts_bundle_v3.4_jp.xpi)





posted by takayan at 00:51 | Comment(0) | TrackBack(0) | Fire Vox | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]


この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。