New issue
Advanced search Search tips

Issue 862710 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Dec 17
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug
Team-Accessibility

Blocked on:
issue 862713

Blocking:
issue 911286



Sign in to add a comment

Chrome OS only supports ~10 text-to-speech languages out of the box

Project Member Reported by dmazz...@chromium.org, Jul 11

Issue description

Chrome OS only includes 10 text-to-speech languages from Google's speech engine in the OOBE. While there are additional first-party and third-party voices that can be downloaded later, we don't have any way for a blind user who speaks Swedish, for example, to use their Chromebook out of the box.

The solution here is to include Espeak (or Espeak NG), a small, lightweight, low-quality speech engine that supports over a hundred human languages. It's only around ~5 MB. It makes sense to include that and maybe even take away some of the less commonly used Google speech engine voices by default.


 
Blockedon: 862713
Labels: M-70
Project Member

Comment 4 by bugdroid1@chromium.org, Aug 17

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/a694a44a737d966b3f721b710860ed623ef30017

commit a694a44a737d966b3f721b710860ed623ef30017
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Fri Aug 17 04:25:15 2018

Add eSpeak-NG ebuild.

BUG= chromium:862710 
TEST=Manually verified files install in correct location; won't work until Chrome change lands after this one.

Change-Id: I5be3b04ed3a0efd6f06a7d3a9f422149da72cb22
Reviewed-on: https://chromium-review.googlesource.com/1158797
Commit-Ready: Dominic Mazzoni <dmazzoni@chromium.org>
Tested-by: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[add] https://crrev.com/a694a44a737d966b3f721b710860ed623ef30017/app-accessibility/espeak-ng/Manifest
[add] https://crrev.com/a694a44a737d966b3f721b710860ed623ef30017/app-accessibility/espeak-ng/espeak-ng-1.49.3.1.ebuild

will this happen in chromeos 70 dev? no espeak in canary canary is now on 71
Project Member

Comment 6 by bugdroid1@chromium.org, Sep 14

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c996527a66944e7e4498c3c112e62e407e2e5e99

commit c996527a66944e7e4498c3c112e62e407e2e5e99
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Fri Sep 14 03:13:59 2018

Refactor TTS engine extension API code

First, splits TtsExtensionEngine out of tts_engine_extension_api
and renames it TtsEngineDelegateImpl, since it implements the
TtsEngineDelegate interface. Basically there were two separate
things in one source file, so I split it into two.

Then, this change makes TtsEngineDelegateImpl into a BrowserContext-keyed
service with a factory, so that we can have one instance per
BrowserContext. This will be handy for future changes because
I'd like to cache the vector of VoiceData per-BrowserContext.

For now, this is just a pure refactoring. There should be no
functional changes.

Bug:  862710 

Change-Id: I34d92b244a1c5c684c2505ac0076a2f818e85b1a
Reviewed-on: https://chromium-review.googlesource.com/1220687
Reviewed-by: David Tseng <dtseng@chromium.org>
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591278}
[modify] https://crrev.com/c996527a66944e7e4498c3c112e62e407e2e5e99/chrome/browser/BUILD.gn
[modify] https://crrev.com/c996527a66944e7e4498c3c112e62e407e2e5e99/chrome/browser/chrome_content_browser_client.cc
[add] https://crrev.com/c996527a66944e7e4498c3c112e62e407e2e5e99/chrome/browser/speech/extension_api/tts_engine_delegate_factory_impl.cc
[add] https://crrev.com/c996527a66944e7e4498c3c112e62e407e2e5e99/chrome/browser/speech/extension_api/tts_engine_delegate_factory_impl.h
[add] https://crrev.com/c996527a66944e7e4498c3c112e62e407e2e5e99/chrome/browser/speech/extension_api/tts_engine_delegate_impl.cc
[add] https://crrev.com/c996527a66944e7e4498c3c112e62e407e2e5e99/chrome/browser/speech/extension_api/tts_engine_delegate_impl.h
[modify] https://crrev.com/c996527a66944e7e4498c3c112e62e407e2e5e99/chrome/browser/speech/extension_api/tts_engine_extension_api.cc
[modify] https://crrev.com/c996527a66944e7e4498c3c112e62e407e2e5e99/chrome/browser/speech/extension_api/tts_engine_extension_api.h
[modify] https://crrev.com/c996527a66944e7e4498c3c112e62e407e2e5e99/chrome/browser/speech/extension_api/tts_engine_extension_observer.cc
[modify] https://crrev.com/c996527a66944e7e4498c3c112e62e407e2e5e99/chrome/browser/speech/extension_api/tts_engine_extension_observer.h
[modify] https://crrev.com/c996527a66944e7e4498c3c112e62e407e2e5e99/chrome/browser/speech/tts_chromeos.cc
[modify] https://crrev.com/c996527a66944e7e4498c3c112e62e407e2e5e99/chrome/browser/speech/tts_controller.h
[modify] https://crrev.com/c996527a66944e7e4498c3c112e62e407e2e5e99/chrome/browser/speech/tts_controller_impl.cc
[modify] https://crrev.com/c996527a66944e7e4498c3c112e62e407e2e5e99/chrome/browser/speech/tts_controller_impl.h
[add] https://crrev.com/c996527a66944e7e4498c3c112e62e407e2e5e99/chrome/browser/speech/tts_engine_delegate.cc
[add] https://crrev.com/c996527a66944e7e4498c3c112e62e407e2e5e99/chrome/browser/speech/tts_engine_delegate.h
[modify] https://crrev.com/c996527a66944e7e4498c3c112e62e407e2e5e99/chrome/browser/ui/webui/settings/tts_handler.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Sep 14

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/52218b819bafa8c4247a2d333e296d1c8db5b503

