nvda and neospeech voices
neospeech dont show up in the nvda voice selection combo in settings. the voices actually work in jaws and narrator.
Sounds like somebody needs to write a driver for nvda then. I'm assuming they are not sappi or one of the other proprietary synth formats? Brian
Yes it is sapi5 Because jaws and windows10 narrator can see and use it
Skickades från E-post för Windows 10
Från: Brian Gaff Skickat: den 2 juni 2018 09:43 Till: nvaccess/nvda Kopia: mjonsson1986; Author Ämne: Re: [nvaccess/nvda] nvda and neospeech voices (#8359)
Sounds like somebody needs to write a driver for nvda then. I'm assuming they are not sappi or one of the other proprietary synth formats? Brian
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.
In JAWS, you can choose between two SAPI5 drivers I recall, the 64-bit and the normal SAPI5 driver. Are you able to see the voices with both drivers in JAWS?
I have the 64 bit voices Nvda can see 64 bit voices if i remember correct
Skickades från E-post för Windows 10
Från: Leonard de Ruijter Skickat: den 2 juni 2018 12:55 Till: nvaccess/nvda Kopia: mjonsson1986; Author Ämne: Re: [nvaccess/nvda] nvda and neospeech voices (#8359)
In JAWS, you can choose between two SAPI5 drivers I recall, the 64-bit and the normal SAPI5 driver. Are you able to see the voices with both drivers in JAWS? — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.
Don't think this is right. At least not yet. Do I not recall this issue came up with the speech platform voices a while back?
I think this is the Problem, NVDA is not able to see 64bit voices. At least according to my Research.
cc: @jcsteh is there a way move forward with this? To be honnest I don't know if 64bit voices are common out there, I mean those which are only 64bit coded.
They aren't common, no.
Ideas:
- COM allows you to instantiate objects out-of-process, so in theory, it might be possible to instantiate the 64 bit SAPI5 runtime out-of-process and just have COM transparently handle the cross-process communication. That could potentially be done by using dllhost as a surrogate for 64 bit SAPI. This requires registry tweaks and is described in this article. That article describes using a 32 bit COM server in a 64 bit process, but the technique is the same, just with some things swapped around. See also these Microsoft docs. One caveat is that SAPI5 does have a 32 bit COM dll and we don't want that to get used, but it has the same CLSID. Maybe specifying CLSCTX_ACTIVATE_64_BIT_SERVER (and maybe CLSCTX_LOCAL_SERVER?) would be enough to distinguish this, but I'm not sure.
- If that doesn't work, it might be possible to create a 64 bit stub executable (maybe even do it as part of nvdaHelperRemoteLoader64?) which instantiates 64 bit SAPI5 and then marshals it back to NVDA via some means; e.g. LresultFromObject or RPC. The executable would need to continue running (hosting the SAPI5 dll) until NVDA no longer needs it.
- Failing all of that, we'd need to host SAPI5 in a 64 bit process and manage the IPC ourselves instead of having COM do it.
I'm not sure there are enough 64 bit only synths to make any of this worthwhile, though.
cc: @seanbudd, @josephsl, @gerald-hartig this might be interesting to have in mind now that 64bit NVDA is being on the road map. Especially Jamies https://github.com/nvaccess/nvda/issues/8359#issuecomment-673166165 contains very valuable input.