!7 p { if (isMainProgram()) serveHttpAndOpenBrowser(); } html { ret h3("Chrome Speech Recognition Test") + loadJQuery() + hdiv("Results come here", id := 'results, style := "margin: 10px") + hjavascript([[ var recognition = new webkitSpeechRecognition(); recognition.lang = "en-US"; recognition.onerror = function(event) { console.log('Speech recognition error detected: ' + event.error); console.log('Additional information: ' + event.message); $("#results").html("Error."); started = false; $("#btn").html("Start recognition"); } recognition.onresult = function(event) { var result = event.results[0]; var transcript = result[0].transcript; $("#results").html("Transcript: " + transcript); started = false; $("#btn").html("Start recognition"); } var started = false; function startOrStop() { if (started) { recognition.stop(); started = false; $("#btn").html("Start recognition"); } else { recognition.start(); started = true; $("#btn").html("Stop recognition"); } } ]]) + tag('button, "Start recognition", onclick := "startOrStop()", type := 'button, id := 'btn); }