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 音声認識くらいですが。。