davidacm / NVDA-IBMTTS-Driver

This project is aimed at developing and maintaining the NVDA IBMTTS driver. IBMTTS is a synthesizer similar to Eloquence. Please send your ideas and contributions here!
GNU General Public License v2.0
56 stars 23 forks source link

Serious crash with IBMTTS-20.07-x0_personal #37

Closed amirsol81 closed 4 years ago

amirsol81 commented 4 years ago

All, I was using IBM TTS 20.02B3 for a while, and this morning upgraded to 20.07-x0_personal. Everything worked flawlessly for 20 to 30 minutes or so, but suddenly the IBM TTS stopped talking. Switching to it crashes NVDA or keeps it silent without the possibility to switch to another TTS engine unless NVDA is killed and the library containing ECI.dll is removed. So far I have tried everything you can imagine: downgrading to 20.02B3, removing the location of the Library folder, re-installing to 20.07-x0_personal, uninstalling the IBM TTS add-on along with all relevant library files even from the NVDA/System config folder, and so on. But nothing resolves the issue. So what do you think is causing it? Why can't I even use 20.02B3 like before? I've spent a couple of hours resolving it to no avail. I'm using the latest NVDA Alpha on Windows 10 Pro 64-Bit, Version 2004. Thanks.

Mohamed00 commented 4 years ago

You should probably be creating these issues against the fork, not here. And can you send a log?

On 7/7/2020 10:37 AM, amirsol81 wrote:

All, I was using IBM TTS 20.02B3 for a while, and this morning upgraded to 20.07-x0_personal. Everything worked flawlessly for 20 to 30 minutes or so, but suddenly the IBM TTS stopped talking. Switching to it crashes NVDA or keeps it silent without the possibility to switch to another TTS engine unless NVDA is killed and the library containing ECI.dll is removed. So far I have tried everything you can imagine: downgrading to 20.02B3, removing the location of the Library folder, re-installing to 20.07-x0_personal, uninstalling the IBM TTS add-on along with all relevant library files even from the NVDA/System config folder, and so on. But nothing resolves the issue. So what do you think is causing it? Why can't I even use 20.02B3 like before? I've spent a couple of hours resolving it to no avail. I'm using the latest NVDA Alpha on Windows 10 Pro 64-Bit, Version 2004. Thanks.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/davidacm/NVDA-IBMTTS-Driver/issues/37, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADY4AYEHBKJSTBZO7KSOEOTR2MXI7ANCNFSM4OS4HBMQ.

amirsol81 commented 4 years ago

You are absolutely right, Mohamed. But under that fork I see no option about sending/reporting an issue -- only new pulls can eb created. As for the log, here it is: INFO - main (19:41:59.757) - MainThread (9104): Starting NVDA version alpha-20514,e87d8ab1 INFO - core.main (19:41:59.885) - MainThread (9104): Config dir: C:\Users\Acer\AppData\Roaming\nvda INFO - config.ConfigManager._loadConfig (19:41:59.886) - MainThread (9104): Loading config: C:\Users\Acer\AppData\Roaming\nvda\nvda.ini INFO - core.main (19:41:59.901) - MainThread (9104): Using Windows version 10.0.19041 workstation INFO - core.main (19:41:59.901) - MainThread (9104): Using Python version 3.7.8 (tags/v3.7.8:4b47a5b6ba, Jun 28 2020, 07:55:33) [MSC v.1916 32 bit (Intel)] INFO - core.main (19:41:59.901) - MainThread (9104): Using comtypes version 1.1.7 INFO - core.main (19:41:59.901) - MainThread (9104): Using configobj version 5.1.0 with validate version 1.0.1 ERROR - stderr (19:42:00.262) - Thread-2 (8132): Exception in thread Thread-2: Traceback (most recent call last): File "threading.pyc", line 926, in _bootstrap_inner File "C:\Users\Acer\AppData\Roaming\nvda\addons\IBMTTS\synthDrivers_ibmeci.py", line 123, in run dll.eciLoadDict(handle, self.dictionaryHandle, 1, path.join(path.abspath(ttsPath), "root.dic").encode('mbcs')) OSError: exception: access violation reading 0x0000003C ERROR - unhandled exception (19:42:07.623) - Dummy-3 (444): Traceback (most recent call last): File "_ctypes/callbacks.c", line 232, in 'calling callback function' File "NVDAHelper.pyc", line 400, in nvdaControllerInternal_typedCharacterNotify AttributeError: 'NoneType' object has no attribute 'windowClassName'