commit 52218b819bafa8c4247a2d333e296d1c8db5b503
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Sep 14 13:45:21 2018

Remove unused object field that broke some builds

It's not allowed to have unused object fields but the compiler
can't always know if a field is unused. In jumbo builds it will
know more so sometimes those detect cases that normal compilation
won't see. In this case a field only used in ChromeOS builds.

In file included from gen/chrome/browser/browser_jumbo_1.cc:80:
In file included from ./../../chrome/browser/chrome_content_browser_client.cc:428:
In file included from ../../chrome/browser/speech/extension_api/tts_engine_delegate_factory_impl.h:10:
../../chrome/browser/speech/extension_api/tts_engine_delegate_impl.h:35:28: error: private field 'browser_context_' is not used [-Werror,-Wunused-private-field]

  content::BrowserContext* browser_context_;
                           ^

TBR=dmazzoni@chromium.org

Bug:  862710 
Change-Id: I4eca7b940ad49fb44ec61ec513ba54db55f4914c
Reviewed-on: https://chromium-review.googlesource.com/1225759
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Daniel Bratell <bratell@opera.com>
Reviewed-by: Jinho Bang <jinho.bang@samsung.com>
Cr-Commit-Position: refs/heads/master@{#591337}
[modify] https://crrev.com/52218b819bafa8c4247a2d333e296d1c8db5b503/chrome/browser/speech/extension_api/tts_engine_delegate_impl.cc
[modify] https://crrev.com/52218b819bafa8c4247a2d333e296d1c8db5b503/chrome/browser/speech/extension_api/tts_engine_delegate_impl.h

Project Member

Comment 8 by bugdroid1@chromium.org, Oct 17

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/e7f02dfb37f73d8e8b5b810bab3f84ef9cca34d9

commit e7f02dfb37f73d8e8b5b810bab3f84ef9cca34d9
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Wed Oct 17 01:45:50 2018

Update eSpeak-NG to 1.49.3.2

No changes to underlying eSpeak library, only the Chrome extension wrapper.
Switches from ScriptProcessorNode to AudioWorkletNode for better performance,
and fixes initialization of the default language.

BUG= chromium:862710 
TEST=Manually loaded new extension and ran TTS Debug app

Change-Id: I83e30282f99462dca194d4e5beffbdc29cccba58
Reviewed-on: https://chromium-review.googlesource.com/1283630
Commit-Ready: Dominic Mazzoni <dmazzoni@chromium.org>
Tested-by: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[rename] https://crrev.com/e7f02dfb37f73d8e8b5b810bab3f84ef9cca34d9/app-accessibility/espeak-ng/espeak-ng-1.49.3.2.ebuild
[modify] https://crrev.com/e7f02dfb37f73d8e8b5b810bab3f84ef9cca34d9/app-accessibility/espeak-ng/Manifest

Project Member

Comment 9 by bugdroid1@chromium.org, Oct 23

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5e903374c8b55366cca498cfe902a0432739ed06

commit 5e903374c8b55366cca498cfe902a0432739ed06
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Tue Oct 23 04:57:25 2018

Add Espeak component extension support behind a flag

See bug for more context; the Espeak extension provides
a lower-quality speech engine that supports many more
languages, enabling us to support virtually all world
languages out-of-the-box on Chrome OS without requiring
a separate download.

This new engine must be in a separate component
extension due to having a different license.

This patch puts the extension load behind a flag,
--enable-experimental-accessibility-features, because
it needs some more polish before we launch it to
all users.

Bug:  862710 
TBR=michaelpg@chromium.org

Change-Id: Ia4d010fa5ff217928a3a66d17543bd4990d24c10
Reviewed-on: https://chromium-review.googlesource.com/c/1247038
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601852}
[modify] https://crrev.com/5e903374c8b55366cca498cfe902a0432739ed06/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc
[modify] https://crrev.com/5e903374c8b55366cca498cfe902a0432739ed06/chrome/browser/extensions/component_loader.cc
[modify] https://crrev.com/5e903374c8b55366cca498cfe902a0432739ed06/chrome/browser/extensions/component_loader.h
[modify] https://crrev.com/5e903374c8b55366cca498cfe902a0432739ed06/chrome/browser/speech/extension_api/tts_engine_extension_api.cc
[modify] https://crrev.com/5e903374c8b55366cca498cfe902a0432739ed06/chrome/browser/ui/webui/settings/tts_handler.cc
[modify] https://crrev.com/5e903374c8b55366cca498cfe902a0432739ed06/chrome/common/extensions/extension_constants.cc
[modify] https://crrev.com/5e903374c8b55366cca498cfe902a0432739ed06/chrome/common/extensions/extension_constants.h

