Web Speech Synthesis API: not all voices installed listed

I'm developing an application using the Web Speech API for speech synthesis. According to the API specification SpeechSynthesis.getVoices() should retrieve the voices available on the system.

On my iPad Pro, 12,9 inch, 3rd generation, iOS 16 however this doesn't return all voices installed on the system.

In system settings (Accessibility -> Spoken content -> Voices -> German) e.g. I see these voices:

  • Anna
  • Eloquence
  • Markus
  • Petra
  • Siri
  • Viktor
  • Yannick

However if for SpeechSynthesis.getVoices() I only get the voices within the group "Eloquence":

  • Eddy
  • Flo
  • Grandma
  • Grandpa
  • Reed
  • Rocko
  • Sandy
  • Shelley

All other voices (Anna, Markus, etc.) are missing. Is this a bug or is it intended by Apple that it's impossible to use all voices? This is independent of the browser, it's the same for Safari, Chrome or Firefox.

Use this in order to test which voices are available using the WebSpeech API: https://plnkr.co/edit/E2etsrUZVOVfrDwG

Replies

Hey there, it is expected that with Web Speech APIs only the pre-installed voices are available. Optionally downloadable voices are not available

This is really very bad news since our app needs it and it worked with iOS 15 and now isn't working with iOS 16 anymore. So with the update users are loosing functionality. Sad that Apple users have less and worse possibilities in this case compared to users of all other platforms.

Additionally it's not the case what you've described as the expected behaviour: e.g. the Spanish voice "Jorge" is preinstalalled, but also not listed via the Web Speech API.