Speech Synthesis in Safari

Current Issues with Speech Synthesis in Safari

With WebOutLoud's Browser Extension for Safari, you can listen to any website using text to speech. It's the only browser extension I'm aware of that actually uses Safari's built-in speech synthesis. And those voices are free to use. A wider selection of natural voices are available to premium subscribers.

As one of the early adopters of Safari's speech synthesis tech, we've run into some issues and have therefore created this page to keep track of them and raise awareness. The following represent issues that users of WebOutLoud's Safari extension may encounter and therefore shouldn't be considered a comprehensive list.

  • English voice Doesn't change

    As of Safari 15.5—

    Although several english voices are listed (for example, Alex and Fred) switching between them does not result in any changes. In other words they all sound the same. For example, Fred sounds exactly the same as Alex.

  • No voices are listed (cannot change voice)

    As of 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 (see above).

    As of 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.

    As of 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.

    As of 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

    As of 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.