Forum Discussion
Edge version 150 JavaScript speechSynthesis.getVoices() undefined voices
For the past few days JavaScript speechSynthesis has had a problem in Edge browser. Sometimes it gets the proper list of voices but most of the time it returns: "Microsoft undefined Online (Natural) - undefined" for every single Natural voice. It then uses the default voice (Microsoft David) for speaking the utterance. Can you fix this bug?
Edge Version 150.0.4078.83 (Official build) (64-bit)
Thank you.
2 Replies
- jeffsbakerBrass Contributor
This seems to have been caused by an Edge update that affected more than just me. On the same day that I started having this issue, another user had the exact same issue and posted it at: https://learn.microsoft.com/en-us/answers/questions/5950089/the-microsoft-undefined-online-natural-undefined-k?source=docs . 30+ people said that they had the same question and the question is only 1 week old. This issue lasted for many days even with Edge updates. It appears that Microsoft Edge developers finally fixed the issue. It was still happening today until I updated Edge to Version 150.0.4078.99. As soon as I restarted Edge after the update then speechSynthesis text-to-speech started loading the Natural voices correctly.
You’re reproducing an intermittent Edge 150 issue where Natural voice entries contain undefined fields and speech then falls back to Microsoft David. Microsoft’s Edge known-issues page does not list this symptom, so treat it as an unconfirmed regression, not a documented outage.
First open edge://settings/help, install any available update, restart Edge, and retest the minimal page. Test once in InPrivate with no extensions allowed. On a managed device, open edge://policy and check ConfigureOnlineTextToSpeech; Microsoft documents that disabling it makes online voice fonts unavailable. Capture successful and failing getVoices() results in DevTools Console, including name, lang, voiceURI, localService, timestamp, Windows build, and Edge version.
A community reply cannot ship the fix. Press Alt+Shift+I, describe the expected and actual arrays, include the minimal reproduction, and leave diagnostic data enabled. Meanwhile, reject incomplete voice entries and use a confirmed local voice fallback when an entry is incomplete.