Closed Kessica closed 7 years ago
Have you set a voice inside of EDDI's 'Text-to-Speech' tab / verified that your desired voice is selected?
As you can see, there is a difference between the 32 bit and 64 bit. In desperation I bought Emma and installed it, which thankfully the 64 bit version picked it up. So EDDI will only pick up the 64 bit TTS, where as Win7 will only show you the 32 bit voices, despite being a 64 bit OS. The page you referenced is a bit of a misnomer as it doesn't actually do what it describes. I have spent many hours before installing Emma, scouring the web, and the only way to get 32 bit voices into 64 bit is to play around with the registry and then register a few dlls.
The fault is not with EDDI per se, but with Microsoft, However EDDI could make it a bit easier to say where it is picking up the voices from, as nothing makes sense when you compare the windows ctrl panel tts dialog and what you hear from EDDI or what it shows in the tts list. So it would be very useful for either eddi to provide a 32 bit interface to the voices, or better still, be able to pick whatever OS one would like to use, either 32 or 64 bit. It would save a lot of heartache and pain. Understanding the issue has been key here. That has been the major problem...
What does EDDI currently show in your TTS list?
It just shows the voices that are in the 64 bit list.
I did a bit more digging on this tonight and I have a few new comments:
(User hat off, programming hat on)
I think you may have hit the nail on the head with the runtime issue. I looked at the MSDN documentation for voice selection, and it seems that the only real choice you have is by selecting a voice by culture: https://msdn.microsoft.com/EN-US/library/kx54z3k7 in which there doesn't seem to be any way to select either 32 or 64 bit versions.
I think the only way this can be achieved is by being able to select programmatically which runtime can be used. This might be possible by either reading the registry, or discovering what DLLs are available and then selecting the right one. I would think that this is would mean a lot of experimentation, as Microsoft is not exactly forth coming with ways of doing this. I have done something similar in the past with msxml however they gave examples of this, and was reasonably pain free on the coding side even with un-managed code calling managed code (C++)
(User hat on) I have now got a voice I can use and hear clearly, which was the original object of the exercise. I wasn't aware that the original coder was no longer supporting his code, so your input and help is even more gratefully received. I think that, together we have highlighted a problem with Microsoft's implementation and opened a deep can of worms. The good thing to come from this, is that we have now highlighted this problem here, so that if anybody else has a similar problem, they can see that this has been addressed, and there doesn't really seem to be a viable solution.
If other users would like to consider buying other voices for their TTS, then details are here: http://harposoftware.com/en/english-uk/141-emma-british-english-voice.html
Thanks for your help
Kess
PS: I will leave you to close this issue, in case you have any further remarks to make :+1:
I'm glad you found a resolution. I have no further comments, but since I'm not a moderator or similar I do not have access to close this issue (or even tag it). Please go ahead and hit 'closed' for this issue - our comments will still be a searchable record on this project. 🙂
Thanks :D closing. Kess
Whatever I do, I cannot get EDDI to recognise my TTS default voice. It is currently set to Zirapro which is one of the en-US voices. I have even set my locale to en-US, but regardless of what I do, I always get Anna. For me this is a problem as it is not very clear, being partially deaf. I also cannot wear headphones with my hearing aids as it gets too painful after a while. So I need a way to get this working properly.
I have noticed in AppData/Roaming/speech.json that there is an entry for "standardVoice" which is set to null. I am wondering if this is part of the problem. Can I hard code the voice that I want here?
Ta very much