New issue
Advanced search Search tips

Issue 863998 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 5
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Feature
Launch-Privacy: NA
Launch-Security: Yes
Launch-UI: NA

Blocking:
issue 855203



Sign in to add a comment

Extension API Modification: remove VoiceGender from tts API

Project Member Reported by katie@chromium.org, Jul 16

Issue description

Extension API Modification Proposal

API Namespace: chrome.tts
API Owners: dmazzoni@chromium.org, dtseng@chromium.org
The following documents may not be necessary depending on the scope of your proposal:
API Overview Doc: N/A
Design Doc: go/voicegender-deprecation
Supplementary Resources: go/inclusive-chromeos-tts

 
Blocking: 855203
Owner: katie@chromium.org
Status: Assigned (was: Untriaged)
Labels: -Launch-Security-NotReviewed Launch-Security-Yes
No security impact, approving.
Labels: -Launch-API-NotReviewed Launch-API-Yes
LGTM % the backwards compatibility concern raised in 863999.
Labels: -Launch-UI-NotReviewed Launch-UI-NA
Cc: lpalmaro@chromium.org
Labels: M-71
Status: Started (was: Assigned)
I will land a warning in M70 and fully deprecate in M71, since feature freeze is very soon for M70.
Project Member

Comment 9 by bugdroid1@chromium.org, Aug 18

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

commit 77c48b1fefae15d5863455f1494f4aacc418eb2d
Author: Katie D <katie@chromium.org>
Date: Sat Aug 18 01:50:51 2018

Warns users that VoiceGender is deprecated and will be ignored in Chrome 71.

Warnings occur when loading the manifest or using a chrome.tts or
chrome.ttsEngine Javascript API with VocieGender.

Does not actually deprecate gender, but makes sure it is optional.

BUG= 863999 , 863998 

Change-Id: If850e4374cb871289af0102da18040b49f100ae7
Reviewed-on: https://chromium-review.googlesource.com/1176354
Commit-Queue: Katie Dektar <katie@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584280}
[modify] https://crrev.com/77c48b1fefae15d5863455f1494f4aacc418eb2d/chrome/browser/speech/extension_api/tts_extension_apitest.cc
[modify] https://crrev.com/77c48b1fefae15d5863455f1494f4aacc418eb2d/chrome/common/extensions/api/speech/tts_engine_manifest_handler.cc
[modify] https://crrev.com/77c48b1fefae15d5863455f1494f4aacc418eb2d/chrome/common/extensions/api/speech/tts_engine_manifest_handler.h
[modify] https://crrev.com/77c48b1fefae15d5863455f1494f4aacc418eb2d/chrome/common/extensions/api/tts.json
[modify] https://crrev.com/77c48b1fefae15d5863455f1494f4aacc418eb2d/chrome/common/extensions/api/tts_engine.json
[modify] https://crrev.com/77c48b1fefae15d5863455f1494f4aacc418eb2d/chrome/common/extensions/docs/templates/intros/tts.html
[modify] https://crrev.com/77c48b1fefae15d5863455f1494f4aacc418eb2d/chrome/common/extensions/docs/templates/intros/ttsEngine.html
[modify] https://crrev.com/77c48b1fefae15d5863455f1494f4aacc418eb2d/chrome/renderer/resources/extensions/tts_custom_bindings.js
[modify] https://crrev.com/77c48b1fefae15d5863455f1494f4aacc418eb2d/chrome/renderer/resources/extensions/tts_engine_custom_bindings.js
[modify] https://crrev.com/77c48b1fefae15d5863455f1494f4aacc418eb2d/chrome/test/data/extensions/api_test/tts_engine/update_voices_api/test.js
[modify] https://crrev.com/77c48b1fefae15d5863455f1494f4aacc418eb2d/extensions/common/manifest_constants.cc
[modify] https://crrev.com/77c48b1fefae15d5863455f1494f4aacc418eb2d/extensions/common/manifest_constants.h

Labels: -Launch-Privacy-NotReviewed Launch-Privacy-NA
I don't think this has any privacy implications.

Comment 11 Deleted

Blocking: 855203
A super late comment, fwiw (non-blocking).

At its core is the way gender gets specified. It is optional, so it's really up to the engine to "self identify" a gender. I agree we should be more inclusive so perhaps gender being a binary isn't the right thing (enum values should maybe have more values), but I don't know if I understand the motivation for removing it entirely. The engine author is really the owner of the voice, so why is it wrong to be able to say a voice is male, female, or neither (by omission)?

Thanks David for your comment! 

Re enum:
I investigated adding more values to the enum, see solution idea #2 (https://docs.google.com/document/d/1eS-XDUq-uRfRVP3jvlfAVSjG_hejvjzL0AYzBfGb0UI/edit#heading=h.tnxp6qggv2x8)

