{"id":1480,"date":"2025-05-10T22:21:41","date_gmt":"2025-05-10T15:21:41","guid":{"rendered":"http:\/\/localhost\/?p=1480"},"modified":"2025-05-11T00:31:34","modified_gmt":"2025-05-10T17:31:34","slug":"test","status":"publish","type":"post","link":"https:\/\/studaca.online\/test\/","title":{"rendered":"test"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Speech to Text &#8211; Direct Recording<\/title>\n<\/head>\n<body>\n    <h1>Speech to Text &#8211; Direct Recording<\/h1>\n\n    <button id=\"start-recording\">Start Recording<\/button>\n    <button id=\"stop-recording\" disabled>Stop Recording<\/button>\n\n    <label for=\"language\">Select Language:<\/label>\n    <select id=\"language\">\n        <option value=\"en\">English<\/option>\n        <option value=\"fr\">French<\/option>\n        <option value=\"es\">Spanish<\/option>\n        <option value=\"de\">German<\/option>\n        <option value=\"zh\">Chinese<\/option>\n        <!-- Add more languages as needed -->\n    <\/select>\n\n    <div id=\"result\">\n        <h2>Transcription Result:<\/h2>\n        <p id=\"transcription-text\"><\/p>\n        <h3>Confidence:<\/h3>\n        <p id=\"confidence\"><\/p>\n    <\/div>\n\n    <script>\n        let mediaRecorder;\n        let audioChunks = [];\n\n        document.getElementById(\"start-recording\").addEventListener(\"click\", async function() {\n            const language = document.getElementById(\"language\").value;\n\n            \/\/ Request microphone access\n            const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n\n            mediaRecorder = new MediaRecorder(stream);\n            mediaRecorder.ondataavailable = function(event) {\n                audioChunks.push(event.data);\n            };\n\n            mediaRecorder.onstop = async function() {\n                const audioBlob = new Blob(audioChunks, { type: \"audio\/wav\" });\n                const formData = new FormData();\n                formData.append(\"audio\", audioBlob, \"recording.wav\");\n                formData.append(\"lang\", language);\n\n                try {\n                    const response = await fetch(\"http:\/\/127.0.0.1:5000\/stt\", {\n                        method: \"POST\",\n                        body: formData,\n                    });\n\n                    if (!response.ok) {\n                        throw new Error(\"Failed to get a response from the server.\");\n                    }\n\n                    const data = await response.json();\n                    console.log(data);  \/\/ Log to the console to inspect the response\n\n\n                    \/\/ Show transcription and confidence\n                    document.getElementById(\"transcription-text\").textContent = data.transcription || \"No transcription available\";\n                    document.getElementById(\"confidence\").textContent = `${data.confidence}%`;\n                } catch (error) {\n                    console.error(\"Error:\", error);\n                    alert(\"There was an error processing the request.\");\n                }\n            };\n\n            mediaRecorder.start();\n            document.getElementById(\"start-recording\").disabled = true;\n            document.getElementById(\"stop-recording\").disabled = false;\n        });\n\n        document.getElementById(\"stop-recording\").addEventListener(\"click\", function() {\n            if (mediaRecorder && mediaRecorder.state !== \"inactive\") {\n                mediaRecorder.stop();\n            }\n\n            document.getElementById(\"start-recording\").disabled = false;\n            document.getElementById(\"stop-recording\").disabled = true;\n        });\n    <\/script>\n<\/body>\n<\/html>\n\n","protected":false},"excerpt":{"rendered":"<p>Speech to Text &#8211; Direct Recording Speech to Text &#8211; Direct Recording Start Recording Stop Recording Select Language:<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1480","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/studaca.online\/api\/wp\/v2\/posts\/1480","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/studaca.online\/api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/studaca.online\/api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/studaca.online\/api\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/studaca.online\/api\/wp\/v2\/comments?post=1480"}],"version-history":[{"count":8,"href":"https:\/\/studaca.online\/api\/wp\/v2\/posts\/1480\/revisions"}],"predecessor-version":[{"id":1490,"href":"https:\/\/studaca.online\/api\/wp\/v2\/posts\/1480\/revisions\/1490"}],"wp:attachment":[{"href":"https:\/\/studaca.online\/api\/wp\/v2\/media?parent=1480"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/studaca.online\/api\/wp\/v2\/categories?post=1480"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/studaca.online\/api\/wp\/v2\/tags?post=1480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}