Last active
July 20, 2022 18:13
-
Star
(141)
You must be signed in to star a gist -
Fork
(13)
You must be signed in to fork a gist
-
-
Save wesbos/cd16b8b1815825f111a2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// paste in your console | |
speechSynthesis.onvoiceschanged = function() { | |
var msg = new SpeechSynthesisUtterance(); | |
msg.voice = this.getVoices().filter(v => v.name == 'Cellos')[0]; | |
msg.text = Object.keys(window).join(' '); | |
this.speak(msg); | |
}; |
@ToreJuloe oh good to know - thanks!
Why not use Array#find
? .filter(v => v.name == 'Cellos')[0]
β .find(v => v.name == 'Cellos')
@msikma Not in my Opera/Chrome.
Its not working in Linux window.speechSynthesis.getVoices()
returns empty array no "voices" :(
Wow π
Love it!
Awesome!!
I really hope I wasn't the last one to find out this! Amazing π
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@akenn The reason it's wrapped in the
voiceschanged
eventlistener, is that the voices are loaded asynchronously and this way you can make sure that they actually exist before you start using them.It's no problem when you just run the snippet in the dev console, but if it's embedded on a page and set to run immediately, you'll get an error.
Here's a pretty cool Pen to play around with the different voices.