The eSpeak-NG speech synthesis engine on ChromeOS

ChromeOS comes with a port of the open-source eSpeak-NG speech synthesis engine. eSpeak-NG is lower quality than Google‘s “PATTS” speech engine, but it’s faster, uses less resources, and supports more languages.

Read more about Text-to-Speech in Chrome.

See also Google's “PATTS” speech engine.

About eSpeak-NG

eSpeak-NG is an open-source project, released under the GPL v3 license. The current home of the project is on GitHub:

https://github.com/espeak-ng

NG stands for Next Generation. It's a fork of the eSpeak engine created by Jonathan Duddington.

Eitan Isaacson of Mozilla wrote the initial port of eSpeak to JavaScript using emscripten in April 2015. Alberto Pettarin adapted that to work with eSpeak-NG in October 2016.

The ChromeOS port is heavily based on the emscripten port, but targets WebAssembly instead of asm.js, and uses a completely rewritten JavaScript glue layer that implements Chrome's TTS Engine Extension API and outputs audio using an AudioWorklet from the Web Audio API.

Why we include eSpeak-NG in ChromeOS

There are two reasons we include eSpeak-NG in ChromeOS:

  1. To maximize our language coverage for text-to-speech and ensure that ChromeOS is accessible to as many users as possible out of the box.
  2. As a secondary goal, to provide an alternative speech engine for screen reader users that's maximally responsive and works at the highest rates of speed.

Building, deploying, and releasing from source

The source code to the ChromeOS port of eSpeak-NG can be found in google3

The google3 repository automatically syncs its changes to the googlesource repository via copybara. All of the Chrome-specific changes are in the “chrome” branch.

For instructions for building, deploying, and releasing eSpeak-NG see the README in google3

Running on ChromeOS on Desktop Linux

See Chromevox on Desktop Linux for more how to use eSpeak's speech engine on ChromeOS emulated on desktop Linux.