RESOLVED FIXED 237584
AX: Speech Synthesis no longer returning list of voices in macOS 12.3
https://bugs.webkit.org/show_bug.cgi?id=237584
Summary AX: Speech Synthesis no longer returning list of voices in macOS 12.3
chris fleizach
Reported 2022-03-07 23:37:27 PST
Speech synthesis no longer returning a list of voices in macOS 12.3
Attachments
patch (3.92 KB, patch)
2022-03-07 23:41 PST, chris fleizach
andresg_22: review+
patch (3.67 KB, patch)
2022-03-08 09:34 PST, chris fleizach
no flags
Radar WebKit Bug Importer
Comment 1 2022-03-07 23:37:38 PST
chris fleizach
Comment 2 2022-03-07 23:41:56 PST
Andres Gonzalez
Comment 3 2022-03-08 06:13:57 PST
(In reply to chris fleizach from comment #2) > Created attachment 454076 [details] > patch --- a/LayoutTests/fast/speechsynthesis/speech-synthesis-voices-non-mock.html +++ a/LayoutTests/fast/speechsynthesis/speech-synthesis-voices-non-mock.html @@ -0,0 +1,38 @@ I'd suggest renaming the test just to voices-non-mock.html, removing speech-synthesis already in the dir name. I find the repetition of the dir name in the file names very inconvenient for both command lines and Finder. +<script src="../../resources/js-test-pre.js"></script> Include js-test.js instead of js-test-pre.js. +<body id="body"> Remove id="body", not used. +<div id="console"></div> No need to include this line, remove. + description("This tests that we can get synthesizer voices "); Extra space after "voices". + for (var k = 0; k < list.length; k++ ) { Extra space after k++. Also, let k is better than var k in this case. + if (voice.lang == "en-US") { + foundEnglishVoice = true; + } + if (voice.default) { + foundDefaultVoice = true; + } I don't think we use { } for a one line block. +<script src="../../resources/js-test-post.js"></script> No need to include this line, remove.
chris fleizach
Comment 4 2022-03-08 09:34:01 PST
EWS
Comment 5 2022-03-08 13:40:56 PST
Committed r291009 (248185@main): <https://commits.webkit.org/248185@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 454133 [details].
Alexey Proskuryakov
Comment 6 2022-03-23 09:57:16 PDT
*** Bug 238249 has been marked as a duplicate of this bug. ***
Brent Fulgham
Comment 7 2022-05-26 15:08:12 PDT
This fix shipped with Safari 15.5 (all platforms).
Marius Landwehr
Comment 8 2022-07-19 23:00:17 PDT
The bug seems fixed but we are still mising a major amount of Text-To-Speech features in Safari on our Webpage and as well on our Application that is depending on the WebView. Is there something we can do to enable the old TTS again or even to fix this on the JS-Side?
chris fleizach
Comment 9 2022-07-20 10:41:01 PDT
(In reply to Marius Landwehr from comment #8) > The bug seems fixed but we are still mising a major amount of Text-To-Speech > features in Safari on our Webpage and as well on our Application that is > depending on the WebView. Is there something we can do to enable the old TTS > again or even to fix this on the JS-Side? What are these features that are missing?
Marius Landwehr
Comment 10 2022-07-22 02:29:15 PDT
Will speak with our QA Team which languages are currently missing. Will come back to you ASAP!
Saraphina Böttcher
Comment 11 2022-09-15 03:39:56 PDT
I can say for sure that german language has been missing since Safari 15.5.
Tyler Wilcock
Comment 12 2022-09-15 14:26:54 PDT
(In reply to Saraphina Böttcher from comment #11) > I can say for sure that german language has been missing since Safari 15.5. Few questions for you: 1. What version of macOS are you running (assuming you're referring to Safari 15.5 on the Mac)? 2. In the Web Inspector console, what is the result of `window.navigator.language`? 3. Also from the Web Inspector console, could you please copy-paste the results of `window.speechSynthesis.getVoices()`? I have a machine running macOS 12.6 + Safari 16, and the result of (3) includes 48 voices, one of which is Anna: SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.anna", name: "Anna", lang: "de-DE", localService: true, default: true} I also tried macOS 12.6 + Safari 15.6.1 and got the same results (48 voices including Anna). Thanks!
Saraphina Böttcher
Comment 13 2022-09-15 23:20:11 PDT
Thank you very much for the speedy reply. 1. I just recently updated to macOS 12.6 with Safari 16.0 and a few days ago macOS 12.5.1 with Safari 15.6.1 and both didn't contain german 2. `window.navigator.language` yields "en-GB" 3. `window.speechSynthesis.getVoices()` returns 44 languages for me, not including Anna see here: 0 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.Alex", name: "Alex", lang: "en-US", localService: true, default: true} 1 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.alice", name: "Alice", lang: "it-IT", localService: true, default: true} 2 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.alva", name: "Alva", lang: "sv-SE", localService: true, default: true} 3 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.carmit", name: "Carmit", lang: "he-IL", localService: true, default: true} 4 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.damayanti", name: "Damayanti", lang: "id-ID", localService: true, default: true} 5 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.ellen", name: "Ellen", lang: "nl-BE", localService: true, default: true} 6 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.fiona", name: "Fiona", lang: "en-SCOTLAND", localService: true, default: true} 7 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.Fred", name: "Fred", lang: "en-US", localService: true, default: true} 8 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.ioana", name: "Ioana", lang: "ro-RO", localService: true, default: true} 9 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.joana", name: "Joana", lang: "pt-PT", localService: true, default: true} 10 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.jorge", name: "Jorge", lang: "es-ES", localService: true, default: true} 11 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.juan", name: "Juan", lang: "es-MX", localService: true, default: true} 12 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.kanya", name: "Kanya", lang: "th-TH", localService: true, default: true} 13 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.karen", name: "Karen", lang: "en-AU", localService: true, default: true} 14 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.kyoko", name: "Kyoko", lang: "ja-JP", localService: true, default: true} 15 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.laura", name: "Laura", lang: "sk-SK", localService: true, default: true} 16 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.lekha", name: "Lekha", lang: "hi-IN", localService: true, default: true} 17 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.luca", name: "Luca", lang: "it-IT", localService: true, default: true} 18 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.luciana", name: "Luciana", lang: "pt-BR", localService: true, default: true} 19 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.maged", name: "Maged", lang: "ar-SA", localService: true, default: true} 20 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.mariska", name: "Mariska", lang: "hu-HU", localService: true, default: true} 21 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.meijia", name: "Mei-Jia", lang: "zh-TW", localService: true, default: true} 22 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.melina", name: "Melina", lang: "el-GR", localService: true, default: true} 23 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.milena", name: "Milena", lang: "ru-RU", localService: true, default: true} 24 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.moira", name: "Moira", lang: "en-IE", localService: true, default: true} 25 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.monica", name: "Monica", lang: "es-ES", localService: true, default: true} 26 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.nora", name: "Nora", lang: "nb-NO", localService: true, default: true} 27 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.paulina", name: "Paulina", lang: "es-MX", localService: true, default: true} 28 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.rishi", name: "Rishi", lang: "en-IN", localService: true, default: true} 29 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.samantha", name: "Samantha", lang: "en-US", localService: true, default: true} 30 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.sara", name: "Sara", lang: "da-DK", localService: true, default: true} 31 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.satu", name: "Satu", lang: "fi-FI", localService: true, default: true} 32 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.sinji", name: "Sin-ji", lang: "zh-HK", localService: true, default: true} 33 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.tessa", name: "Tessa", lang: "en-ZA", localService: true, default: true} 34 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.thomas", name: "Thomas", lang: "fr-FR", localService: true, default: true} 35 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.tingting", name: "Ting-Ting", lang: "zh-CN", localService: true, default: true} 36 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.veena", name: "Veena", lang: "en-IN", localService: true, default: true} 37 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.Victoria", name: "Victoria", lang: "en-US", localService: true, default: true} 38 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.xander", name: "Xander", lang: "nl-NL", localService: true, default: true} 39 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.yelda", name: "Yelda", lang: "tr-TR", localService: true, default: true} 40 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.yuna", name: "Yuna", lang: "ko-KR", localService: true, default: true} 41 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.yuri", name: "Yuri", lang: "ru-RU", localService: true, default: true} 42 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.zosia", name: "Zosia", lang: "pl-PL", localService: true, default: true} 43 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.zuzana", name: "Zuzana", lang: "cs-CZ", localService: true, default: true} Several colleagues who are also missing german and we have a lot of customers who also complain that german is missing, so if there is anything more i can provide you with, feel free to get in touch
chris fleizach
Comment 14 2022-09-15 23:24:29 PDT
(In reply to Saraphina Böttcher from comment #13) > Thank you very much for the speedy reply. > > 1. I just recently updated to macOS 12.6 with Safari 16.0 and a few days ago > macOS 12.5.1 with Safari 15.6.1 and both didn't contain german > > 2. `window.navigator.language` yields "en-GB" > > 3. `window.speechSynthesis.getVoices()` returns 44 languages for me, not > including Anna see here: > 0 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.Alex", > name: "Alex", lang: "en-US", localService: true, default: true} > 1 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.alice", > name: "Alice", lang: "it-IT", localService: true, default: true} > 2 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.alva", > name: "Alva", lang: "sv-SE", localService: true, default: true} > 3 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.carmit", > name: "Carmit", lang: "he-IL", localService: true, default: true} > 4 SpeechSynthesisVoice {voiceURI: > "com.apple.speech.synthesis.voice.damayanti", name: "Damayanti", lang: > "id-ID", localService: true, default: true} > 5 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.ellen", > name: "Ellen", lang: "nl-BE", localService: true, default: true} > 6 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.fiona", > name: "Fiona", lang: "en-SCOTLAND", localService: true, default: true} > 7 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.Fred", > name: "Fred", lang: "en-US", localService: true, default: true} > 8 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.ioana", > name: "Ioana", lang: "ro-RO", localService: true, default: true} > 9 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.joana", > name: "Joana", lang: "pt-PT", localService: true, default: true} > 10 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.jorge", > name: "Jorge", lang: "es-ES", localService: true, default: true} > 11 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.juan", > name: "Juan", lang: "es-MX", localService: true, default: true} > 12 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.kanya", > name: "Kanya", lang: "th-TH", localService: true, default: true} > 13 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.karen", > name: "Karen", lang: "en-AU", localService: true, default: true} > 14 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.kyoko", > name: "Kyoko", lang: "ja-JP", localService: true, default: true} > 15 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.laura", > name: "Laura", lang: "sk-SK", localService: true, default: true} > 16 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.lekha", > name: "Lekha", lang: "hi-IN", localService: true, default: true} > 17 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.luca", > name: "Luca", lang: "it-IT", localService: true, default: true} > 18 SpeechSynthesisVoice {voiceURI: > "com.apple.speech.synthesis.voice.luciana", name: "Luciana", lang: "pt-BR", > localService: true, default: true} > 19 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.maged", > name: "Maged", lang: "ar-SA", localService: true, default: true} > 20 SpeechSynthesisVoice {voiceURI: > "com.apple.speech.synthesis.voice.mariska", name: "Mariska", lang: "hu-HU", > localService: true, default: true} > 21 SpeechSynthesisVoice {voiceURI: > "com.apple.speech.synthesis.voice.meijia", name: "Mei-Jia", lang: "zh-TW", > localService: true, default: true} > 22 SpeechSynthesisVoice {voiceURI: > "com.apple.speech.synthesis.voice.melina", name: "Melina", lang: "el-GR", > localService: true, default: true} > 23 SpeechSynthesisVoice {voiceURI: > "com.apple.speech.synthesis.voice.milena", name: "Milena", lang: "ru-RU", > localService: true, default: true} > 24 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.moira", > name: "Moira", lang: "en-IE", localService: true, default: true} > 25 SpeechSynthesisVoice {voiceURI: > "com.apple.speech.synthesis.voice.monica", name: "Monica", lang: "es-ES", > localService: true, default: true} > 26 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.nora", > name: "Nora", lang: "nb-NO", localService: true, default: true} > 27 SpeechSynthesisVoice {voiceURI: > "com.apple.speech.synthesis.voice.paulina", name: "Paulina", lang: "es-MX", > localService: true, default: true} > 28 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.rishi", > name: "Rishi", lang: "en-IN", localService: true, default: true} > 29 SpeechSynthesisVoice {voiceURI: > "com.apple.speech.synthesis.voice.samantha", name: "Samantha", lang: > "en-US", localService: true, default: true} > 30 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.sara", > name: "Sara", lang: "da-DK", localService: true, default: true} > 31 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.satu", > name: "Satu", lang: "fi-FI", localService: true, default: true} > 32 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.sinji", > name: "Sin-ji", lang: "zh-HK", localService: true, default: true} > 33 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.tessa", > name: "Tessa", lang: "en-ZA", localService: true, default: true} > 34 SpeechSynthesisVoice {voiceURI: > "com.apple.speech.synthesis.voice.thomas", name: "Thomas", lang: "fr-FR", > localService: true, default: true} > 35 SpeechSynthesisVoice {voiceURI: > "com.apple.speech.synthesis.voice.tingting", name: "Ting-Ting", lang: > "zh-CN", localService: true, default: true} > 36 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.veena", > name: "Veena", lang: "en-IN", localService: true, default: true} > 37 SpeechSynthesisVoice {voiceURI: > "com.apple.speech.synthesis.voice.Victoria", name: "Victoria", lang: > "en-US", localService: true, default: true} > 38 SpeechSynthesisVoice {voiceURI: > "com.apple.speech.synthesis.voice.xander", name: "Xander", lang: "nl-NL", > localService: true, default: true} > 39 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.yelda", > name: "Yelda", lang: "tr-TR", localService: true, default: true} > 40 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.yuna", > name: "Yuna", lang: "ko-KR", localService: true, default: true} > 41 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.yuri", > name: "Yuri", lang: "ru-RU", localService: true, default: true} > 42 SpeechSynthesisVoice {voiceURI: "com.apple.speech.synthesis.voice.zosia", > name: "Zosia", lang: "pl-PL", localService: true, default: true} > 43 SpeechSynthesisVoice {voiceURI: > "com.apple.speech.synthesis.voice.zuzana", name: "Zuzana", lang: "cs-CZ", > localService: true, default: true} > > > Several colleagues who are also missing german and we have a lot of > customers who also complain that german is missing, so if there is anything > more i can provide you with, feel free to get in touch Have you downloaded the enhanced version of Anna on your computer? I wonder if that is causing it to be excluded from the list without returning the compact version
Saraphina Böttcher
Comment 15 2022-09-15 23:29:53 PDT
Not that I know. How can i check that?
chris fleizach
Comment 16 2022-09-15 23:37:06 PDT
(In reply to Saraphina Böttcher from comment #15) > Not that I know. How can i check that? System Preferences > Accessibility> Spoken Content > Voice >. Manage Voices See if Anna premium was downloaded
Saraphina Böttcher
Comment 17 2022-09-15 23:39:18 PDT
No it is not downloaded. Just for the record (not sure if this is important) i can only select "Anna" and nothing about premium
chris fleizach
Comment 18 2022-09-16 00:03:55 PDT
(In reply to Saraphina Böttcher from comment #17) > No it is not downloaded. Just for the record (not sure if this is important) > i can only select "Anna" and nothing about premium With Ventura coming out sometime in the near future, I suspect this will be resolved. This is not a webkit issue, but something going on with the speech system on your Mac. It's possible we won't be able to fix on 12.x series. We can see if there's more data available if you want to file a Feedback.
Marius Landwehr
Comment 19 2022-09-26 23:55:04 PDT
Is there a known workaround to get this up and running again? We have many customers who are relying on the TTS Service and we can't really do anything about this...
Marius Landwehr
Comment 20 2022-09-27 00:03:09 PDT
(In reply to chris fleizach from comment #18) > (In reply to Saraphina Böttcher from comment #17) > > No it is not downloaded. Just for the record (not sure if this is important) > > i can only select "Anna" and nothing about premium > > With Ventura coming out sometime in the near future, I suspect this will be > resolved. This is not a webkit issue, but something going on with the speech > system on your Mac. It's possible we won't be able to fix on 12.x series. We > can see if there's more data available if you want to file a Feedback. I've created a Feedback with the number: FB11599855
Note You need to log in before you can comment on or make changes to this bug.