Question

How can one synthesize speech in a web app?

Is there a way using the HTML5 Web Speech API?

For example, if I wanted to synthesize the sentence 'A quick brown fox jumps over the lazy dog', how could I do that without playing a pre-recorded file of someone reading exactly that sentence

Was it helpful?

Solution

As it is right now, the SpeechSynthesis features which are part of the Web Speech API Specification have not been implemented in any browser yet.

However, you can have a look at this Chrome extension.

EDIT:

It seems that the lastest Chrome Canary build might include the feature, however it only specifies that the feature has been started (http://www.chromestatus.com/features) and I was unable to find any more substantive information about it.

EDIT2:

As mentionned in the comments by @cdf, it seems that you can now play around with that feature by launching chrome with the --enable-speech-synthesis flag. Please see this post.

EDIT3:

This appears to be in Webkit now, but not on iOS at the moment. Not even in Chrome on iOS. Demo @BrandonAaskov

OTHER TIPS

That code works both on Chrome and on Safari (taken from my app ttsreader):

if (!('speechSynthesis' in window)) {
        // Synthesis not supported. 
            alert('Speech Synthesis is not supported by your browser. Switch to Chrome or Safari');
        }

var msg = new SpeechSynthesisUtterance('hello world');
msg.volume = 1; // 0 to 1
msg.rate = 0.9; // 0.1 to 10
msg.pitch = 1; //0 to 2
msg.lang = "en-GB";
msg.text = "I will speak this out";
speechSynthesis.speak(msg);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top