Ticket #32986

保存された設定の音声エンジンが初期化できないとき espeak が選択される

Open Date: 2014-01-23 22:53 Last Update: 2014-02-05 21:54

Reporter:
Owner:
Status:
Closed
Component:
MileStone:
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Fixed
File:
None

Details

ポータブル環境でSAPI音声エンジンがインストールされていない場合など、保存された設定の音声エンジンが初期化できない場合があります。

現状ではフォールバック先の音声エンジンは espeak になっていますが、日本語ユーザーには不都合なこともあります。

フォールバックする音声エンジンを espeak ではなく jtalk にすることが可能かどうか調べてみましたが、 synthDriverHandler.py で espeak とハードコーディングされている場所がいくつかあり、これを nvdajp_jtalk に変えればよさそうです。

Ticket History (3/4 Histories)

2014-01-23 22:53 Updated by: nishimoto
  • New Ticket "保存された設定の音声エンジンが初期化できないとき espeak が選択される" created
2014-02-03 19:19 Updated by: nishimoto
  • Resolution Update from None to Accepted
  • Milestone Update from (None) to 2014.1jp (closed)
Comment

本件に関する作業ブランチとテスト版を作りました。

NVDA 日本語テスト版 jpbeta140203 https://dl.dropboxusercontent.com/u/62564469/nvda_jpbeta140203.exe

config の初期値 auto が指定された場合と、config で指定されたエンジンが初期化できないときに espeak ではなく nvdajp_jtalk が選ばれるという実装になっています。

「日本語音声合成を使うユーザー」だけを想定した仕様になっています。

[ti32986 52fdbe2] changed default (auto) synth driver to nvdajp_jtalk
 2 files changed, 7 insertions(+), 5 deletions(-)

To ssh://git@bitbucket.org/nvdajp/nvdajp.git
 * [new branch]      ti32986 -> ti32986

以下の通り動作確認しました。

notepad %appdata%\nvda\nvda.ini

を実行して、

[speech]
	synth = hoge

のように書き換える。

nvda_jpbeta140203.exe を実行すると、エラーの音が出て、そのあと(フォールバックしたエンジンである) jtalk が使用許諾契約のダイアログを読み上げる。

このときログは以下のようになる。

INFO - __main__ (19:16:12):
Starting NVDA
INFO - core.main (19:16:13):
Config dir: C:\Users\nishimotz\AppData\Roaming\nvda
INFO - core.main (19:16:13):
NVDA version jpbeta140203
INFO - core.main (19:16:13):
Using Windows version sys.getwindowsversion(major=6, minor=2, build=9200, platform=2, service_pack='')
INFO - core.main (19:16:13):
Using Python version 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)]
INFO - core.main (19:16:13):
Using comtypes version 0.6.2
ERROR - synthDriverHandler.setSynth (19:16:13):
setSynth
Traceback (most recent call last):
  File "synthDriverHandler.pyo", line 80, in setSynth
  File "synthDriverHandler.pyo", line 40, in _getSynthDriver
ImportError: No module named hoge
INFO - synthDrivers.jtalk.mecab.Mecab_initialize (19:16:13):
dic: C:\Users\NISHIM~1\AppData\Local\Temp\nslACE3.tmp\app\synthDrivers\jtalk\dic
INFO - synthDrivers.jtalk.mecab.Mecab_initialize (19:16:13):
mecab:0.996 nvdajp-jtalk-dic (utf-8) 20140116-101914
INFO - synthDrivers.jtalk.jtalkDriver.initialize (19:16:13):
loaded C:\Users\NISHIM~1\AppData\Local\Temp\nslACE3.tmp\app\synthDrivers\jtalk\mei\mei_normal.htsvoice
INFO - synthDrivers.jtalk.jtalkDriver.initialize (19:16:13):
loaded C:\Users\NISHIM~1\AppData\Local\Temp\nslACE3.tmp\app\synthDrivers\jtalk\lite\voice.htsvoice
INFO - synthDriverHandler.setSynth (19:16:13):
Loaded synthDriver nvdajp_jtalk
INFO - core.main (19:16:13):
Using wx version 2.8.12.1 (msw-unicode)
INFO - braille.initialize (19:16:14):
Using liblouis version 2.5.3
INFO - braille.BrailleHandler.setDisplayByName (19:16:14):
Loaded braille display driver noBraille, current display has 0 cells.
INFO - brailleInput.initialize (19:16:14):
Braille input initialized
INFO - core.main (19:16:15):
NVDA initialized
2014-02-04 12:29 Updated by: nishimoto
Comment

jpbranch にマージしました。

To ssh://git@bitbucket.org/nvdajp/nvdajp.git
   e8102fe..52fdbe2  jpbranch -> jpbranch
2014-02-05 21:54 Updated by: nishimoto
  • Resolution Update from Accepted to Fixed
  • Status Update from Open to Closed
  • Ticket Close date is changed to 2014-02-05 21:54

Attachment File List

No attachments

Edit

Please login to add comment to this ticket » Login