Mohamed00 commented 4 years ago

Should probably see if there's an option to enable issues on forks. As for the log, do you have, say, IBM ViaVoice and Eloquence installed at the same time? Access violation errors are usually caused by running two versions at once, causing a conflict.

On 7/7/2020 11:24 AM, amirsol81 wrote:

You are absolutely right, Mohamed. But under that fork I see no option about sending/reporting an issue -- only new pulls can eb created. As for the log, here it is: INFO - main (19:41:59.757) - MainThread (9104): Starting NVDA version alpha-20514,e87d8ab1 INFO - core.main (19:41:59.885) - MainThread (9104): Config dir: C:\Users\Acer\AppData\Roaming\nvda INFO - config.ConfigManager._loadConfig (19:41:59.886) - MainThread (9104): Loading config: C:\Users\Acer\AppData\Roaming\nvda\nvda.ini INFO - core.main (19:41:59.901) - MainThread (9104): Using Windows version 10.0.19041 workstation INFO - core.main (19:41:59.901) - MainThread (9104): Using Python version 3.7.8 (tags/v3.7.8:4b47a5b6ba, Jun 28 2020, 07:55:33) [MSC v.1916 32 bit (Intel)] INFO - core.main (19:41:59.901) - MainThread (9104): Using comtypes version 1.1.7 INFO - core.main (19:41:59.901) - MainThread (9104): Using configobj version 5.1.0 with validate version 1.0.1 ERROR - stderr (19:42:00.262) - Thread-2 (8132): Exception in thread Thread-2: Traceback (most recent call last): File "threading.pyc", line 926, in _bootstrap_inner File "C:\Users\Acer\AppData\Roaming\nvda\addons\IBMTTS\synthDrivers_ibmeci.py", line 123, in run dll.eciLoadDict(handle, self.dictionaryHandle, 1, path.join(path.abspath(ttsPath), "root.dic").encode('mbcs')) OSError: exception: access violation reading 0x0000003C ERROR - unhandled exception (19:42:07.623) - Dummy-3 (444): Traceback (most recent call last): File "_ctypes/callbacks.c", line 232, in 'calling callback function' File "NVDAHelper.pyc", line 400, in nvdaControllerInternal_typedCharacterNotify AttributeError: 'NoneType' object has no attribute 'windowClassName'

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/davidacm/NVDA-IBMTTS-Driver/issues/37#issuecomment-654939711, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADY4AYCSRAOBUSTITONUIWLR2M4Z7ANCNFSM4OS4HBMQ.

amirsol81 commented 4 years ago

Should probably see if there's an option to enable issues on forks. As for the log, do you have, say, IBM ViaVoice and Eloquence installed at the same time? Access violation errors are usually caused by running two versions at once, causing a conflict. On 7/7/2020 11:24 AM, amirsol81 wrote: You are absolutely right, Mohamed. But under that fork I see no option about sending/reporting an issue -- only new pulls can eb created. As for the log, here it is: INFO - main (19:41:59.757) - MainThread (9104): Starting NVDA version alpha-20514,e87d8ab1 INFO - core.main (19:41:59.885) - MainThread (9104): Config dir: C:\Users\Acer\AppData\Roaming\nvda INFO - config.ConfigManager._loadConfig (19:41:59.886) - MainThread (9104): Loading config: C:\Users\Acer\AppData\Roaming\nvda\nvda.ini INFO - core.main (19:41:59.901) - MainThread (9104): Using Windows version 10.0.19041 workstation INFO - core.main (19:41:59.901) - MainThread (9104): Using Python version 3.7.8 (tags/v3.7.8:4b47a5b6ba, Jun 28 2020, 07:55:33) [MSC v.1916 32 bit (Intel)] INFO - core.main (19:41:59.901) - MainThread (9104): Using comtypes version 1.1.7 INFO - core.main (19:41:59.901) - MainThread (9104): Using configobj version 5.1.0 with validate version 1.0.1 ERROR - stderr (19:42:00.262) - Thread-2 (8132): Exception in thread Thread-2: Traceback (most recent call last): File "threading.pyc", line 926, in _bootstrap_inner File "C:\Users\Acer\AppData\Roaming\nvda\addons\IBMTTS\synthDrivers_ibmeci.py", line 123, in run dll.eciLoadDict(handle, self.dictionaryHandle, 1, path.join(path.abspath(ttsPath), "root.dic").encode('mbcs')) OSError: exception: access violation reading 0x0000003C ERROR - unhandled exception (19:42:07.623) - Dummy-3 (444): Traceback (most recent call last): File "_ctypes/callbacks.c", line 232, in 'calling callback function' File "NVDAHelper.pyc", line 400, in nvdaControllerInternal_typedCharacterNotify AttributeError: 'NoneType' object has no attribute 'windowClassName' — You are receiving this because you commented. Reply to this email directly, view it on GitHub <#37 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADY4AYCSRAOBUSTITONUIWLR2M4Z7ANCNFSM4OS4HBMQ.

