Text-To-Speech (TTS) Voices
So I've been thinking about adding just something small. It would be the feature of changing voices. Me and my friend sometimes don't understand what the text-to-speech woman says because of her accent. If you could help with this, we would be really thankful.
Sincerely, David
-
Neosilver
You said that Discord follows the default settings of the system, but my Windwos 10 tts voice is a male from Austria (Karsten) and not the female from Discord. So what does "follows the default system" means?
Have a read through the earlier posts, (eg https://support.discord.com/hc/en-us/community/posts/360037406112/comments/360014497493), but the tl;dr is that /TTS is only half implemented in Windows 10; using the voice in the old Control Panel settings, rather than any of the current offerings.
Furthermore I would like to ask if it is possible to change the /tts output (voice) of Discord to a /tts output voice like amazon polly or another voice output with a better pronunciation of a certain language.
Unfortunately unless something significantly breaks, updates to /tts look like a very low priority for the devs.
Please upvote this thread though, so they can see there's significant demand for a better-quality implementation!
4 -
I've changed the voice in both places (control panel and the new Windows 10 settings) and it STILL plays the wrong voice.
... and I've rebooted since making the change.
3 -
Did that, still stuck on David's voice.
2 -
BOTH of those settings are on a Female voice, and Discord still a Male voice. I think Discord uses its OWN TTS voice.
2 -
Until the new discord update, the TTS was using my preferred voice but now it only uses George.
Yes the correct voice is set in the Win 10 speech settings (also set in the old control panel).
No I do not have any extra voices or APIs installed.2 -
Ged Dr.Flay™, we should probably either bump this item somewhere or start a new thread, I'm not so sure anyone will see what we are saying here... Let me know if you post a new thread, I'll move my post over. And likewise, if I start a new thread, I will let you guys know. I'm going to give Discord a couple days, then reinstall fresh and then I'll post my findings, at that time I will start a new thread, and will @ you guys on it...
-Spikeypup
2 -
I jumped the gun I apologize, while i have a workaround it's not what I thought. If you use another voice like Zira or Mark, then this workaround should work, but if you use a more custom voice like EvaM or something your've purchased etc. then the workaround I have DOES NOT WORK. I've narrowed it down to the one registry key that Discord uses for the voice selection, however whenever I modify this key to voices other than David, it only works for Zira or Mark (the other default voices with windows), and NOT my custom voice I use everywhere else, EvaM.
So I'm having to debug this at a much lower level than before and honestly I lack the registry monitoring tools I ned to make this easier, I have tools that work, but it's going to take me much much longer and a lot more analysis to find out what's going on. Basically if I change the key to Mark or Zira, it works, if I don't, Discord resets the key on it's own to David! So I have to find out how/where Discord is enumerating voices from, and how to "tweak" what is happening there during that process so that Discord can be set to use the voice you want.
I do have an escalated ticket in with Discord on this and they are aware of this thread and all my thoughts on this issue.... they're looking into it. Hopefully, they will do what is the BEST thing, which is to just provide a drop-down selection box that allows you to select the voice you wish to use (and others you can get, what an opportunity for them to make $$$! So, they should think about it, as like a Nitro thing where you can have neat or weird voices that they have, however selecting any system installed voice that is compatible should be FREE of course).
So, if something comes of that support conversation, I will be sure to relay that here as well. For now, I need more time to test all the possible keys and permutations of things, and it's not a little list, it's about 30 CLSIDs and Tokens spread out across dozens of keys and branches, and a lot of it is hashed so it makes it even harder to keep track of what you're doing...oof. Anyway, I'll keep you guys posted. Sorry for the delay...If at the end of the day I can't figure this out for other voices than Zira and Mark, I'll still put up that info, but it's not really useful compared to the goal fix. If you use either of those voices just mentioned and would just like to switch back to Mark or Zira, message here that it's urgent and I'll put up the fix to accomplish the change back to Zira or Mark. Otherwise, I need more time.
Thanks, keep your fingers crossed!
-Spikeypup#5103
2 -
I see. David this is how you took over the female voice??!
I have been struggling to get David off my tts, and face this thread. It all makes sense. You became the tts voice...1 -
Wait...I did?!?!?!?
1 -
Yes and if you want to have a different voice, just change it in windows settings. (windows 10)
Control panel > Ease of access > Speech recognition >> in the side bar ''Text to speech''
It may take some time. But you can have your own voice if u want since you're David.1 -
I have tried. Do you know how I could find get more languages for this?
1 -
heiress It looks like there's a disparity between the narrator settings windows prefers you use, and the control panel settings discord may be using instead; I have the same issue you do.
I raised this with support and while it can be perceived as a bug, it still looks like a feature request they'd need to spot in these forums and take up. _Technically_ /tts or `speak message` works, just not in a way that aligns with the system.
1 -
Nafryti In your case, I reckon your computer has another voice set up. Have a dig through settings and see if you can't match the voice you hear!
I have confirmed with discord support that they don't have their own TTS voice; short of providing my own video I can assure you that on my machine, it's using the Microsoft Zira voice from Control Panel, rather than MS Catherine I've set up in Settings. (I think this is a bug)
1 -
Yes, it is a disparity between the option you set in the different settings panels. One of which is accessed via the legacy Control Panel and the other through the Windows 10 control applet (in my case at least, don't know how it works with Win 7 or 8).
And that's not the end of it. In Windows 10 I can install voice packages for different countries, and in the Windows 10 control applet they are all available and can be chosen in order to make the Text-2-Speech work better with a particular language. However none of these are available in the settings available though the legacy Control Panel. There I can only see David and Zira.
The legacy control has probably not been updated to support the new voice packages, and by now I'm not holding my breath waiting for MS to fix this. They are seriously trying to remove as much as possible of the old legacy control panel. This is understandable but also unfortunate as it's so much easier to work with in most cases.
It does however also suggest that there are at least two ways to access the text to speech functionality in Windows, and that Discord is using an older legacy technique to do this. It might be that they haven't got a lot of feed back about this, or they don't want to break functionality for older versions of windows, but it might be worth asking about it.
1 -
I have the same issue. I'm quite certain I've got my settings correct. However, I have some extra insight. There used to be a Notepad++ plugin called Speech, that isn't distributed with Notepad++ anymore. If one goes about installing it, it also doesn't respect the default voice. I wrote my own (unpublished) Notepad++ plugin in C# (using an adapter project) using the windows System.Speech.Synthesis APIs, and if you just instantiate the correct TTS objects, you don't get the correct voice. You have to get the list of voices and set the correct voice. So far it appears the first voice in the list is correct, but I haven't done extensive testing.
Anyway, it's within discord's power to fix this for sure.
1 -
I'm experiencing the same issue. I'm pretty sure that my discord uses legacy settings from control panel. I'm using win 10.
I also would like to know if there is any option to get TTS to stop mentioning nicknames and to get it to use different voice tones for different nicknames (so that each user has its own unique voice). It would make my TTS experience perfect.1 -
win key -> narrator -> settings
win key -> settings -> time & language -> speech
control panel -> speech recognitionI've tried all three of the above, Discord still plays wrong(David's) voice.
1 -
just... change ur discord language
satylr I've tried setting discord to UK and US English, as well as German, however this has no impact on the /TTS voice on desktop. Could you explain how your answer solves the issue please? Are you doing this in the Desktop version or an app instead maybe?
1 -
hi
I have only found that information about tts on Discord
Important Note: TTS follows the default system settings of how Discord is being used. Internet browsers such as Chrome or Firefox have a different Text-to-Speech reading bot than Windows or Mac do. Depending on what platform you're using, you'll be hearing different TTS voices!
https://support.discord.com/hc/en-us/articles/212517297-Text-to-Speech-101
You said that Discord follows the default settings of the system, but my Windwos 10 tts voice is a male from Austria (Karsten) and not the female from Discord. So what does "follows the default system" means?
I found further informations:
"[...]The /tts voice is controlled by a default voice package that comes with Windows. The one that discord actually bothers looking at is in your Control Panel (not windows settings). Windows Settings > Time & Language > Speech > "Voice [Microsoft Zira]", Control Panel > Ease of Access > Speech Recognition > Text to Speech (left sidebar) > Voice Selection > "Microsoft Zira Desktop". [...]"
https://peterberge.com/55rnbk2/a5c4df-how-to-change-tts-voice-discordFurthermore I would like to ask if it is possible to change the /tts output (voice) of Discord to a /tts output voice like amazon polly or another voice output with a better pronunciation of a certain language.
1 -
With the latest Update today I have the problem, too.
Nothing changed on Windows side but only in Discord the TTS uses a horrible voice (this is on German Windows). Windows settings for TTS are correct and everything worked yesterday.
1 -
Same issue, voice has been reverted to George, and I have no way of changing it. I have custom voices I use with TTS and they were working properly everywhere including Discord...UNTIL the update this morning/last night. Something broke in the TTS arena for Discord :(
What I don't get is, since so many users use TTS why doesn't Discord just implement the bare controls for MS Speech API to allow selection of the voice within Discord instead of it picking pre-enumerated voices, because of this enumeration changes in the registry I've seen it cause problems in Discord.
Either Discord should re-enumerate and pick the correct voice synced with the system panel(s) (old control panel SAPI, and the new modern "settings area" for speech) upon each startup to guarantee the right voice is selected; or, the best option: include a drop down within the app that allows selection of your TTS voice based on installed voices/tokens in the system that gets populated upon application startup.
I haven't tried a full uninstallation (manual localdata/app removal) and reinstall, that may solve the issue as it has in the past for me, but that is not an ideal solution, even if it works. Will update if that solves the issue/ provides a work-around.-Spikeypup
1 -
Spikeypup since this thread is about having a full implimentation of TTS, rather than running with the bare minimum that's been around since the feature was introducecd, I think you should keep your TTS complaints in this thread. That way any upvotes don't get watered down for this issue!
1 -
Now that this thread's had some activity, I've revisited my research from last year.
https://support.discord.com/hc/en-us/community/posts/360037406112/comments/360014497493What I suspect has happened is that Microsoft have updated the Windows TTS API, so instead of using the dated Control Panel settings, it now uses the default voice for the user's region - regardless of what the setting actually is.
For instance, if I have Microsoft James set, clicking "speak message" has it read with Microsoft Catherine. None of my narration settings either say that. Since the behaviour's changed, I'll raise another support ticket with discord since this is still a bug that needs fixing, (even if last time it was brushed off as a 'feature request')
1 -
I sent in a request as well. I'm not sure the SAPI has changed, I have no problems with any other apps using the same API and my voices are all there and working correctly, I did notice that in Modern Settings App that my voice list was doubled up or enumerated twice, I need to check the registry to see what happened, indeed if MS made a slight change or re-enumerated those in a weird way then I could see why Discord is having trouble.Those look fine, but this:is not normal (doubled up list). And from what I can tell is a recent change.
So yes either MS made a slight change or something around the SAPI, or Discord made a slight change etc. But something definitely changed lol. Hopefully discord can offer some insight on this issue. Like I said, other narration/speechAPI apps seem to be functioning and changing voices as expected when doing so. Discord really needs it's own selection box for the TTS box so it hits the right voice/token every time from the SAPI enumerated list that the user wants. IMO.icy McFreezeFreeze ok I will keep it in this thread, I already started a ticket with Discord and referenced this thread as well. Thanks.-Spikeypup-Spikeypup1 -
Chiming in to say I started having this issue starting today as well.
- TTS Voice changed to George (previously Zira)
- When I opened my TTS settings (old and new), it was set to George, and there was no Zira option. I installed additional voice packs and set both to Zira, but Discord still uses the George voice
Basing on the above the issue most probably came from an OS update, since I've never touched the TTS settings until today.
1 -
Interesting, thanks for updating us. Based on my screenshot and other findings, as well as your comments and the above other folks, I agree, I think windows may have made a slight change, but not to the API, but if I'm right I think the enumeration of the voices registry keys and the token.xml file for the SAPI may have been altered, I'll have to check also the WoW64 SAPI stuff.
I'm going to do a full reinstall of Discord (removing from appdata manually and flushing registry entries so everything is vanilla) with things as they are now and see if that fixes it. If that is the case then this is a bug as a result of Discord not catching enumeration changes in the voices references/GUIDs within the registry. This would explain why a menu shows one thing but the action does another (voice selected is Zira, voice plays is mark) leaving you more than likely unable to select the right voice if that enumeration is changed/missing.
Standby, I'll update shortly with my findings, and also try to see last time the voice keys were modified, I can run a compare of the registry and the SAPI files from up to a couple weeks ago using backups, that should show clearly any major changes to those branches involved. Need time though... please be patient. Thanks!1 -
--UPDATE--
TLDR: Seems not related to Windows/MS as first suspected after testing, Accessibility options in Discord may be the culprit?
OK so after reviewing the Registry, all SAPI files and XML's etc. related to TTS within windows, I do not see any changes made to any registry keys, or the files. All keys and tokens are correct and have not changed since originally modified by me (to add voices).
I also tested numerous other TTS enabled apps as well as narrator and games that use TTS for chat in and out that choose the voice at runtime based on the control panel (SAPI) and Modern Settings (Narrator/Speech) settings you have set up in Windows, basically apps that don't have a way to choose the voice inside them, where they are based on your settings in Windows. They worked fine, the voice followed the panels selection properly, so if I selected Mark for example, the app would use Mark after it was started, change to Zira, restart app, and now it uses Zira. I Checked 3 apps and 5 games, all worked fine and as expected with windows TTS.
I tested apps that allow selection of the TTS voice through SAPI/.NET Controls. They (2 apps) worked as expected, voice followed the selection properly. That's a total of 10 applications checked, so I don't think Windows/MS changed at all at this point.
Discord is the only offending app at this time that I can tell. I also noticed a section in "Accessibility" within Discord settings, it allows you to adjust TTS Speech Rate. How long has that been there? I don't recall it being there, and if that section is new, I dare say, it is probably the root cause of this issue.
I'm suspecting that in order to modify speech rate a voice must be explicitly selected, it's possible in the new code a hardcoded reference was made to David/George the voice being used now by accident. I already have a ticket in with Discord and am working with them to try to see if we can resolve this issue together.
I need to use these other voices for a few reasons:- I use TTS in production of my streams for incoming chat.
- I use TTS to enable multi-tasking and making sure I don't miss any messages.
- The TTS voice I use is substantially higher quality than the default voices.
I would also imagine those who have PAID for very expensive voices are REALLY upset. So a fix or control would be ideal for this, either allow voice selection within Discord (IDEAL), or put back the prior runtime voice selection behavior based off the SAPI Panel/Settings App selections.
Spikeypup / Patrick
1 -
I did some tests and I've found out Discord now ignores the TTS settings from Windows and it chooses the TTS voice depending on the UI language of Discord application instead, i.e. if you have Discord language set to e.g. German, then the TTS voice will be also German. However, it's still not clear to me how voices are selected if you have multiple voices for the same language installed (e.g. multiple English voices).
I guess this new behavior is related to the new TTS settings introduced just few days ago:
https://support.discord.com/hc/en-us/articles/1500010454681#h_01FF8RQ8EHR2T5PPCF9MZY1E1Y
I did a correspondence with the Discord support and they are aware of the issue, however they don't have any estimation when it will be fixed.
A workaround for those who are fine to have only one TTS voice/language (which is other to the Discord UI language) is to remove all TTS voice packs except the one you need.
My issue is that I have Discord in Czech language, but the most of people (which I communicate with) speak English or Russian. Neither English or Czech TTS voices can read messages written in Cyrilic alphabet, so I've removed all voices except the Russian one. It can somehow read also English messages, just with a horrible Russian accent (and Czech messages are completely incomprehensible). Better than nothing until the issue is solved.
1 -
Sorry for the delay in posting, I am feeling a bit under the weather so I'm going to take a little rest and then I will go ahead and post the full solution when I get up, hopefully within a few hours, thanks for your patience, I hope you can understand; I ended up not sleeping still since the other day and I'm just zonked.
-Spikeypup
1 -
I ran into some issues with this, I have to perform further tests and research, my apologies. I'm working on it right now... I will post as soon as I can.
1
Please sign in to leave a comment.
Comments
49 comments