Ticket #32162

読み上げ辞書の仕様

Date d'ouverture: 2013-10-03 20:50 Dernière mise à jour: 2013-10-03 20:50

Rapporteur:
Propriétaire:
(Aucun)
État:
Ouvert
Composant:
(Aucun)
Jalon:
(Aucun)
Priorité:
5 - moyen
Sévérité:
5 - moyen
Résolution:
Aucun
Fichier:
Aucun

Détails

以下、メーリングリストでやりとりしたことを、こちらに公開しておきます。

読み上げ辞書はユーザーガイド 8.1.13

http://www.nvda.jp/nvda2013.2jp/ja/userGuide.html#toc64

で説明されていますが、ここにはGUIでの編集方法しか書かれていません。

読み上げ辞書については下記のバグが未解決です。

Windows 8 で読み上げ辞書の編集などをしたあとで NVDA が正常に終了しない

http://sourceforge.jp/ticket/browse.php?group_id=4221&tid=31592

下記が改良提案として挙がっています。

記号読み上げ辞書の編集を効率的に

http://sourceforge.jp/ticket/browse.php?group_id=4221&tid=30242

辞書は上記ユーザーガイドに書かれた通りですが、 ユーザー設定フォルダの Speechdict サブディレクトリに保存されるのは デフォルト辞書 default.dic と、 音声ごとに作られる辞書 (音声ドライバの名前)-(音声の名前).dic の2種類です。

いくつか辞書登録して、NVDA のソースを読んで確認したことをまとめます。

テキストファイルの文字コード UTF-8 (BOMつき) 改行コードは CR-LF

辞書エントリは コメント行(先頭文字が # の行、2行以上でもよい)と、 TAB文字で区切られたフィールドが4個あるデータの行の組み合わせ。

コメント行が2行以上連続する場合は、コメントが継続すると扱われる。

TAB区切りフィールドの情報
要素 1 : パターン
要素 2 : 読み
要素 3 : 大文字小文字を区別(0ならチェックなし、1ならチェックあり)
要素 4 : 正規表現(0ならチェックなし、1ならチェックあり)

(例ここから)
#空行の読み上げ
空行    クーギョー    0    0
#鳥を蛙に変える
bird    frog    1    0
(例ここまで)

1個目の例は「空行」を「クーギョー」に置き換える。
2個目の例は bird を frog に置き換える。大文字小文字の区別が有効なので、
bird フロッグ
BIRD バード
と読み上げる。

正規表現の説明は簡単ではありませんが、実はこの読み上げ辞書にはもう一つ、 ユーザーにカスタマイズできない「ビルトイン」という辞書があり、 あらかじめ下記が定義されています。

#break up words that use a capital letter to denote another word
([a-z])([A-Z])    \1 \2    1    1
#Break away a word starting with a capital from a fully uppercase word
([A-Z])([A-Z][a-z])    \1 \2    1    1
#Break words that have numbers at the end
((?:(?=\D)\w)+)(\d+)    \1 \2    1    1

これらは正規表現で書かれています。 最初の定義は

([a-z]) アルファベット小文字の直後に
([A-Z]) アルファベット大文字が来たら、
\1 \2 つまりマッチした2個の文字のあいだに空白が入った文字列で
置き換えなさい、
と書かれています。

NVDA が helloWorld のような文字列を hello World のように読み上げるのは、 このビルトインの仕組みによるものです。 のこり2個の定義も、 MSWord とか Excel2013 のようにアルファベットや 数字がくっついた文字を英語音声エンジンで自然に読み上げるために使われているようです。

なお、NVDA で使われている正規表現は、基本的に Python 2.7 の仕様に基づく正規表現のはずです。

Ticket History (1/1 Histories)

2013-10-03 20:50 Updated by: nishimoto
  • New Ticket "読み上げ辞書の仕様" created

Attachment File List

No attachments

Modifier

Please login to add comment to this ticket » Connexion