Author Topic: Optional Voices in Text-to-Speech  (Read 3857 times)

LinuxDevice

  • Newbie
  • *
  • Posts: 42
Optional Voices in Text-to-Speech
« on: July 27, 2023, 06:10:22 PM »
I've had no luck with alternative voices from "free" optional voices in Windows 10. The one I really want is the "MSTTS_V110_enAU_JamesM" (that's the registry key) voice, which is the Australian English voice (this reminds me of Jarvis in the Iron Man movies).

I've gone through some of the suggestions about registry editing to try to get it to work, but here is the prefix part of the registry path which the edits seem to want to create:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore


The trouble is that this voice already has the "Speech_OneCore" in it. There isn't anything to edit. Am I interpreting this wrong? Or am I just out of luck? I'm really frustrated that this could be SOOOO much fun, but seems impossible to succeed at.

There were also some topics on downloading some alternate text to speech software, which I tried, but I must be doing something wrong:
https://voiceattack.com/alternate.aspx

The steps from that URL added some radio checkboxes to the System/Advanced, but all I got was silence.

Is there any exact guide to installing, or especially debugging, why I cannot get either the Windows 10 James AU voice working, or to debug why I cannot get the guide from that latter URL to work?

Alternatively, does anyone know of any kind of more "Iron Man Jarvis-like" voice I can install? Note that many voice packs I see out there are only prerecorded speech, and are not full text-to-speech. I'm interested in any kind of aid to finding an actual text-to-speech for VoiceAttack, or debugging why I can't get others to work.

Pfeil

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4790
  • RTFM
Re: Optional Voices in Text-to-Speech
« Reply #1 on: July 27, 2023, 07:04:34 PM »
Exergist has this linked on the Discord (with the disclaimer "You assume full responsibility for what happens to your PC if you employ this method"): https://www.ghacks.net/2018/08/11/unlock-all-windows-10-tts-voices-system-wide-to-get-more-of-them/

Microsoft didn't make those voices available through SAPI, so anything to circumvent that is unofficial and not guaranteed to work.


A user did create a plugin for Microsoft Cognitive Services, which may offer additional voices, albeit through a different interface altogether.


For Speech Platform 11 voices, if you have the runtime and at least one voice installed, and the "Use Installed Speech Platform Speech Engines" option selected, presumably that should be available to the "Say Something with Text-To-Speech" action.

Do you have the "Audio Output Type" option on the "Audio" tab of the VoiceAttack options window set to "Integrated Components"?

LinuxDevice

  • Newbie
  • *
  • Posts: 42
Re: Optional Voices in Text-to-Speech
« Reply #2 on: July 27, 2023, 09:51:57 PM »
I currently have these active:
  • "Use Built-In SAPI Speech Engines"
  • and "Use Built-In SAPI Text-to-Speech Synthesizers"
.

I have the checkboxes for:
  • "Use Installed SPeech Platform Speech Engines"
  • and "Use Installed Speech Platform Text-To-Speech Synthesizers"
...but more or less it just failes if I use those latter two.

Is SAPI such that only Microsoft can make those or sell them?

Pfeil

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4790
  • RTFM
Re: Optional Voices in Text-to-Speech
« Reply #3 on: July 28, 2023, 08:12:15 AM »
There are third-party companies that make (or made) text-to-speech voices/engines that are SAPI compliant.

Quote from: Exergist
3rd Party Text-to-Speech Voices
NextUp
AT&T Natural Voices = https://nextup.com/attnv.html
Ivona Voices = https://nextup.com/ivona/ (multi-voice packs available)
Harpo Software (free trial and multi-voice packs available)
Ivona Voices = https://harposoftware.com/en/2-main/s-1/index/brand-ivona/category-single_voices
Nuance Voices = https://harposoftware.com/en/2-main/s-1/index/brand-nuance/category-single_voices
CereProc
CereProc Voices = https://www.cereproc.com/en/storesapi (see customizable demo at top of page)

