日本語読み上げにおける記号読み上げ制御の影響
まず msspeech Haruka を使い、記号読み上げレベル「なし」「すべて」の両方で下記のケースを正しく読み上げるように symbols.dic の調整を行いました。
123,456,789,012バイト 100,000円 1.23 100,000円 1.23
変更内容は以下です:
lp:~nishimotz/nvdajp/releases_2011.3 revno 4815
JTalk の調整を行い、記号読み上げレベル「なし」「すべて」の両方で、直前のコメントのケースを正しく読み上げることを確認しました。
変更内容は以下です:
lp:~nishimotz/nvdajp/releases_2011.3 revno 4816
記号の読み上げについて、いただいたご意見を追記します:
日付と時刻の読み上げについては、引き続きご意見を伺うことにします。
チケット25681(本家2011.2への対応)と重複しますが、改めて問題を列挙します。
(1)2011.2j における検討
モード(レベル)切替: NVDA制御キー + P
下記で指摘されている問題(¥24,000を「にじゅうよえん、かんま、ぜろぜろぜろ」と読むなど)が、音声エンジンにかかわらず起こるようになります。
http://mahoro-ba.net/e1506.html
これは例えば、数字に挟まれたカンマが「記号読み上げレベル」によって、「カンマ」または空白の文字列に置換されて音声エンジンに送られる仕様のためです。
例えば 100,000 円という表記を「十万円」ではなく「ひゃく、ゼロゼロゼロえん」あるいは「ひゃく、カンマ、ゼロゼロゼロえん」のように読み上げます。
記号読み上げ「なし」の場合は 100 000 と区切られた数字が、記号読み上げ「あり」の場合は 100 カンマ 000 のような文字列が音声エンジンに送られます。すべての音声エンジンに共通の処理になっています。
2011.1.1j 系では「記号と数字が混在していた場合の読み」についていろいろ独自のルール(電話番号や日付など)を実装しましたが、 2011.2 系では上記の理由で動かないため、この処理も削除しました。
(2)新たにいただいたご指摘
ユーザの方から「2011.2J以降のバージョン」について以下のご指摘をいただきました(引用・修正しています):
(3)NVDA 本家の実装と方針
記号に関しては音声エンジンに依存しない読み付与を行う、ということが、本家の方針です。
開発者ドキュメント (scons devDocs で生成される output\devDocs\developerGuide.html) の 2.2 節には Symbol Pronunciation に関する説明があります。
これによると preserve フィールドを使うと音声エンジンに記号の読み方を決めさせることができます。これを適切に設定することで、音声エンジンに依存しない部分については、改良できる可能性があります。
「句読点/記号読み辞書の編集」では記号読み上げのレベルごとの「読む・読まない」および「どのように読むか」はユーザが変更できます。しかし preserve フィールドに相当する情報は変更できません。また、テーブルのエントリを追加・削除することはできません。