Warning: session_start(): open(/var/lib/php/sessions/sess_6v3fc769qjp4if2pq76vhhp8em, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
static int port;
p {
if (isMainProgram()) {
port = serveHttpWithWebSockets(func(NanoHTTPD.IHTTPSession handshake) {
ret new WebSocket(handshake) {
protected void onPong(WebSocketFrame pongFrame) { print("pong"); }
protected void onMessage(WebSocketFrame messageFrame) { print("msg: " + messageFrame.getTextPayload()); }
protected void onClose(WebSocketFrame.CloseCode code, String reason, boolean initiatedByRemote) {}
protected void onException(IOException e) { printStackTrace(e); }
};
});
S url = print("http://localhost:" + port);
openPlatformBrowser(url);
}
}
html {
ret h3("Speech Recognizer")
+ loadJQuery()
+ hdiv("Results come here", id := 'results, style := "margin: 10px")
+ hjavascript([[
var websocket = new WebSocket("ws://localhost:#PORT#/");
websocket.onopen = function(event) {
$("#btn").prop('disabled', false);
};
var recognition = new webkitSpeechRecognition();
recognition.lang = "en-US";
recognition.onerror = function(event) {
$("#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");
}
}
]]).replace("#PORT#", port)
+ tag('button, "Start recognition", onclick := "startOrStop()", type := 'button, id := 'btn, disabled := 'disabled);
}