However, we landed on removing gender entirely for several reasons, including that gender is a spectrum so even the most well-intentioned enum is not going to capture all values, and more importantly, that gender is not actually such an important descriptor of a voice to be the only descriptor we include (see solution idea #3, https://docs.google.com/document/d/1eS-XDUq-uRfRVP3jvlfAVSjG_hejvjzL0AYzBfGb0UI/edit#heading=h.1m874yo3atie)

By including gender in these APIs, we are saying that gender is an important attribute of a voice -- and right now it's the only attribute we expose (we don't have age, or emotion, etc). This sends a message to developers that Chrome thinks gender is important for end users. But gender is in many ways a social construct (unlike age, for example) and it's not a binary, so saying it is important when picking a voice can be non-inclusive.

Happy to chat more about this in person or on the phone!
Status: Fixed (was: Started)
The code to do this is in M71 now!
Project Member

Comment 15 by bugdroid1@chromium.org, Sep 5

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

commit 3e8c73c30d32ad673497561d27b63ccee88f4b2e
Author: Katie D <katie@chromium.org>
Date: Tue Sep 04 16:59:20 2018

Deprecates Gender from the TTS and TTS Engine APIs.

Keeps the parameters hidden so that no current implementations will
crash.

Updates documentation to match.

BUG= 863999 , 863998 

Change-Id: Iebbdc6b40018909e806702654a23eb18d2087755
Reviewed-on: https://chromium-review.googlesource.com/1176356
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Commit-Queue: Katie Dektar <katie@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588552}
[modify] https://crrev.com/3e8c73c30d32ad673497561d27b63ccee88f4b2e/chrome/browser/speech/extension_api/tts_engine_extension_api.cc
[modify] https://crrev.com/3e8c73c30d32ad673497561d27b63ccee88f4b2e/chrome/browser/speech/extension_api/tts_extension_api.cc
[modify] https://crrev.com/3e8c73c30d32ad673497561d27b63ccee88f4b2e/chrome/browser/speech/extension_api/tts_extension_api_constants.cc
[modify] https://crrev.com/3e8c73c30d32ad673497561d27b63ccee88f4b2e/chrome/browser/speech/extension_api/tts_extension_api_constants.h
[modify] https://crrev.com/3e8c73c30d32ad673497561d27b63ccee88f4b2e/chrome/browser/speech/tts_android.cc
[modify] https://crrev.com/3e8c73c30d32ad673497561d27b63ccee88f4b2e/chrome/browser/speech/tts_controller.h
[modify] https://crrev.com/3e8c73c30d32ad673497561d27b63ccee88f4b2e/chrome/browser/speech/tts_controller_impl.cc
[modify] https://crrev.com/3e8c73c30d32ad673497561d27b63ccee88f4b2e/chrome/browser/speech/tts_controller_unittest.cc
[modify] https://crrev.com/3e8c73c30d32ad673497561d27b63ccee88f4b2e/chrome/browser/speech/tts_mac.mm
[modify] https://crrev.com/3e8c73c30d32ad673497561d27b63ccee88f4b2e/chrome/browser/speech/tts_win.cc
[modify] https://crrev.com/3e8c73c30d32ad673497561d27b63ccee88f4b2e/chrome/common/extensions/api/speech/tts_engine_manifest_handler.cc
[modify] https://crrev.com/3e8c73c30d32ad673497561d27b63ccee88f4b2e/chrome/common/extensions/api/tts.json
[modify] https://crrev.com/3e8c73c30d32ad673497561d27b63ccee88f4b2e/chrome/common/extensions/api/tts_engine.json
[modify] https://crrev.com/3e8c73c30d32ad673497561d27b63ccee88f4b2e/chrome/common/extensions/docs/examples/api/ttsEngine/console_tts_engine/console_tts_engine.html
[modify] https://crrev.com/3e8c73c30d32ad673497561d27b63ccee88f4b2e/chrome/common/extensions/docs/examples/api/ttsEngine/console_tts_engine/console_tts_engine.js
[modify] https://crrev.com/3e8c73c30d32ad673497561d27b63ccee88f4b2e/chrome/test/data/extensions/api_test/tts_engine/register_engine/manifest.json
[modify] https://crrev.com/3e8c73c30d32ad673497561d27b63ccee88f4b2e/chrome/test/data/extensions/api_test/tts_engine/register_engine/test.js
[modify] https://crrev.com/3e8c73c30d32ad673497561d27b63ccee88f4b2e/chrome/test/data/extensions/api_test/tts_engine/update_voices_api/test.js
[delete] https://crrev.com/cad8420a42135039aadcfbe85d2d5976b671927a/chrome/test/data/extensions/manifest_tests/tts_engine_invalid_7.json
[modify] https://crrev.com/3e8c73c30d32ad673497561d27b63ccee88f4b2e/chrome/test/data/extensions/manifest_tests/tts_engine_valid.json
[modify] https://crrev.com/3e8c73c30d32ad673497561d27b63ccee88f4b2e/extensions/common/manifest_constants.cc
[modify] https://crrev.com/3e8c73c30d32ad673497561d27b63ccee88f4b2e/extensions/common/manifest_constants.h
[modify] https://crrev.com/3e8c73c30d32ad673497561d27b63ccee88f4b2e/tools/metrics/histograms/histograms.xml

Sign in to add a comment