音声エンジンに依存しない英語読み制御
この目標に関連しそうな問題として、いわゆるキャメルケースの英単語と、スペース区切りの英単語が、音声で区別できない、という問題があります。
例えば
のような文字列は NVDA が前処理で
に区切ってから音声エンジンに送っているようなので、どちらも「ユーズ キャラクター デスクリプション」のように区切られて読まれるようです。
これを「ユーズキャラクターデスクリプション」と「ユーズ キャラクター デスクリプション」のように区別したいという要望にこたえるためには、音声エンジンの問題だけでなく、その手前での英語の前処理が関わってきそうです。
補足すると、以下の2つは NVDA を英語に設定して eSpeak で読ませても音声としては区別できません。
UseCharacterDescription Use Character Description
単語レビュー(ラップトップ配列 NVDA+K )すると、前者は1つの単語として、後者は3つに分かれた単語として通知されるので、区別できます。
日本語に含まれる英単語の読みかたを、カタカナで読み下すか、スペルアウトするか、制御したいという要求があります。
例えば、cat を「キャット」と読むか「シー、エー、ティー」と読むか、という制御です。
現在はこの処理は音声エンジンに依存しており、例えば JTalk には約5万語の辞書が組み込まれています。
しかし、スクリーンリーダー側で英単語の辞書を持ち、音声エンジンに依存せず、ユーザーが切り替え(使い分け)できるようにするのが、日本語のスクリーンリーダーとして一般的な設計に近いと考えられます。