チケット #31246

濁音・半濁音文字への対応

登録: 2013-04-29 12:51 最終更新: 2013-06-18 13:37

報告者:
担当者:
(未割り当て)
チケットの種類:
状況:
オープン
コンポーネント:
(未割り当て)
マイルストーン:
(未割り当て)
優先度:
5 - 中
重要度:
5 - 中
解決法:
なし
ファイル:
なし

詳細

下記のコミットについて説明します。

  • git nvdajp release-2013.1jp 2db17e3: added combining voiced (semi-voiced) sound marks U+3099 and U+309A
  • 翻訳 svn 9510

ひらがな・カタカナの濁音、半濁音(がついたカナ文字ではなく、記号そのものを表すもの)には以下の種類があります。

  • 合成用濁点 U+3099 合成用半濁点 U+309A
  • 濁点 U+309B 半濁点 U+309C
  • 半角濁点 U+FF9E 半角半濁点 U+FF9F

上記のコミットで 合成用濁点 U+3099 合成用半濁点 U+309A を「ダクテン」「ハンダクテン」と読むように追加しました。

合成用文字は例えば PDF からコピーされた文字列に含まれることがあります。

参照 http://d.hatena.ne.jp/nakamura001/20120529/1338305696

また Microsoft IME では "3099" F5 キーで合成用濁点を入力できます。

これらの文字への NVDA 日本語版 (2013.1jp) の対応状況は以下の通りです。

  • Microsoft IMEの変換候補として詳細読みされるときに、309B が「濁点」ではなく「中点」になるなど、不具合があります。
  • 記号読み上げレベルに依存しない(音声エンジンの実装依存で読み上げる)文字として定義されています。JTalk や Haruka Desktop では、カナ文字「か」と合成用濁点が連続していれば「が」のように読み上げます。JTalk は mecab.py で入力を NFKC 正規化しています。日本語点訳エンジンと共通です。
  • カーソルを左右移動したときの説明モードでの読み方は、今回のコミットにより、3種類の濁音・半濁音のいずれも「ダクテン」「ハンダクテン」と読み上げます。ただし合成用文字が使われているときのカーソル左右移動の挙動はアプリケーションの実装にも依存します。

なお Windows 8 以外の環境は未確認です。

チケットの履歴 (4 件中 3 件表示)

2013-04-29 12:51 更新者: nishimoto
  • 新しいチケット "濁音・半濁音文字への対応" が作成されました
2013-06-17 11:12 更新者: nishimoto
コメント

本チケットに関連して調べたことを書いておきます。

トに半濁点を付けた文字(アイヌ語の表記に用いられる仮名の一つ)

Wikipedia http://bit.ly/11pkUXS

片仮名トに半濁点をつけた文字 JIS X 0213 1-5-94 は Unicode では U+30C8 U+309A の合字でしか表現できません。

この文字は NVDAJP の mecab.py で NFKC 正規化されず、そのままテキスト解析されます。

現状の JTalk 辞書には、解析できない記号文字が出現すると、その直後の形態素の読みが欠落する傾向があります。

このケースだと 30C8 の合成用半濁点が読めないだけでなく 309A 「ト」やその後ろの文字び読み付与も欠落します。

2013-06-18 12:35 更新者: nishimoto
コメント

トに半濁点を付けた文字列について、Python の正規化の挙動を確認したので書いておきます。

# 半角半濁点は合成用半濁点に変換される
>>> unicodedata.normalize('NFKC', u"\u30c8\uff9f")
u'\u30c8\u309a'

# 半濁点は「空白文字+合成用半濁点」に変換される
>>> unicodedata.normalize('NFKC', u"\u30c8\u309c")
u'\u30c8 \u309a'

# 合成用半濁点は変化しない
>>> unicodedata.normalize('NFKC', u"\u30c8\u309a")
u'\u30c8\u309a'

もし NFKC 正規化の後処理をするか辞書登録をするなら、これらのパターンをカバーすればよいことになります。

(前のコメントを訂正: 30C8 ト 309A 合成用半濁点です)

2013-06-18 13:37 更新者: nishimoto
コメント

下記のコミットで、合成用半濁点にキャレットを置いて文字説明(NVDA+ピリオド2回)を行ったときの不具合に対応しました。

release-2013.1jp 09218c9

ただし、直前の文字との組み合わせ、そしてアプリケーションによって、合成用文字を1文字として処理することもあり、2文字として処理することもあるようです。

添付ファイルリスト

添付ファイルはありません

編集

このチケットにコメントを追加するには、ログインが必要です » ログインする