New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provide support for new Windows 10 One Core voices #6159
Comments
After some investigation, there seems to be a reference to a SAPI_OneCore.SpVoice com object in the registry. Alas:
|
Hi, In next.13417, I get the following traceback. STR:
Traceback: ERROR - scriptHandler.executeScript (22:10:43): Setup:
It might be that future commits may have fixed this. Thanks. |
Most likely the speech data for that language is not installed. If you know its language you can go to Windows 10's language settings, We can't really do much about the error. The voice is registered, but Mick On 11/07/2016 3:13 PM, Joseph Lee wrote:
Michael Curran |
wouldn't it be possible to check the existence of de voice in c:\windows\system32\speech_onecore?
|
Hi, Workaround confirmed. For the record, the workaround is:
Issue at hand: I was using Korean, hence that explains why I got COM error. Thanks. |
I think there is a bit of indirection between voice tokens and On 11/07/2016 3:36 PM, Leonard de Ruijter wrote:
Michael Curran |
Loading this new synth fails when output device is not Microsoft sound mapper. |
Thanks. Fixed in commit 4810483 |
I think it is possible to fix the problem reported by @josephsl.
it's a mystery to me why Windows has these voices in the registry though. My Windows is English GB, so I have no English Australian stuff installed. |
The speech rate isn't preserved when using synth settings ring.
On 7/11/2016 12:27 PM, Leonard de Ruijter wrote:
Websites: email me at derek.riemer@colorado.edu mailto:derek.riemer@colorado.edu |
Confirmed, but this issue also applies to Sapi5. I was able to reproduce
this in master, so this seems a separate issue.
|
Technically that is not a complete path. That is the basename of one of On 12/07/2016 4:27 AM, Leonard de Ruijter wrote:
Michael Curran |
Hi. in the anniversary update of Windows 10 Microsoft introduced an Arabic mobile voice. This is the first free Arabic tts. Fixing this issue will bring NVDA to many Arab users who can't afford to buy a commercial tts and will give many others a legal voice to use. what would this take to be committed? |
Likewise, would be great to use the new Dutch voice. |
@michaelDCurran It looks like this is already in progress. I'm going to set this to priority 2 to finish if off. |
I'm working on a completely new driver for this, as the existing approach
had some limitations (such as not being able to access boosted rates
fully). I'll self-assign this.
|
The Windows 10 Creators update has brought another wave of mobile languages and voices. Here's the full list: |
@jcsteh: It seems that the Windows speech settings in the settings app influence the speech rate range of NVDA. Str:
You will see that, when one core is selected in NVDA, changing the speech rate in the Windows settings app allows you to set the rate much faster. |
I guess that makes sense. With the OneCore speech API, we do not have a way
of setting absolute base values; we can only make relative adjustments. So,
the base values are taken from the Windows speech settings. Unfortunately,
while Narrator has access to a private API to set absolute base rate and
pitch, this API is not public, and even if we found a way to access it,
this puts us in dubious legal territory. We've made these concerns very
clear to Microsoft and are hoping for a resolution in a future Windows
update. For now, this is the best we can do.
|
Also, if you do Derek, and then derek, the capital letters are not pitch
adjusted.
…On Fri, May 5, 2017 at 1:10 AM, James Teh ***@***.***> wrote:
I guess that makes sense. With the OneCore speech API, we do not have a way
of setting absolute base values; we can only make relative adjustments. So,
the base values are taken from the Windows speech settings. Unfortunately,
while Narrator has access to a private API to set absolute base rate and
pitch, this API is not public, and even if we found a way to access it,
this puts us in dubious legal territory. We've made these concerns very
clear to Microsoft and are hoping for a resolution in a future Windows
update. For now, this is the best we can do.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#6159 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AFGivSIrh6InOPUgILutzkyWFz9WkTMXks5r2stvgaJpZM4JIR_w>
.
--
Derek Riemer: Improving the world one byte at a time!
- University of Colorado Boulder Department of computer science, 4th
year undergraduate student.
- Accessibility enthusiast.
- Proud user of the NVDA screen reader.
- Open source enthusiast.
- Skier.
Personal website <http://derekriemer.com>
|
I've also noticed that at the moment, pressing the cancel button in the
voice settings dialog does not revert speech settings back to what they
were previously.
…On 5/5/2017 3:10 AM, James Teh wrote:
I guess that makes sense. With the OneCore speech API, we do not have
a way
of setting absolute base values; we can only make relative
adjustments. So,
the base values are taken from the Windows speech settings. Unfortunately,
while Narrator has access to a private API to set absolute base rate and
pitch, this API is not public, and even if we found a way to access it,
this puts us in dubious legal territory. We've made these concerns very
clear to Microsoft and are hoping for a resolution in a future Windows
update. For now, this is the best we can do.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#6159 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/APHAYP5syuJ5UG72tc_e09HFAbO47aT4ks5r2stwgaJpZM4JIR_w>.
|
With the latest Next snapshot, I’m seeing crashes with Core voices. I’m trying to track down more details with the log.
|
I’m happy to say that, after a few days of constantly using One Core Mobile voices following the crash fixes, I haven’t experienced a single crash or delay attributable to these voices.
|
@jcsteh I found a case where One Core voices seem to be generating errors. steps and log below. Tested in Win 10 Pro insider 16199. NVDA version next-14051,e102a7e0 STR:
NVDA generates frequent error tones. See log for results. |
That website seems to have invented a new language: "us" (as opposed to
"en-US"). That's an invalid language identifier and it seems OneCore barfs
on those. We're going to need to filter out invalid language codes.
Technical: I think we can do this with
languageHandler.localeNameToWindowsLCID. If it returns 0 or 0x1000, it's
invalid.
|
@PratikP1 commented on May 23, 2017, 12:48 AM GMT+10:
This should now be fixed in the latest next snapshot (next-14066,9f903895). |
@jcsteh commented
|
Here are some additional issues I've noticed.
|
@PratikP1 commented on 11 Jun 2017, 05:54 GMT+10:
Did you save your settings before copying to secure desktop? Arguably, we should do this automatically, but I don't think we do right now, which means settings you changed since your last save won't apply.
NVDA has a builtin dictionary rule to break up camel case words (e.g. CamelCase), since this is reasonably common. Unfortunately, this does break examples like McFail. It's a tricky problem. On one hand, we don't want to break things like McFail. On the other hand, that rule was added precisely because camel case words were causing users problems. |
@jcsteh WROTE:
I did save the settings. I had Core One Voices running as default on the desktop for quite a bit before I applied the settings to secure desktop. I didn't want to rely on an unstable synthesizer on secure desktop because of its critical role.
What confuses me about this is that synthesizers such as Espeak or Codefactory eloquence don't seem to be affected by this type of issue. |
@PratikP1 commented on 12 Jun 2017, 09:19 GMT+10:
What settings were lost? Did you lose the voice or just rate and pitch? Note that rate is affected by the rate you set in system speech settings, which obviously can't be set for secure screens. There's nothing we can do about this right now, I'm afraid. Microsoft are working on exposing API to make this better.
eSpeak seems to pronounce "Mc Fail" (with a space) so it sounds the same as "McFail" (no space). I'm guessing Eloquence does the same. |
@jcsteh wrote:
I lost the speed and pitch settings. The voice is kept. A Microsoft team member is following up with feedback I provided to them regarding the exposure of these settings via API. |
… issue #6159) This uses a C++/CX dll to access the UWP SpeechSynthesizer class. There are other UWP APIs we might like to access in future (e.g. OCR), so rather than making this dll specific to OneCore speech, it's called nvdaHelperLocalWin10. The build system for this dll makes it easy to add other components in future. In addition, this required code to generate balanced XML from an NVDA speech sequence. Although we use SSML for eSpeak, eSpeak happily accepts unbalanced (malformed) XML. OneCore speech does not. This code is in the speechXml module. This might eventually be reused to replace the ugly balanced XML code in the SAPI5 driver. Note that NVDA can no longer be built with Visual Studio 2015 Express. You must use Visual Studio 2015 Community, as you also need the Windows 10 Tools and SDK. See the updated dependencies in the readme for details. Also, we now bundle the VC 2015 runtime, as some systems don't have it and it is needed for OneCore Speech.
I'm not sure whether this is an NVDA issue but I doubt it. Just for reference, it appears that Win 10 build 16226 in combination with NVDA version next-14129,104d2ff9 changes the voice name, changing the voice dictionary. I had a large dictionary built up with a particular One Core voice until now. With the latest update, The dictionary no longer refers to the One Core voice as mobile. "oneCore-Microsoft Zira Mobile.dic" is no longer active with the Zira voice. Rather "oneCore-Microsoft Zira.dic" is now active. Anyone testing these voices in NVDA builds will need to rename the old mobile dictionary to the newer name if they don't wish to lose dictionary changes for a particular One Core Voice. To do this, use the following steps:
|
I find an official list of windows core voices. I think it would be very beneficial that those are referenced in the user manual or wiki? |
@mohdshara commented on 26 Jun 2017, 20:00 GMT+10:
Nice find; thanks. I updated the User Guide (22602cd #7366) to reference this link instead of the one we were referencing before, as it's more relevant and up to date. |
in the user guide you say: |
I have my rate set to 100% in Settings and 100% in NVDA. It is fairly fast, but I can still understand it. In contrast, if I set the rate to 100% in Narrator, it is much faster; I cannot understand it. |
You can in fact get fast rates with NVDA, go into settings and change the speech speed slider to 100% there and then set NVDA to 100% |
That's exactly what I'm saying. Even with both of those set, it's not as fast as Narrator's 100%. It's fast, but not "as" fast. |
@jcsteh: Is there a particular reason why One Core speech doesn't work on UAC and other secure screens? STR:
Result: I get a "could not load" message, even though OneCore is able to talk using Narrator just fine. |
@leonardder commented on 18 Jul 2017, 05:49 GMT+12:
I'm not sure. Would you mind filing a follow up issue for this? Thanks. |
Never mind my previous comment, it turned out that I had an old test driver in my synthDrivers folder for system config. |
There to all. On Sunday I started using the one-core voices and one day the nvda stopped for 2 times. device to return. |
I really want to use catherine mobile australian voice for my TTS if i have to listen to it every day when I stream. The only instructions for this require hacking the registry, but are outdated. It would be nice to NOT have to hack the registry to do this, but even if I have to, if I had correct instructions, i could do it. |
Windows 10 has mobile voices which can formally be accessed only from windows store apps. However, it is possible to copy the registry keys for these new voices from "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens" to "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens". You have to do this in c:\windows\syswow64\regedit.exe in order for NVDA not to throw a com error upon selection.
Of course, this is the ugly way. However, it might be possible to create a new synth driver which gets the voice tokens from the particular registry location.
The text was updated successfully, but these errors were encountered: