Ticket #34684

NVDA が読み上げ途中で停止する

Open Date: 2014-12-08 13:00 Last Update: 2015-02-24 14:32

Reporter: nishimoto Owner: nishimoto
Type: Bugs Status: Closed
Component: 音声合成 MileStone: 2015.1jp (closed)
Priority: 5 - Medium Severity: 5 - Medium
Resolution: Fixed

Details

10月18日に「らくらくNVDA」ML経由で NVDA が読み上げ途中で停止するというご報告がありました。

この報告をされたかたに直接確認する機会があったのですが、2014.4jp にバージョンアップしても 解決していないとのことでした。

引き続き検討したいので、とりあえず上記MLのご発言内容をチケットにします。

気になるのは Windows 音声認識くらいですが。。

(1)使用しているPC
PC Windows7 Ultimate SP1 64bit
RAM  12.0GB
CPU  Core i7

NVDA使用中のデスクトップ
Windows音声認識アイコンがデスクトップに表示された状態で(但しoff又はスリープの状態)
NVDAを起動し使っています。

(2)質問事項
NVDAが読みあげ途中で停止する件
可也長い時間(5~10分)読上げる時もあれば2~3分で読上げを停止する時も有り一定でない。
Shift+Alt+N再起動すると再開出来る、この繰り返しで現在使っている。

Attachment File List

No attachments

Ticket History (3/7 Histories)

2014-12-08 13:00 Updated by: nishimoto
  • New Ticket "NVDA が読み上げ途中で停止する" created
2014-12-29 19:45 Updated by: nishimoto
  • Milestone Update from (None) to 2015.1jp (closed)
  • Owner Update from (None) to nishimoto
  • Resolution Update from None to Accepted
  • Component Update from (None) to 音声合成
2014-12-29 19:50 Updated by: nishimoto
  • Milestone Update from 2015.1jp (closed) to (None)
  • Resolution Update from Accepted to None
  • Component Update from 音声合成 to (None)
Comment

コメントを書く場所を間違えたので、さきほどの書き込みを取り消します。

2015-01-15 23:24 Updated by: nishimoto
Comment

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 の文字列の内容:

指定されたデバイスは既に使用されています。解放されるのを待ち、その後で再実行してください。
2015-01-15 23:56 Updated by: nishimoto
Comment

上記のエラーの暫定的な対策案:

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
2015-01-31 12:09 Updated by: nishimoto
  • Milestone Update from (None) to 2015.1jp (closed)
  • Resolution Update from None to Fixed
  • Component Update from (None) to 音声合成
Comment

マイルストーンを間違えて解除してしまったようです。

私がこの現象に遭遇しやすいのは VMware Fusion の仮想環境ですが、 本件の修正をしてからは、JTalk の音声出力が安定している気がします。

オーディオ出力デバイスによっては起きやすかったのかも知れません。

2015.1jp で修正されたと宣言してよいかどうか、もうすこし情報を得たいと思います。

2015-02-24 14:32 Updated by: nishimoto
  • Ticket Close date is changed to 2015-02-24 14:32
  • Status Update from Open to Closed

Edit

Please login to add comment to this ticket » Login