Note that 100% compatibility is not guaranteed since these are 3rd party after all. You assume full responsibility for what happens to your PC if you employ any of these voices. If you encounter issues with any voices we'll update this list to reflect it.


"Use Installed Speech Platform Text-To-Speech Synthesizers" would the the one relevant to Speech Platform 11 TTS. "Use Installed Speech Platform Speech Engines" should not be required for those to work.

LinuxDevice

  • Newbie
  • *
  • Posts: 42
Re: Optional Voices in Text-to-Speech
« Reply #4 on: August 03, 2023, 01:47:07 PM »
If not for the high cost it would be quite tempting to try one of those voices from your list of URLs. However, I've been working on trying to get the Microsoft "James" (an en_AU voice) working.

I have this voice set as default in Windows 10. That voice is provided by Microsoft, and works in Microsoft. It this registry key, which is what "non-working" voices are supposed to be edited to become in order for them to (maybe) work:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_enAU_JamesM

It is the "Speech_OneCore" which non-compatible voices do NOT have according to some documentation. So this should be compatible. Windows 10 itself thinks it is compatible.

However, if I check "Use Built-In SAPI Text-To-Speech Synthesizers" VoiceAttack still uses the old default voice. Maybe that is because my computer is set up for en_US?

I actually installed many voices to test (voices from the Windows 10 system itself for different regions, e.g., British and Irish...English voices with different accents). I noticed that in VoiceAttack there is no method to pick which voice to use when there is more than one. I don't want to change my entire operating system to en_AU since I am in USA, but I suspect that if I were to force my entire operating system to migrate to en_AU, then it might use the James voice.

Is there any method at all to get VoiceAttack to list all voices on Windows and to pick a specific voice? Or is there a way to get VoiceAttack to use the default voice from Windows when that voice is not from the same locale (e.g., when locale is en_US, but the voice is en_AU)?

Basically, I've come to the conclusion that it isn't a problem with the Australian James voice, and it isn't a problem with being SAPI compliant (Microsoft is the one which supplies this voice, the registry key is what one would expect, and that voice works in Windows itself). I need a way to force VoiceAttack to use a specific voice from Windows.

Pfeil

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4790
  • RTFM
Re: Optional Voices in Text-to-Speech
« Reply #5 on: August 03, 2023, 01:57:04 PM »
Have you programmatically queried the Windows API that returns the list of available voices? If not, I don't see how you've come to your conclusion.


The "Say Something with Text-To-Speech" action has a "Voice" dropdown, which is where all TTS voices reported by Windows to be available through the SAPI API can be chosen, regardless of language.

There is also a profile level "Default Text-to-speech voice" dropdown that serves a similar function, which would override any "Say Something with Text-To-Speech" actions that have their "Voice" dropdown set to "Default".

LinuxDevice

  • Newbie
  • *
  • Posts: 42
Re: Optional Voices in Text-to-Speech
« Reply #6 on: August 03, 2023, 07:23:29 PM »
Here is my default, and how I know it is the default (plus I can "Preview voice" and it is correct...an Australian voice), see the attached Win10Pro_DefaultVoice.png.

Next is the attached screenshot "Win10Pro_AllVoices.png. Every single voice listed can be selected, and played, as part of "Preview voice".

The screenshot "OptionsVoiceAttack.png" shows I've picked the SAPI, which is presumably from Windows. The only voice which plays, ever, is the default voice from the original Windows install. Most of those voices are missing in VoiceAttack, including the current default, which is James. James is  the default, but VoiceAttack does not use it...instead the voice from the original Windows installation is used. The actual list of available voices in Windows is much larger than what is shown in VoiceAttack. I'm trying to find out why I cannot select the Microsoft James voice. Picking default does not pick this voice even though it is the default.

The final image is the actual text-to-speech command in VoiceAttack. Note that it shows David, Hazel, and Zira voices. None of the other voices are visible to VoiceAttack. All of these are from the Microsoft store, all of them are SAPI, and all seem to have the desired registry "Speech_OneCore" (I did not need to edit this).

