視覚障害者はプログラマーとして生きられるか NVDAの音声エンジンはJTalkで決まり!
こんにちは、土田淳也(@mocoatuya)です。
網膜色素変性症という目の病気により視覚障碍者となりながらも、プログラマーとして生きていくために考えたこと、実践したことなどを綴る記事です。
前回の記事でも少し取り上げましたが、スクリーンリーダーのNVDA(音声エンジン:Windows OneCore 音声)が変わった読み上げ方をするためにコードが理解しづらいという問題がありました。
(例: endif -> エンダフ)
この問題は、音声エンジンを変えることで改善されるということなので、いくつかの音声エンジンを試してみた結果、JTalkという音声エンジンが最良だという結論がでました。
というわけで今回はその理由などについて書いていきます。
環境:Windows10 + NVDA version 2020.2jp + VSCode
読み上げかた比較
NVDAで使用できるデフォルトの音声エンジンには
・eSpeak NG
・JTalk
・Microsoft Speech API version 5
・Windows OneCore 音声
があります。まずは、いくつかの単語に対するそれぞれの音声エンジンの読み上げ方を書いていきます。
・eSpeak NG(音声:English America 日本語も読み上げてくれます)
url :ユーアールエル
endif : エンディフ
<div>:レス ディブ グレーター
def parse_html: デフ パース ライン エイチティエムエル
django : ジャンゴ
getsamplewidth :ゲットサンプルウィドゥス
framerate : フレームレート
・JTalk
url :ユーアールエル
endif : エンドイフ
<div>:レス ディブ グレーター
def parse_html: デフ パース ライン エイチティエムエル
django : ディー ジェイ エイ エヌ ジー オー
getsamplewidth :ゲッチャンプルウィドゥス
framerate :フレームレート
・Microsoft Speech API version 5
url :ユーアールエル
endif : エンダフ
<div>:レス ディブ グレーター
def parse_html: デフ パーズ ライン エイチティエムエル
django : ジャンゴ
getsamplewidth :ゲッチャンプワイドス
framerate :フレーマラテ
・Windows OneCore 音声
url :ユーアールエル
endif : エンダフ
<div>:レス ディブ グレーター
def parse_html: デフ パーズ ライン エイチティエムエル
django : ジャンゴ
getsamplewidth :ゲッチャンプワイドス
framerate :フレーマラテ
読み上げ方評価
今回取り上げた単語 getsamplewidth の例からもわかるようにMicrosoft Speech API version 5、Windows OneCore 音声エンジンによる読み上げはプログラミングには向いていないです。
espeak NG とJTalkのどちらが良いのかは好みによると思いますが、個人的にはdjangoなどの単語を「ディー ジェイ エヌ ジー オー」といった、それぞれのアルファベットで読み上げてくれる点と、日本語を自然に読み上げてくれる点でJTalkのほうが好みであります。
しかし、espeak NG は英単語を流ちょうに読み上げてくれるので英語リスニングの練習に使えるのではと思ったりしています。
おすすめの設定
プログラミングをする際に設定しておいたほうが良い項目をいくつかあげます。
・音声 句読点/記号レベル → すべて読み上げ
この設定によりコンマなどを読み上げてくれるようになります。
・書式とドキュメント 行インデント → 読み上げ
スペースの数を読み上げてくれるようになります。pythonでは必須の設定です。
まとめ
NVDAのデフォルトの音声エンジンではJTalk、もしくはespeak NGが良いというお話でした。
話は変わりますが、今回の話題のもととなった、音声エンジンを変えることで読み上げが改善されるといった情報は「アクセシビリティ」のイベントに参加した際に教えていただいたことです。もし視覚障害をお持ちであるなら是非アクセシビリティのイベントに参加されることをおすすめします。
私もイベントに参加することで参加者の方からたくさんの情報や、勇気をもらっています。(この話はまた詳しく書きたいと思っています)
記事を読んでいただきありがとうございました。
この記事が気に入ったらサポートをしてみませんか?