No. I just have IBM TTS installed. I removed Eloquence with the release of NVDA 2019.3 alphas as it wasn't useful anyway. The point is that IBM TTS was functioning flawlessly over the last 9 to 10 months and started malfunctioning after the installation of the new fork. I'm currently typing this with NVDA's SAPI 4 -- the same Eloquence which is a bit laggy, has longer pauses, has a lower bit rate, and can't indicate uppercase letters. I'm really stuck!

amirsol81 commented 4 years ago

And another worrying issue is that if I can't resolve this serious glitch, I won't be able to update Root.dic as it is very slow with MS Sapi 4. Before this started, I embarked on merging both my Root.dic file and the one offered as part of the community dictionary project. But it came to a halt as a consequence of this problem.

Mohamed00 commented 4 years ago

You closed this, so I assume it's resolved? Also, issues are now enabled on ultrasound1372/NVDA-IBMTTS-Driver, so you can file issues there now.

amirsol81 commented 4 years ago

Yes. I commented about the resolution of the issue, but as I closed this, the comment disappeared. A file titled ECI.ini was generated in my IBMTTS library folder -- adjacent to ECI.dll, and as I removed it, the issue disappeared instantly. Now I'm wondering how the file got generated there, or if the IBMTTS add-on for NVDA actually needs it.

amirsol81 commented 4 years ago

It's also worth mentioning that although I have checked the "Enable abbreviations dictionary" check box, I can't get IBMTTS to fix pronunciations of abbreviations like WHO with Abbr.dic. It seems that IBMTTS still can't detect and use Abbr.dic, or maybe I'm missing something. Root.dic functions OK, but I can't fix WHO there because when typed in lowercase, it should be pronounced differently as a pronoun.

Mohamed00 commented 4 years ago

Odd, it seems to work here. Where are you placing the dictionary?

amirsol81 commented 4 years ago

I place Abbr.dic in the same folder that I paste Root.dic, the folder which contains my library and ECI.dll. Oddly enough, while Abbr.dic doesn't work at all, I just checked and Main.dic works without a hitch. Main.dic is also great for abbreviations as it seems.

Mohamed00 commented 4 years ago

It does, however it lacks some of the rules that the abbreviation dictionary has, for example pronouncing an abbreviation whether or not it has a period at the end of it. Have you changed your TTS path?

On 7/8/2020 3:24 AM, amirsol81 wrote:

I place Abbr.dic in the same folder that I paste Root.dic, the folder which contains my library and ECI.dll. Oddly enough, while Abbr.dic doesn't work at all, I just checked and Main.dic works without a hitch. Main.dic is also great for abbreviations as it seems.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/davidacm/NVDA-IBMTTS-Driver/issues/37#issuecomment-655338886, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADY4AYEHROMOWXZHBWRQHNDR2QNJBANCNFSM4OS4HBMQ.

amirsol81 commented 4 years ago

Interesting. My TTS library path is C:\Users\Amir\AppData\Roaming\nvda\Eloq, and the add-on itself is located at C:\Users\Amir\AppData\Roaming\nvda\addons\IBMTTS. Do you think I should alter the library path? I've changed it mainly to avoid library removal while the add-on itself is updated.

amirsol81 commented 4 years ago

And one more question, if I may ask it. Which IBM TTS dictionary is most suitable for correcting abbreviations with dots such as U.S. and D.C.? I mean abbreviated forms which have a middle dot and end with yet another dot. It seems that Main.dic can't take care of them.