{"id":4183,"date":"2025-07-20T00:04:36","date_gmt":"2025-07-19T18:34:36","guid":{"rendered":"https:\/\/ocstore.in\/?page_id=4183"},"modified":"2025-07-21T19:08:10","modified_gmt":"2025-07-21T13:38:10","slug":"upload-word-pdf-to-translate-speak-in-your-language-voice","status":"publish","type":"page","link":"https:\/\/ocstore.in\/?page_id=4183","title":{"rendered":"Upload Word\/PDF To Translate &amp; Speak in Your Language Voice\u200b"},"content":{"rendered":"\n<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"UTF-8\">\n  <title>Doc to Audio (With Voice Selection)<\/title>\n  <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/pdf.js\/2.12.313\/pdf.min.js\"><\/script>\n  <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/mammoth\/1.4.2\/mammoth.browser.min.js\"><\/script>\n  <style>\n    body { font-family: Arial; padding: 20px; max-width: 800px; margin: auto; }\n    textarea { width: 100%; height: 160px; margin: 10px 0; }\n    select, button, input { padding: 10px; margin: 10px 0; width: 100%; }\n  <\/style>\n<\/head>\n<body>\n\n<h2>Upload Word\/PDF \u2192 Translate \u2192 Speak in Selected Language Voice<\/h2>\n\n<input type=\"file\" id=\"fileInput\" accept=\".pdf,.docx\">\n\n<label for=\"languageSelect\">Translate to:<\/label>\n<select id=\"languageSelect\">\n  <option value=\"en\">English<\/option>\n  <option value=\"hi\">Hindi<\/option>\n  <option value=\"ta\">Tamil<\/option>\n  <option value=\"te\">Telugu<\/option>\n  <option value=\"bn\">Bengali<\/option>\n  <option value=\"gu\">Gujarati<\/option>\n  <option value=\"mr\">Marathi<\/option>\n  <option value=\"ur\">Urdu<\/option>\n<\/select>\n\n<label for=\"voiceSelect\">Audio Voice Language (select speaker voice):<\/label>\n<select id=\"voiceSelect\"><\/select>\n\n<textarea id=\"originalText\" placeholder=\"Original extracted text...\"><\/textarea>\n<textarea id=\"translatedText\" placeholder=\"Translated text...\"><\/textarea>\n\n<button onclick=\"translateText()\">\ud83c\udf10 Translate Text<\/button>\n<button onclick=\"speakText()\">\ud83d\udd0a Speak Selected Voice<\/button>\n\n<script>\n  const fileInput = document.getElementById(\"fileInput\");\n  const originalText = document.getElementById(\"originalText\");\n  const translatedText = document.getElementById(\"translatedText\");\n  const languageSelect = document.getElementById(\"languageSelect\");\n  const voiceSelect = document.getElementById(\"voiceSelect\");\n\n  \/\/ Extract text from uploaded file\n  fileInput.addEventListener(\"change\", function () {\n    const file = this.files[0];\n    const reader = new FileReader();\n    const ext = file.name.split('.').pop().toLowerCase();\n\n    if (ext === 'pdf') {\n      reader.onload = function () {\n        const typedarray = new Uint8Array(reader.result);\n        pdfjsLib.getDocument(typedarray).promise.then(pdf => {\n          let pages = [];\n          for (let i = 1; i <= pdf.numPages; i++) {\n            pages.push(pdf.getPage(i).then(page =>\n              page.getTextContent().then(tc =>\n                tc.items.map(i => i.str).join(' ')\n              )\n            ));\n          }\n          Promise.all(pages).then(texts => {\n            originalText.value = texts.join('\\n\\n');\n          });\n        });\n      };\n      reader.readAsArrayBuffer(file);\n    } else if (ext === 'docx') {\n      reader.onload = function () {\n        mammoth.extractRawText({ arrayBuffer: reader.result })\n          .then(result => originalText.value = result.value);\n      };\n      reader.readAsArrayBuffer(file);\n    } else {\n      alert(\"Only PDF and Word (.docx) files are supported.\");\n    }\n  });\n\n  \/\/ Translate using Google Translate unofficial API\n  function translateText() {\n    const text = originalText.value;\n    const targetLang = languageSelect.value;\n    if (!text.trim()) return alert(\"Please extract text first.\");\n\n    fetch(`https:\/\/translate.googleapis.com\/translate_a\/single?client=gtx&sl=auto&tl=${targetLang}&dt=t&q=` + encodeURIComponent(text))\n      .then(res => res.json())\n      .then(data => {\n        translatedText.value = data[0].map(item => item[0]).join(\" \");\n      })\n      .catch(err => alert(\"Translation error: \" + err));\n  }\n\n  \/\/ Speak the translated text using selected voice\n  function speakText() {\n    const text = translatedText.value || originalText.value;\n    if (!text.trim()) return alert(\"No text available.\");\n\n    const selectedIndex = voiceSelect.selectedIndex;\n    const selectedVoice = speechSynthesis.getVoices()[selectedIndex];\n\n    const utter = new SpeechSynthesisUtterance(text);\n    utter.voice = selectedVoice;\n    utter.lang = selectedVoice.lang;\n\n    speechSynthesis.speak(utter);\n  }\n\n  \/\/ Populate available voices for selection\n  function populateVoices() {\n    const voices = speechSynthesis.getVoices();\n    voiceSelect.innerHTML = ''; \/\/ Clear first\n    voices.forEach((voice, index) => {\n      const option = document.createElement(\"option\");\n      option.value = index;\n      option.textContent = `${voice.name} (${voice.lang})`;\n      voiceSelect.appendChild(option);\n    });\n  }\n\n  \/\/ On voice load (happens async)\n  window.speechSynthesis.onvoiceschanged = populateVoices;\n<\/script>\n\n<\/body>\n<\/html>\n\n\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Doc to Audio (With Voice Selection) Upload Word\/PDF \u2192 Translate \u2192 Speak in Selected Language Voice Translate to: EnglishHindiTamilTeluguBengaliGujaratiMarathiUrdu Audio [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-4183","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/ocstore.in\/index.php?rest_route=\/wp\/v2\/pages\/4183","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ocstore.in\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ocstore.in\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ocstore.in\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ocstore.in\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4183"}],"version-history":[{"count":24,"href":"https:\/\/ocstore.in\/index.php?rest_route=\/wp\/v2\/pages\/4183\/revisions"}],"predecessor-version":[{"id":4253,"href":"https:\/\/ocstore.in\/index.php?rest_route=\/wp\/v2\/pages\/4183\/revisions\/4253"}],"wp:attachment":[{"href":"https:\/\/ocstore.in\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}