NVDA が読み上げ途中で停止する
コメントを書く場所を間違えたので、さきほどの書き込みを取り消します。
JTalk でときどきこういう現象が起きる:
ERROR - synthDrivers.jtalk._bgthread.BgThread.run (23:21:06):
Error running function from queue
Traceback (most recent call last):
File "synthDrivers\jtalk\_bgthread.py", line 32, in run
func(*args, **kwargs)
File "synthDrivers\jtalk\jtalkDriver.py", line 178, in _speak
_jtalk_speak(msg, index, prop)
File "synthDrivers\jtalk\jtalkDriver.py", line 142, in _jtalk_speak
lf0_amp_ = la)
File "synthDrivers\jtalk\jtalkCore.py", line 349, in libjt_synthesis
feed_func_(buf)
File "nvwave.py", line 164, in feed
self.open()
File "nvwave.py", line 146, in open
winmm.waveOutOpen(byref(waveout), self.outputDeviceID, LPWAVEFORMATEX(wfx), self._waveout_event, 0, CALLBACK_EVENT)
File "nvwave.py", line 84, in _winmm_errcheck
raise WindowsError(res, buf.value)
WindowsError: [Error 4] \u6307\u5b9a\u3055\u308c\u305f\u30c7\u30d0\u30a4\u30b9\u306f\u65e2\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u89e3\u653e\u3055\u308c\u308b\u306e\u3092\u5f85\u3061\u3001\u305d\u306e\u5f8c\u3067\u518d\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002
WindowsError の文字列の内容:
指定されたデバイスは既に使用されています。解放されるのを待ち、その後で再実行してください。
上記のエラーの暫定的な対策案:
git@bitbucket.org:nvdajp/nvdajpmiscdep.git
diff --git a/source/synthDrivers/jtalk/jtalkCore.py b/source/synthDrivers/jtalk/jtalkCore.py
index f585b6b..2f66f2a 100644
--- a/source/synthDrivers/jtalk/jtalkCore.py
+++ b/source/synthDrivers/jtalk/jtalkCore.py
@@ -346,6 +346,9 @@ def libjt_synthesis(feature,
byte_count = ns * sizeof(c_short)
buf = string_at(speech_ptr, byte_count)
if feed_func_:
- feed_func_(buf)
+ try:
+ feed_func_(buf)
+ except WindowsError:
+ pass
if logwrite_ : logwrite_('libjt_synthesis done.')
return buf
マイルストーンを間違えて解除してしまったようです。
私がこの現象に遭遇しやすいのは VMware Fusion の仮想環境ですが、 本件の修正をしてからは、JTalk の音声出力が安定している気がします。
オーディオ出力デバイスによっては起きやすかったのかも知れません。
2015.1jp で修正されたと宣言してよいかどうか、もうすこし情報を得たいと思います。
10月18日に「らくらくNVDA」ML経由で NVDA が読み上げ途中で停止するというご報告がありました。
この報告をされたかたに直接確認する機会があったのですが、2014.4jp にバージョンアップしても 解決していないとのことでした。
引き続き検討したいので、とりあえず上記MLのご発言内容をチケットにします。
気になるのは Windows 音声認識くらいですが。。