Forum Discussion

jeffsbaker's avatar
jeffsbaker
Brass Contributor
Jul 18, 2026

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

  • jeffsbaker's avatar
    jeffsbaker
    Brass 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.