Akihiro Ota | be25619 | 2023-07-28 17:40:17 | [diff] [blame] | 1 | # The eSpeak-NG speech synthesis engine on ChromeOS |
Dominic Mazzoni | fd246a0 | 2018-10-26 18:33:12 | [diff] [blame] | 2 | |
Akihiro Ota | be25619 | 2023-07-28 17:40:17 | [diff] [blame] | 3 | ChromeOS comes with a port of the open-source eSpeak-NG speech synthesis |
Dominic Mazzoni | fd246a0 | 2018-10-26 18:33:12 | [diff] [blame] | 4 | engine. eSpeak-NG is lower quality than Google's "PATTS" speech engine, |
Quinten Yearsley | 317532d | 2021-10-20 17:10:31 | [diff] [blame] | 5 | but it's faster, uses less resources, and supports more languages. |
Dominic Mazzoni | fd246a0 | 2018-10-26 18:33:12 | [diff] [blame] | 6 | |
David Tseng | 7f8ddfb | 2021-11-01 19:32:59 | [diff] [blame] | 7 | [Read more about Text-to-Speech in Chrome](../browser/tts.md). |
Dominic Mazzoni | fd246a0 | 2018-10-26 18:33:12 | [diff] [blame] | 8 | |
| 9 | [See also Google's "PATTS" speech engine](patts.md). |
| 10 | |
| 11 | ## About eSpeak-NG |
| 12 | |
| 13 | eSpeak-NG is an open-source project, released under the |
| 14 | [GPL v3](https://www.gnu.org/licenses/gpl-3.0.en.html) license. |
| 15 | The current home of the project is on GitHub: |
| 16 | |
| 17 | https://github.com/espeak-ng |
| 18 | |
| 19 | NG stands for Next Generation. It's a fork of the eSpeak engine created by |
| 20 | Jonathan Duddington. |
| 21 | |
| 22 | Eitan Isaacson of Mozilla wrote the initial port of eSpeak to JavaScript |
| 23 | using emscripten in April 2015. Alberto Pettarin adapted that to work |
| 24 | with eSpeak-NG in October 2016. |
| 25 | |
Akihiro Ota | be25619 | 2023-07-28 17:40:17 | [diff] [blame] | 26 | The ChromeOS port is heavily based on the emscripten port, but targets |
Dominic Mazzoni | fd246a0 | 2018-10-26 18:33:12 | [diff] [blame] | 27 | WebAssembly instead of asm.js, and uses a completely rewritten JavaScript |
Dominic Mazzoni | bd411c2 | 2018-10-26 19:26:56 | [diff] [blame] | 28 | glue layer that implements Chrome's |
Dominic Mazzoni | fd246a0 | 2018-10-26 18:33:12 | [diff] [blame] | 29 | [TTS Engine Extension API](https://developer.chrome.com/extensions/ttsEngine) |
| 30 | and outputs audio using an AudioWorklet from the Web Audio API. |
| 31 | |
Akihiro Ota | be25619 | 2023-07-28 17:40:17 | [diff] [blame] | 32 | ## Why we include eSpeak-NG in ChromeOS |
Dominic Mazzoni | fd246a0 | 2018-10-26 18:33:12 | [diff] [blame] | 33 | |
Akihiro Ota | be25619 | 2023-07-28 17:40:17 | [diff] [blame] | 34 | There are two reasons we include eSpeak-NG in ChromeOS: |
Dominic Mazzoni | fd246a0 | 2018-10-26 18:33:12 | [diff] [blame] | 35 | |
| 36 | 1. To maximize our language coverage for text-to-speech and ensure |
Akihiro Ota | be25619 | 2023-07-28 17:40:17 | [diff] [blame] | 37 | that ChromeOS is accessible to as many users as possible out of the box. |
Dominic Mazzoni | fd246a0 | 2018-10-26 18:33:12 | [diff] [blame] | 38 | 2. 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 Ota | be25619 | 2023-07-28 17:40:17 | [diff] [blame] | 42 | ## Building, deploying, and releasing from source |
Dominic Mazzoni | fd246a0 | 2018-10-26 18:33:12 | [diff] [blame] | 43 | |
Akihiro Ota | be25619 | 2023-07-28 17:40:17 | [diff] [blame] | 44 | The source code to the ChromeOS port of eSpeak-NG can be found in |
| 45 | [google3](http://cs/google3/third_party/espeak_ng/) |
Dominic Mazzoni | fd246a0 | 2018-10-26 18:33:12 | [diff] [blame] | 46 | |
Akihiro Ota | be25619 | 2023-07-28 17:40:17 | [diff] [blame] | 47 | The google3 repository automatically syncs its changes to the [googlesource |
| 48 | repository](https://chromium.googlesource.com/chromiumos/third_party/espeak-ng) |
| 49 | via copybara. All of the Chrome-specific changes are in the "chrome" branch. |
Dominic Mazzoni | fd246a0 | 2018-10-26 18:33:12 | [diff] [blame] | 50 | |
Akihiro Ota | be25619 | 2023-07-28 17:40:17 | [diff] [blame] | 51 | For instructions for building, deploying, and releasing eSpeak-NG see the |
| 52 | [README in google3](http://cs/google3/third_party/espeak_ng/README.chrome) |
Anastasia Helfinstein | 860ac19 | 2022-01-18 20:51:58 | [diff] [blame] | 53 | |
Akihiro Ota | be25619 | 2023-07-28 17:40:17 | [diff] [blame] | 54 | ## Running on ChromeOS on Desktop Linux |
Katie D | c9912db | 2018-12-20 01:24:49 | [diff] [blame] | 55 | |
| 56 | See [Chromevox on Desktop Linux](chromevox_on_desktop_linux.md#speech) for more |
Akihiro Ota | be25619 | 2023-07-28 17:40:17 | [diff] [blame] | 57 | how to use eSpeak's speech engine on ChromeOS emulated on desktop Linux. |