JSFiddle - React, Tailwind, and code Playground

by Tgwizman

JavaScript

var SPEECH = (function() {
    function SPEECH() {
        this.getVoices();
    }
    SPEECH.prototype.listen = function(f) {
        var recognition = new webkitSpeechRecognition();
        recognition.start();
        recognition.onresult = function(event) {
            if (typeof f == 'function') f(event.results[0][0].transcript);
        };
    };
    SPEECH.prototype.say = function(str, f, voice) {
        var msg = new SpeechSynthesisUtterance(str);
        msg.voice = this.voices[(typeof voice == 'number')? voice : 10];
        msg.onend = function() {
            if (typeof f == 'function') f();
        };
        window.speechSynthesis.speak(msg);
    };
    SPEECH.prototype.getVoices = function() {
        this.voices = window.speechSynthesis.getVoices();
    };
    return SPEECH;
})();

var jarvis = new SPEECH();
setTimeout(function() {
    jarvis.getVoices();
    jarvis.say('Holy shit. Circut Scribe looks amazing. Thank you for showing me, Erin.');
}, 10);