So I am wondering, is there some method of figuring out how to get VoiceAttack to see the Microsoft SAPI compliant voices which Microsoft publishes?

Pfeil

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4790
  • RTFM
Re: Optional Voices in Text-to-Speech
« Reply #7 on: August 03, 2023, 07:29:55 PM »
Open the Windows control panel, navigate to "Speech Recognition", on the left-hand side choose "Text to Speech", and have a look in the "Voice selection" dropdown; do the voices you're referring to appear in that list?

LinuxDevice

  • Newbie
  • *
  • Posts: 42
Re: Optional Voices in Text-to-Speech
« Reply #8 on: August 04, 2023, 01:34:26 AM »
That list shows only the three which VoiceAttack sees. I don't know why Microsoft shows all of the voices in another control panel area, yet only three here (and in VoiceAttack). Since all of the voices were from Microsoft, and since all of them show up in the other part of control panel, I am stumped. Does that mean Microsoft lists and installs voices it cannot use, which are not SAPI compliant?

Pfeil

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4790
  • RTFM
Re: Optional Voices in Text-to-Speech
« Reply #9 on: August 04, 2023, 02:06:47 AM »
As I understand it, Microsoft would much prefer to do away with anything Win32-related (which is what the vast majority of software available for Windows is currently built for), and have everyone migrate to modern, web technology-based apps.

Because of that, a number of newer Windows features aren't intended for Win32 applications.

On the other hand, because Microsoft wants modern apps to be device and operating system-agnostic, they aren't intended to have proper access to the operating system itself, which is necessary for a lot of what VoiceAttack can do.

LinuxDevice

  • Newbie
  • *
  • Posts: 42
Re: Optional Voices in Text-to-Speech
« Reply #10 on: August 04, 2023, 10:02:19 PM »
I'm using 64-bit Windows 10, plus I think my VoiceAttack is also the 64-bit version. That of course does not mean it can't use the Win32 APIs. So is that what this is about, more the use of Win32, versus just SAPI compliant or not?

I don't know anything about the Windows method of providing services without providing access to the operating system itself, but it is an interesting issue. Still, unless Microsoft wants ONLY applications that THEY sell to work with text-to-speech, it would mean they have to have some sort of mediator to access that as a service even if there is some attempt to remove direct operating system access. I could see MS pulling something like that though, and making everyone who isn't a Microsoft vendor create their own text-to-speech. I'm just wondering now if there is some sort of advice when working on getting those voices working?

I suppose those third party voices could test their work on VoiceAttack since it is free to try, and it would benefit everyone (except for Microsoft) if their text-to-speech software worked with VoiceAttack. On the other hand, that other software is quite expensive.

Gary

  • Administrator
  • Hero Member
  • *****
  • Posts: 2832
Re: Optional Voices in Text-to-Speech
« Reply #11 on: August 04, 2023, 10:18:34 PM »
@LinuxDevice  Curious - Did these work at all?

Exergist has this linked on the Discord (with the disclaimer "You assume full responsibility for what happens to your PC if you employ this method"): https://www.ghacks.net/2018/08/11/unlock-all-windows-10-tts-voices-system-wide-to-get-more-of-them/

A user did create a plugin for Microsoft Cognitive Services, which may offer additional voices, albeit through a different interface altogether.


SemlerPDX

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 291
  • Upstanding Lunatic
    • My AVCS Homepage
Re: Optional Voices in Text-to-Speech
« Reply #12 on: August 05, 2023, 11:47:18 AM »
On the other hand, that other software is quite expensive.

I can totally relate. I'm on a fixed income, and $60 (USD) for a TTS voice seems like a lot.  That being said, I own the Ivona "Brian" (UK) voice which was something like $40-45 at the time, and have been so happy with it for nearly a decade.  If I was to span out the money I paid for that voice (which I am still very much happy with to this day, its "my" personal assistant even if newer voices are better) it would be a cost of less than $0.50 (fifty cents) a month!

