Speech Synthesis in Safari

Current Issues with Speech Synthesis in Safari

These represent issues that users of WebOutLoud's Safari extension may encounter and therefore shouldn't be considered a comprehensive list.

  • No voices are listed (cannot change voice)

    Safari 15.4.1—

    This was partially fixed in 15.4.1. While you can now change voices, those changes don't always take effect. For example, all of the English voices sound the same.

    Safari 15.4—

    A call to speechSynthesis.getVoices() is supposed to return a list of voices to choose from. On Safari, nothing is returned. This means you cannot choose which voice you want to use. Instead, a system default is chosen for you. We don't know what methodology is used for determining the default voice. In prior versions of Safari it was possible to change the voice in system settings but this has apparently been removed.

  • Speech synthesis stops working on iOS when Safari is backgrounded.

    Safari 15.4—

    On iOS we've found that speech synthesis stops working when Safari is put into the background (meaning when you switch to another app or lock your device). Specifically this seems to occur when the app goes into the background WHILE it is in the midst of speaking. You're required to either refresh the page or restart Safari to get the speech synthesizer working again.

  • Speech synthesis stops working immediately after enabling the extension on iOS.

    Safari 15.4—

    Immediately after enabling the extension for the first time on iOS, the speech synthesizer will not start. Again, the only way to get it working again is to either refresh the page or restart Safari.

  • No Background Audio on iOS

    Safari 15.4—

    I'm placing this last as it's not necessarily a bug in Safari's speech synthesis but an overall limitation of Safari extensions on iOS. It stands to reason that someone would want to listen to an article or some other long-form content while their phone is locked in their pocket. Fortunately, this is possible using the WebOutLoud iOS app however, it is NOT currently possible with WebOutLoud's Safari extension on iOS. This is unfortunate and Apple should consider allowing Safari extensions to create audio sessions similar to the capabilities of regular iOS apps.

SpeechSynthesis is part of the Web Speech API, an open web standard. The W3C specification is still in draft status but that hasn't stopped browser makers from making it available to developers.

While Safari has implemented *some* of the SpeechSynthesis API, and we've adopted it here at WebOutLoud for our Safari Extension, it has issues.