Closed arasaac-dga closed 1 year ago
I now have a real iPad available for testing and found out the reason for this problem: iOS has many voices with the same name (e.g. "Eddy"). I have considered voice names to be unique and therefore discarded Eddy (es)
after I've already added Eddy (en)
- that's the reason some voices didn't show up for selection. I've now changed it and using the unique voiceURI for distinguising between voices.
Now there are many more voices like Eddy (es-ES)
and Eddy (es-MX)
- however for me they sound exaclty the same. But I think we should continue showing both since it's an error of iOS to offer two different voices which are actually the same.
Should be available for testing on grid.asterics.eu/latest/ in 10 minutes.
We have checked and if you set Spanish as content language only 2 voices are shown (one in ES-es Monica and antother ES-mx Paulina). So in Spanish is not solved.
iOS in Accesibility options offer 3 voices for ES-ES and 3 for ES-MX
OK, for me it seems that there are much more voices available in the iOS settings:
This is what the settings in AsTeRICS Grid look like for me now:
Most of the voices available seem to come from "Eloquence" in the iOS settings menu, where these voices are listed. However the voice I've selected in iOS settings ("Carlos") also isn't shown in AsTeRICS Grid. But it's also not shown on any other web speech API demo page like this: https://eeejay.github.io/webspeechdemos/ So I'm afraid that for whatever reason Apple decided to make some voices available via Web Speech API and some not.
Perhaps we have different iOS versions? Our iPad is old (5 years ago). Perhaps it's the reason why we only have 3 voices and only ES-ES and ES-MX. Or perhaps is because we have the iOS on Spanish. We don't know the reason but as you see in screenshots we dont have so many voices avaiable. Where is the path you floow to see all the voices avaiable? Attach some screenshots in English. We will try to change the language to English and follow the steps to try and we tell you our iOS version. Thanks.
We have an iPad Pro 12,9 inch, 3rd generation, with iOS 16. Maybe it's because it's the "pro" version.
I've switched my language to Spanish and this is the path in iOS settings to get to the voices (but I think it's the same you're using): Accesibilidad -> Contenido leido -> Voces -> Español
In an email you've commented:
We have found an intermediate solution, fixing as predefined the male voice (for example Jorge) and set the voice as Automatic in Asterics Grid but it's a complex solution to users.
This isn't working for me, "automatic" just uses the first language of the list. However I've found another iOS bug, sometimes the voice says something like "speak - voice name apple eloquence ... " and only then the text it should speak. So for me it seems like Apple's implementation is quite buggy.
I've posted the behaviour of missing voices at the Apple Developer forum. It's currently being reviewed and then should be available at this link: https://developer.apple.com/forums/thread/723503
Let's see if I get an answer.
Chapter 2. We had an Ipad Pro 9.5 with iOS 15.6. We have uploaded it to iOS 16. The result is, as you comment, that they have added new voices for different Spanish dialects and now is available the new "Eloquence" voice that offer different voices that are really really awful and with very poor quality. So, the new feature that you have added in latest, shows the new "Eloquence" voices but they are so poor that it's better to come back to the main version solution and offer only one per language. As a collateral effect, the trick that we use for setting the voice in Automatic (using the voice predefined in Accessibility) is lost. It worked with iOS 15 but not with iOS 16. So, we have lost more than we won with system updates. Hopefully, Apple responds to you and can reorientate this, because it's a pity not to have access to all the available voices through the API.
Oh, that's really embarrassing that updating to a new version takes away functionality 😞 Unfortunately it seems to be intended by Apple, this is their answer:
Hey there, it is expected that with Web Speech APIs only the pre-installed voices are available. Optionally downloadable voices are not available
Can you come back in the the update you made yesterday in latest to restore the list of voices as is in manin version? The new "Eloquence" voices is better that are not show in the list because are awful. About Apple response they not clarify why Web Speech API only show one voice and not all pre-installed. Because in case of Spanish Jorge that is preinstalalled is not shown in the list of Asterics. Not working the trick of Automatic selection it would be neccesary that all pre-installed voices (3 in Spanish, Jorge, Monica,...) are listed. It's really a problem because users need one male voice at least to choose.
I've commented to Apple that it's embarrassing that the iOS 16 update takes away some functionalities from the user and also that preinstalled voices like "Jorge" are not listed.
Of course I could revert the update of AsTeRICS Grid, but it would mean that I'm restoring a bug, which isn't what I really want to do. Just because the voices aren't good, I don't think they should be removed, I think the users should be able to decide what they want to use. However if you really think that it's best to remove the voices, I maybe would only filter out the spanish "Eloquence" voices, not all. Maybe for some other language these voices are better or the only offline alternative?! I also could just sort the voices and display the "Eloquence" voices at the bottom.
Ok thanks for commenting on it to Apple. We understand that you comment to not to come back. Really it's not your problem and you make much more than Apple does. The main problem is not only the low quality of "Eloquence" voice but, above all, lose the possibility to use the Automatic option that on iOS 15 offers a good solution. So, leave as is at the moment and we wait for Apple's response. We thought about leaving as the last option or other solution. We will comment. Thanks as always!!!
We have tested un other languages like English and some voces luke bubbles or lsughing are a joke (but ver sadly). So please leave Eloquence voices at the end of the list in you can. Anyway we are stunning about this new voices. We don't understand coming from Apple but it's their problem. Thanks
I've just updated to https://grid.asterics.eu/latest
com.apple.speech.synthesis.voice.*
are filtered out and not displayed (Apple's joke voices)com.apple.eloquence
are sorted back - less qualityI think this should be a good solution.
Ok, thanks. It's the best solution at the moment. We hope Apple gives a solution and it's possible to have access to all the other voices via Web Speech API (including Jorge or Monica) or recover the option to select them via Automatic selection on Asterics.
I've just updated to iOS 17 and it looks like something has changed. For each language I now can select at least one higher quality voice, for German Anna
and for Spanish (ES) Mónica
and (MX) Paulina
. Additionally I've noticed that in Safari only these higher quality voices are available now, while in Chrome also the voices with bad quality are still available (e.g. Eddy
, Flo
, Grandma
, etc.).
So in total I think a very positive change. However of course it would be still better if we would have all voices that are listed in the system settings.
Yes. They are good news but not completely because at least in spanish we have a problem. There are no male voices and many users don't identify with female ones. We don't know how Apple doesn't consider something so basic as it's to offer almost one male and one female quality voice.
Yes, it's the same in German, there is only female Anna
.
A new update - after updating my testing iPad to iOS 18, things got worse again (regarding the high-quality voices). The German voice "Anna" is completely gone, the Spanish "Monica" and "Paulina" where working shortly, but then also disappeared and now only for English there are "Karen", "Moira", "Rishi" and "Samantha". Another English voice was shortly existing, but then also disappeared. So currently people using AsTeRICS Grid on iPad should not update to iOS 18.
Ohhh noo!!. This have no sense!! We would like to know which is the objetive of Apple taking this kind of actions. Perhaps is related with the idea of not offer support for webapps? (that are not in its app store and not give money?).
Maybe, but it seems very uncoordinated and buggy. In iOS 16 it was similar to now in iOS 18 and in iOS 17 it was better because at least single high quality languages were avaiable for webapps. And now in iOS some voices are shortly available and then disappear... Maybe things change to the better when there will be the "real" Chrome or Firefox available for iOS. Currently all iOS browsers are using the WebKit Engine of Safari in the background, but the EU has forced Apple to also open it to other browsers engines like Blink from Chrome: https://medium.com/@golisaikrupa.409/apple-unlocks-full-potential-of-chrome-and-firefox-on-iphone-for-eu-users-8a392c0f5ecd
However, it will still need some time until these new Chrome or Firefox versions are available. And maybe then iOS still doesn't give them access to the system API for the voices...
I've added a new comment to the Apple Developer thread: https://developer.apple.com/forums/thread/723503?page=1#805333022
Some other people also have complained there, you could also register and do so. Maybe it helps at some time.
Thanks for the explanation about the possible reasons for the problems with TTS Voices on the navigators. We don't know that Chrome and Firefox are obligated to use Webkit Engine. It could be a reason. Hopefully it will be solved in near future because this issue seriously compromises the accessibility not only of Asterics Grid but other web pages too.
Good news in the bad news:
I found a way to get at least one high quality voice working on iOS 18. If I pass null
(nothing) to the API for speech, it seems like the default system voice is used. This default system voice depends on the current language of the device.
Therefore I've added a new voice which can be selected named Default system voice
(or defaultSystemVoice
for Spanish, since it's currently not translated in crowdin). This causes to pass null
to the API and therefore select the default system voice. I've tested to set my iPad to German and Spanish as device language and then Default system voice
was a higher quality voice in this device language.
For the language of Default system voice
the current browser language is shown (which will be the same as the device language is most cases).
The difference to the existing automatic
voice: with automatic
the first voice from the existing voices of the current language is used. This can be "default system voice" (if it's the only voice in this language) or another voice with a real name.
Maybe this new "default system voice" is also useful for other cases on other operating systems. It's released to "latest", so you can test.
Ok, thanks for discover this "solution" that is not the best but it's a solution. Hopefully the use of other navigator engines solve the problem in near future. We have translated in Crowdin. So you can launch it on main version of AG.
On an iPad configured in Spanish, in Content Reading option inside Accessibility Settings, the system offer 3 languages for Spanish (Spain) and another three for Spanish (Mexico):
But in Asterics Grid, on Voice Menu you can only select one language in Spanish (Spain), Monica and one for Spanish (Mexico), Paulina:
It could be neccesary to investigate why it shows only one and if it is or not possible to retrieve the three languages available on Accessibility options.