Closed Bug 1666703 Opened 2 years ago Closed 4 months ago

SpeechSynthesis.getVoices() returns empty array instead of SpeechSynthesisVoice objects

Categories

(Core :: Web Speech, defect, P3)

80 Branch
ARM
macOS
defect

Tracking

()

RESOLVED FIXED
107 Branch
Tracking Status
firefox84 --- wontfix
firefox107 --- fixed

People

(Reporter: arpit.avj.jaiswal, Assigned: gerard-majax)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Firefox/78.0

Steps to reproduce:

Actual results:

No voices are listed in the select drop-down

Expected results:

SpeechSynthesisVoice objects should have returned by speechSynthesis.getVoices() method and populated the drop-down.

Component: Untriaged → Web Speech
Product: Firefox → Core
Severity: -- → S2
OS: Unspecified → macOS
Priority: -- → P2
Hardware: Unspecified → ARM

I have the similar problem on Firefox nightly 84.0a1 (2020-11-01) (64-bit) on Debian testing.

Same here on Firefox for Linux Mint 85.0 (64-bit). Unable to use speechSynthesis because peechSynthesis.getVoices() returns an empty Array.

Severity: S2 → S1
Priority: P2 → P1

I confirm this issue.

Status: UNCONFIRMED → NEW
Ever confirmed: true
Severity: S1 → S3
Priority: P1 → P3

Can the severity and priority of this bug be reviewed. This makes speechSynthesis completely useless on affected OS (Linux, Mac)

(In reply to christophe from comment #4)

Can the severity and priority of this bug be reviewed. This makes speechSynthesis completely useless on affected OS (Linux, Mac)

Thanks christophe. I've just ni? :eitan who originally developed this feature in order to help us assessing how hard is to have this fixed.

Flags: needinfo?(eitan)

FWIW it works for me on Release (version 87) and 88 on an M1 Mac. It would be helpful to narrow down the conditions where this happens. For people who it's affecting - does it also happen on a clean firefox profile? Are there any relevant OS settings that have been changed?

It didn't work for me on ubuntu 18 on non-arm, but it seems to be due the lack of voices installed in my system.

For the people on Linux, can you check whether speech-dispatcher is installed? If not, you're seeing bug 1432719.

See Also: → 1432719

It works for me on Release Firefox 86.0.1 (64-bit) Mac OS Big Sur (Intel Mac Book Pro)

Following a casual survey of Mozilla-General, the results here are very uneven!

Reports include:

" I can't be bothered to count them, maybe 30?" (this user was on MacOS)

"Zero on Gentoo Linux (probably I just have never installed some dependencies?)" - this user had disabled the speech-dispatcher option on install.

"2 in Win10" reported in a few different FF versions.

"62 in Android 11"

"if I wait longer enough, I would says 1000s (79 for af locale, and I suspect the same for each locale that Fedora bundle as default)" - apparently Fedora with lots of locales installed can have so many the menu takes time to populate?

"I have 0 on Arch"

"12 visible and many more if I scroll down in Nightly 89.0a1 on Fedora 33."

(In reply to Gian-Carlo Pascutto [:gcp] from comment #8)

For the people on Linux, can you check whether speech-dispatcher is installed? If not, you're seeing bug 1432719.

Thanks for this useful hint. My problem resolved after install speech-dispatcher on Debian testing and Firefox nightly.

Flags: needinfo?(eitan)

(In reply to Gian-Carlo Pascutto [:gcp] from comment #8)

For the people on Linux, can you check whether speech-dispatcher is installed? If not, you're seeing bug 1432719.

Thanks a lot - unfortunately that does solve it for me.

I am on Linux Mint 21, FF 94.0 (64-bit) with speech-dispatcher (version 0.9.1-4), and speech-dispatcher-audio-plugins (version 0.9.104) installed.

speechSynthesis.getVoices() still returns an empty Array.

Same problem for me on Manjaro and Arch Linux using KDE Plasma

Clearly reproducing here as well, and speech-dispatcher is indeed installed.

Looks like https://stackoverflow.com/a/72388612 was a good hint, default speech-dispatcher module might have no voice, but others might have some.

$ spd-say -O
OUTPUT MODULES
espeak-ng-mbrola
espeak-ng
$  spd-say -o espeak-ng -L
[very long list]
Assignee: nobody → lissyx+mozillians

That raises two questions:

  1. Why does the default module have no voices?
  2. If spd-say is able to speak without specifying an output module, what module/voice is it using?

Regardless, thanks for the pointer. Hopefully, it might point someone in the right direction.

Assignee: lissyx+mozillians → nobody

Oops.

Assignee: nobody → lissyx+mozillians

So, we have no way to query specific module, the fix for that needs to be done at the system level. An upstream (debian) isssue was filed

There's already a patch https://github.com/brailcom/speechd/commit/43a967b1, 0.11.2 is on its way to be packaged in Debian and Ubuntu to fix this.

Attachment #9294868 - Attachment description: WIP: Bug 1666703 - Assert that we have more than one voice → Bug 1666703 - Assert that we have more than one voice r?eeejay!

The fix made it in Debian now (including bullseye-backports), let's improve a bit the test to maybe catch this in the future (we would not have caught that in the past because the version of speech-dispatcher in 18.04 did not had the bug)

Pushed by alissy@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/6f52943c8524
Assert that we have more than one voice r=eeejay
Status: NEW → RESOLVED
Closed: 4 months ago
Resolution: --- → FIXED
Target Milestone: --- → 107 Branch
You need to log in before you can comment on or make changes to this bug.