blob: cd72b34c2b4c35c65b6b72def972974a77aad5ea [file] [log] [blame] [view]
Akihiro Otabe256192023-07-28 17:40:171# The eSpeak-NG speech synthesis engine on ChromeOS
Dominic Mazzonifd246a02018-10-26 18:33:122
Akihiro Otabe256192023-07-28 17:40:173ChromeOS comes with a port of the open-source eSpeak-NG speech synthesis
Dominic Mazzonifd246a02018-10-26 18:33:124engine. eSpeak-NG is lower quality than Google's "PATTS" speech engine,
Quinten Yearsley317532d2021-10-20 17:10:315but it's faster, uses less resources, and supports more languages.
Dominic Mazzonifd246a02018-10-26 18:33:126
David Tseng7f8ddfb2021-11-01 19:32:597[Read more about Text-to-Speech in Chrome](../browser/tts.md).
Dominic Mazzonifd246a02018-10-26 18:33:128
9[See also Google's "PATTS" speech engine](patts.md).
10
11## About eSpeak-NG
12
13eSpeak-NG is an open-source project, released under the
14[GPL v3](https://www.gnu.org/licenses/gpl-3.0.en.html) license.
15The current home of the project is on GitHub:
16
17 https://github.com/espeak-ng
18
19NG stands for Next Generation. It's a fork of the eSpeak engine created by
20Jonathan Duddington.
21
22Eitan Isaacson of Mozilla wrote the initial port of eSpeak to JavaScript
23using emscripten in April 2015. Alberto Pettarin adapted that to work
24with eSpeak-NG in October 2016.
25
Akihiro Otabe256192023-07-28 17:40:1726The ChromeOS port is heavily based on the emscripten port, but targets
Dominic Mazzonifd246a02018-10-26 18:33:1227WebAssembly instead of asm.js, and uses a completely rewritten JavaScript
Dominic Mazzonibd411c22018-10-26 19:26:5628glue layer that implements Chrome's
Dominic Mazzonifd246a02018-10-26 18:33:1229[TTS Engine Extension API](https://developer.chrome.com/extensions/ttsEngine)
30and outputs audio using an AudioWorklet from the Web Audio API.
31
Akihiro Otabe256192023-07-28 17:40:1732## Why we include eSpeak-NG in ChromeOS
Dominic Mazzonifd246a02018-10-26 18:33:1233
Akihiro Otabe256192023-07-28 17:40:1734There are two reasons we include eSpeak-NG in ChromeOS:
Dominic Mazzonifd246a02018-10-26 18:33:1235
361. To maximize our language coverage for text-to-speech and ensure
Akihiro Otabe256192023-07-28 17:40:1737 that ChromeOS is accessible to as many users as possible out of the box.
Dominic Mazzonifd246a02018-10-26 18:33:12382. As a secondary goal, to provide an alternative speech engine for screen
39 reader users that's maximally responsive and works at the highest rates of
40 speed.
41
Akihiro Otabe256192023-07-28 17:40:1742## Building, deploying, and releasing from source
Dominic Mazzonifd246a02018-10-26 18:33:1243
Akihiro Otabe256192023-07-28 17:40:1744The source code to the ChromeOS port of eSpeak-NG can be found in
45[google3](http://cs/google3/third_party/espeak_ng/)
Dominic Mazzonifd246a02018-10-26 18:33:1246
Akihiro Otabe256192023-07-28 17:40:1747The google3 repository automatically syncs its changes to the [googlesource
48repository](https://chromium.googlesource.com/chromiumos/third_party/espeak-ng)
49via copybara. All of the Chrome-specific changes are in the "chrome" branch.
Dominic Mazzonifd246a02018-10-26 18:33:1250
Akihiro Otabe256192023-07-28 17:40:1751For instructions for building, deploying, and releasing eSpeak-NG see the
52[README in google3](http://cs/google3/third_party/espeak_ng/README.chrome)
Anastasia Helfinstein860ac192022-01-18 20:51:5853
Akihiro Otabe256192023-07-28 17:40:1754## Running on ChromeOS on Desktop Linux
Katie Dc9912db2018-12-20 01:24:4955
56See [Chromevox on Desktop Linux](chromevox_on_desktop_linux.md#speech) for more
Akihiro Otabe256192023-07-28 17:40:1757how to use eSpeak's speech engine on ChromeOS emulated on desktop Linux.