Unless you plan to frequently change your TTS voice, and if you are sure you are loving VoiceAttack and want to start making it more personal and unique to you, my advice would be to sample all the voices on sale throughout these various places, find the one you love most, and either save up for it, or pull the trigger and never look back regardless of the cost (within reason).  It is an investment that will last a very long time and (if you're like me) will become the friendly and familiar voice you enjoy hearing when you interact with your various VoiceAttack profiles.

VoiceAttack short demo of Ivona TTS "Brian" (UK) - Malcolm's 8th Birthday

LinuxDevice

  • Newbie
  • *
  • Posts: 42
Re: Optional Voices in Text-to-Speech
« Reply #13 on: August 05, 2023, 09:56:17 PM »
On the other hand, that other software is quite expensive.

I can totally relate. I'm on a fixed income, and $60 (USD) for a TTS voice seems like a lot.  That being said, I own the Ivona "Brian" (UK) voice which was something like $40-45 at the time, and have been so happy with it for nearly a decade.  If I was to span out the money I paid for that voice (which I am still very much happy with to this day, its "my" personal assistant even if newer voices are better) it would be a cost of less than $0.50 (fifty cents) a month!

Unless you plan to frequently change your TTS voice, and if you are sure you are loving VoiceAttack and want to start making it more personal and unique to you, my advice would be to sample all the voices on sale throughout these various places, find the one you love most, and either save up for it, or pull the trigger and never look back regardless of the cost (within reason).  It is an investment that will last a very long time and (if you're like me) will become the friendly and familiar voice you enjoy hearing when you interact with your various VoiceAttack profiles.

VoiceAttack short demo of Ivona TTS "Brian" (UK) - Malcolm's 8th Birthday

I want to thank you for doubling down on this recommendation. I don't normally want to edit the registry, but I figured it was ok to break that one voice since I couldn't use it anyway. But...IT WORKED!!!

I want to thank everyone with their suggestions and sticking in there.

LinuxDevice

  • Newbie
  • *
  • Posts: 42
Re: Optional Voices in Text-to-Speech
« Reply #14 on: August 05, 2023, 09:57:27 PM »
On the other hand, that other software is quite expensive.

I can totally relate. I'm on a fixed income, and $60 (USD) for a TTS voice seems like a lot.  That being said, I own the Ivona "Brian" (UK) voice which was something like $40-45 at the time, and have been so happy with it for nearly a decade.  If I was to span out the money I paid for that voice (which I am still very much happy with to this day, its "my" personal assistant even if newer voices are better) it would be a cost of less than $0.50 (fifty cents) a month!

Unless you plan to frequently change your TTS voice, and if you are sure you are loving VoiceAttack and want to start making it more personal and unique to you, my advice would be to sample all the voices on sale throughout these various places, find the one you love most, and either save up for it, or pull the trigger and never look back regardless of the cost (within reason).  It is an investment that will last a very long time and (if you're like me) will become the friendly and familiar voice you enjoy hearing when you interact with your various VoiceAttack profiles.

VoiceAttack short demo of Ivona TTS "Brian" (UK) - Malcolm's 8th Birthday

I especially want to thank you for mentioning this registry edit again (I saw it elsewhere, it seemed like it wasn't necessarily tested, but you gave me the confidence to edit the registry). Everyone here is very kind.

LinuxDevice

  • Newbie
  • *
  • Posts: 42
Re: Optional Voices in Text-to-Speech
« Reply #15 on: August 05, 2023, 10:00:52 PM »
As I understand it, Microsoft would much prefer to do away with anything Win32-related (which is what the vast majority of software available for Windows is currently built for), and have everyone migrate to modern, web technology-based apps.

Because of that, a number of newer Windows features aren't intended for Win32 applications.

On the other hand, because Microsoft wants modern apps to be device and operating system-agnostic, they aren't intended to have proper access to the operating system itself, which is necessary for a lot of what VoiceAttack can do.


Got it working with registry edits, thank you for your persistence in answering questions on the forum.