in wich canary will the flag come?

På 23 oktober 2018 6:58:44 fm bugdro… via monorail 
<monorail+v2.3275348242@chromium.org> skrev:
Project Member

Comment 11 by bugdroid1@chromium.org, Oct 24

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/4209e7e1caff4e853aee736c02507cb4ff3dc6ee

commit 4209e7e1caff4e853aee736c02507cb4ff3dc6ee
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Wed Oct 24 20:03:18 2018

Add dependency on espeak

BUG= chromium:862710 
TEST=Manual

Change-Id: I26f0abcc030d8e300bdb6e1f184522647a5b0387
Reviewed-on: https://chromium-review.googlesource.com/1297053
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/4209e7e1caff4e853aee736c02507cb4ff3dc6ee/chromeos-base/chromeos-chrome/chromeos-chrome-9999.ebuild

Project Member

Comment 12 by bugdroid1@chromium.org, Oct 26

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fd246a0897b1cc82ad5cfa9a85242ffcc7542fbb

commit fd246a0897b1cc82ad5cfa9a85242ffcc7542fbb
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Fri Oct 26 18:33:12 2018

Add documentation on updating eSpeak-NG for Chrome OS.

Also, address documentation feedback from a previous change:
http://crrev.com/c/1195658

Bug:  862710 
TBR=katie@chromium.org
NOTRY=true

Change-Id: I19f8456ab13719973f5c83c4b849574b92fc2ac4
Reviewed-on: https://chromium-review.googlesource.com/c/1302573
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603152}
[modify] https://crrev.com/fd246a0897b1cc82ad5cfa9a85242ffcc7542fbb/docs/accessibility.md
[add] https://crrev.com/fd246a0897b1cc82ad5cfa9a85242ffcc7542fbb/docs/accessibility/espeak.md
[modify] https://crrev.com/fd246a0897b1cc82ad5cfa9a85242ffcc7542fbb/docs/accessibility/patts.md
[modify] https://crrev.com/fd246a0897b1cc82ad5cfa9a85242ffcc7542fbb/docs/accessibility/perf.md

Project Member

Comment 13 by bugdroid1@chromium.org, Oct 26

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bd411c249def413d9558a22cb8cec144b4479b93

commit bd411c249def413d9558a22cb8cec144b4479b93
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Fri Oct 26 19:26:56 2018

Address feedback in eSpeak-NG documentation.

TBR=katie@chromium.org
NOTRY=true

Bug:  862710 
Change-Id: I6d49841747cdd900570f97e128b647dc15060d04
Reviewed-on: https://chromium-review.googlesource.com/c/1302674
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603166}
[modify] https://crrev.com/bd411c249def413d9558a22cb8cec144b4479b93/docs/accessibility/espeak.md

Blocking: 911286
Project Member

Comment 15 by bugdroid1@chromium.org, Dec 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/45b6eae187851aebfe310806029857e15d68a47c

commit 45b6eae187851aebfe310806029857e15d68a47c
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Mon Dec 03 23:54:03 2018

Remove flag from espeak

Bug:  862710 
Change-Id: I84432cae10fb11134023dd68da86995855fa809f
Reviewed-on: https://chromium-review.googlesource.com/c/1351088
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#613331}
[modify] https://crrev.com/45b6eae187851aebfe310806029857e15d68a47c/chrome/browser/extensions/component_loader.cc

Project Member

Comment 16 by bugdroid1@chromium.org, Dec 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/ce4397f019f70e0abb357e21a7b3e45c48da7fad

commit ce4397f019f70e0abb357e21a7b3e45c48da7fad
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Tue Dec 04 04:32:01 2018

Update espeak-ng engine to reduce set of langs enabled.

Update to this revision, which reduces the set of languages enabled by
default to just ones that are also supported by Chrome OS UI and aren't
already covered by Google's TTS engine.

https://chromium.googlesource.com/chromiumos/third_party/espeak-ng/+/283e31834

BUG= chromium:862710 
TEST=manual

Change-Id: Ie4d89db161383e59b00379847cac976c4dd7be00
Reviewed-on: https://chromium-review.googlesource.com/1351842
Commit-Ready: Dominic Mazzoni <dmazzoni@chromium.org>
Tested-by: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/ce4397f019f70e0abb357e21a7b3e45c48da7fad/app-accessibility/espeak-ng/Manifest
[rename] https://crrev.com/ce4397f019f70e0abb357e21a7b3e45c48da7fad/app-accessibility/espeak-ng/espeak-ng-1.49.3.3.ebuild

so swedish will be removed?


På 4 december 2018 5:37:01 fm bugdro… via monorail 
<monorail+v2.3275348242@chromium.org> skrev:
Status: Fixed (was: Started)
Swedish is unaffected. eSpeak supports Swedish and it will be enabled by default.

Marking bug as fixed because it's feature-complete, we're just waiting on the launch bug now: crbug.com/911286



Sign in to add a comment