speechgen.io

Website beoordeling speechgen.io

Realistic Text to Speech converter & AI Voice generator

 Gegenereerd op April 11 2026 02:41 AM

Oude statistieken? UPDATE !

De score is 66/100

SEO Content

Title

Realistic Text to Speech converter & AI Voice generator

Lengte : 55

Perfect, uw title tag bevat tussen de 10 en 70 karakters.

Description

Generate realistic Voiceovers online! Insert text to generate speech and download audio mp3/wav. Speak a text with AI-powered voices.

Lengte : 133

Perfect, uw meta description bevat tussen de 70 en 160 karakters.

Keywords

Erg slecht. We hebben geen meta keywords gevonden in uw website. Gebruik deze gratis online meta tags generator om keywords te genereren.

Og Meta Properties

Goed, uw page maakt gebruik van Og Properties.

Property Content
type article
locale en_US
description Generate realistic Voiceovers online! Insert text to generate speech and download audio mp3/wav. Speak a text with AI-powered voices.
url https://speechgen.io/
title Realistic Text to Speech converter & AI Voice generator
site_name SpeechGen.io
audio https://speechgen.io/texttomp3/20220915/prj_699_6c629a45a5f135ad29cfa87a7d9b9043_1663235703.mp3
image https://speechgen.io/img/speechgen_fb_pic.jpg

Headings

H1 H2 H3 H4 H5 H6
1 17 30 1 0 0
  • [H1] AI Text to Speech Online
  • [H2]
  • [H2] Result
  • [H2] What is SpeechGen?
  • [H2] Voice Samples
  • [H2] How to Convert Text to Speech in 3 Steps
  • [H2] Who Uses AI Text to Speech — Real Problems, Real Results
  • [H2] 6 Features That Make SpeechGen Different
  • [H2] Built-in Tools
  • [H2] Try Before You Pay — No Commitment Required
  • [H2] Trusted by 70,000 Teams Across 22 Industries
  • [H2] Download MP3, WAV, FLAC — Any Format, Any Bitrate
  • [H2] Why SpeechGen Instead of a Recording Studio
  • [H2] Frequently Asked Questions
  • [H2] 150+ Languages — AI Text to Speech in Any Language
  • [H2] Start Converting Text to Speech — Right Now
  • [H2] Save Voice for Quick AccessSave your favorite voices to Favorites — with custom settings (speed, pitch, style) or in their default state for quick access.Adding to Favorites is only available to registered users.Sign UpAlready have an account? Sign in here","deleteVoiceSuccess":"messages_deleteVoiceSuccess"},"labels":{"favorite":"Favorites","speed":"speed","speedShort":"speed","pitch":"pitch","pitchShort":"pitch","volume":"Volume:","volumeShort":"Volume:","styles":"Style","styleDegree":"Style Strength","role":"Role","intonationDesc":"Intonation allows you to modify the contour\/expressiveness of speech. Available only for select voices.","smartcacheDesc":"SpeechGens's Smart Cache remembers every sentence you've synthesized","unchecked":"labels_unchecked"},"tooltips":{"intonation":"Ability to control intonation contour (if supported by the voice).","smartcache":"Smart Cache speeds up synthesis and saves your limits on repeated requests.","pricing":"When generating, tokens are deducted based on the cost per 1,000 characters\""},"units":{"semitoneShort":"st"},"ui":{"clear":"Clear"}} || {})); /* простой хелпер */ function t(path, fallback){ const parts = String(path||"").split("."); let cur = window.I18N || {}; for (const p of parts){ cur = (cur && typeof cur==="object") ? cur[p] : undefined; } return (cur===undefined || cur===null || cur==="") ? (fallback ?? path) : String(cur); } (()=>{const e=(e,t=document)=>t.querySelector(e),n=(e,t=document)=>Array.from(t.querySelectorAll(e)),s=(e,t)=>{const n=document.createElement(e);return t&&(n.className=t),n},i=(e,t,n)=>Math.max(t,Math.min(n,e)),a=e=>e>0?`+${e}`:`${e}`;const o=e=>e?/^(?:https?:)?\/\//i.test(e)||e.startsWith("data:")?e:location.origin+(e.startsWith("/")?e:"/"+e):"",l=window.LANG_INDEX&&"object"==typeof window.LANG_INDEX&&!Array.isArray(window.LANG_INDEX)?window.LANG_INDEX:{},r={loaded:!1,list:[]},c=(()=>{let e=null,t=null,n=null;const s=()=>e||(e=new Audio,e.preload="none",e.addEventListener("ended",()=>{t&&(l(t,!1),r(t,!1),t=null)}),e.addEventListener("loadeddata",()=>{t&&t.classList.remove("loading")}),e.addEventListener("canplaythrough",()=>{t&&t.classList.remove("loading")}),e.addEventListener("error",()=>{t&&t.classList.remove("loading")}),e);function i(e,t){const n=e?.closest("[data-voice-id]");return{voiceId:e?.dataset?.voiceId||n?.dataset?.voiceId||"",pitch:parseInt(t?.pitch??0,10)||0,style:String(t?.style||"").trim()}}function a(e,t){return!(!e||!t)&&(String(e.voiceId)===String(t.voiceId)&&Number(e.pitch)===Number(t.pitch)&&String(e.style)===String(t.style))}const l=(e,t)=>{e&&e.classList.toggle("play",!!t)},r=(e,t)=>{document.querySelectorAll(".miniplayBu.play").forEach(t=>{t!==e&&t.classList.remove("play")}),e&&e.classList.toggle("play",!!t)};function c(e){e&&(e.classList.add("loading"),clearTimeout(e.__loadingTO),e.__loadingTO=setTimeout(()=>e.classList.remove("loading"),5e3))}function d(e){e&&(e.classList.remove("loading"),clearTimeout(e.__loadTimer),e.__loadTimer=null)}return{async toggle(e,u,p){const v=s(),m=o(u||"");if(!m)return;const g={...i(e,p),url:m};if(v.src===m||a(n,g))if(v.paused){t=e;try{await AudioFX.apply(v,p||{})}catch(e){}await v.play().catch(console.warn),l(t,!0),r(t,!0)}else v.pause(),l(e,!1),r(e,!1),d(e);else{t&&t!==e&&(l(t,!1),d(t)),t=e,c(t),v.pause(),v.src=m,v.currentTime=0;try{await AudioFX.apply(v,p||{})}catch(e){}await v.play().catch(console.warn),l(t,!0),r(t,!0),d(t),n=g}},async applyLive(e){const o=s();if(!o||o.paused)return;try{await AudioFX.apply(o,e||{})}catch(e){}if(!t)return;const u=i(t,e);if(a(n,u))return;const p=b(t,e||{});if(!p)return;let v=0;try{isFinite(o.duration)&&o.duration>0&&(v=Math.max(0,Math.min(1,o.currentTime/o.duration)))}catch(e){}c(t),o.pause(),o.src=p;const m=async()=>{o.removeEventListener("loadedmetadata",m);try{isFinite(o.duration)&&o.duration>0&&v>0?o.currentTime=Math.max(0,Math.min(o.duration-.05,o.duration*v)):o.currentTime=0,await AudioFX.apply(o,e||{}),await o.play(),l(t,!0),r(t,!0),d(t),n={...u,url:p}}catch(e){console.warn(e),d(t)}};o.addEventListener("loadedmetadata",m,{once:!0}),setTimeout(async()=>{if(!(o.readyState>=1))try{await AudioFX.apply(o,e||{}),await o.play(),l(t,!0),r(t,!0),d(t),n={...u,url:p}}catch(e){d(t)}},2e3)},stopInside(e){if(!t||!e.contains(t))return;const n=s();n.pause(),n.currentTime=0,l(t,!1),r(t,!1)},resync(){const e=s(),n=e&&!e.paused&&e.src;document.querySelectorAll(".miniplayBu.play").forEach(e=>e.classList.remove("play")),t&&n&&t.classList.add("play")}}})();function d(e){const t=document.querySelector(".addBalancePop");document.body.classList.add("overlayed"),t&&(t.innerHTML=`\n \n \n ×\n \n ${e}\n OK\n \n \n \n \n `,"function"==typeof popBalClInt&&popBalClInt(null))}const u=()=>new Promise(e=>requestAnimationFrame(()=>e())),p=new WeakMap;async function v(e,t=60){const n=function(e){let t=p.get(e);return t&&!t.signal.aborted||(t=new AbortController,p.set(e,t)),t.signal}(e),s=e.querySelector(".inList");if(s&&e.__stash)for(;e.__stash.firstChild;){if(n.aborted)return;const i=document.createDocumentFragment();for(let n=0;nrequestAnimationFrame(e))}}let m=null;const g=e=>String(e).replace(/[&"']/g,e=>({"&":"&","":">",'"':""","'":"'"}[e]));function y(){if(m)return m;const e=G(l),t=[];return e.forEach(e=>{e.items.forEach((e,n)=>{const s=e.code||e.lang,i=g(e.full_name||e.lang||s),a=g(e.name||(e=>(e||"").split("-")[0]||e)(s)),o=0===n?"":" dialect";t.push(`\n ${i}${a}\n `)})}),m=t.join(""),m}const f=/iP(hone|ad|od)/.test(navigator.userAgent)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1,h=(/^((?!chrome|android).)*safari/i.test(navigator.userAgent),e=>window.scheduler?.postTask&&!f?scheduler.postTask(e,{priority:"background"}):requestAnimationFrame(e));function b(e,t={}){console.log("resolvePreviewUrlFor");const n=e?.dataset?.basetrack||"";if(!n)return"";const s=e.closest("[data-voice-id]"),i=e.dataset.voiceId||s?.dataset.voiceId||"",a=parseInt(t.pitch??0,10)||0,o=String(t.style||"").trim();if(!!(!i||0===a&&!o))return n;const l=new URL("/index.php",location.origin);return l.searchParams.set("r","ttsV2/preview"),l.searchParams.set("voice_id",i),l.searchParams.set("pitch",String(a)),o&&l.searchParams.set("style",o),l.toString()}function _(e,t,n,s,i=null,a=""){console.log("upsertPopupBox");const o=e.querySelector(".uiRight .uiInner");if(!o)return null;const l=`uiBox uiBox-${t}`;let r=o.querySelector(`.uiBox.uiBox-${t}`);if(e.__uid||(e.__uid=`${Math.random().toString(36).slice(2,8)}`),r){const n=r.querySelector("input.toggle-hidden"),s=r.querySelectorAll("label.popup-backdrop, label.sh2");//!input.id || !input.id.includes(uid); if(1){const i=`toggle-${t}-${e.__uid}`;n.id=i,s.forEach(e=>e.setAttribute("for",i))}}else{r=document.createElement("div"),r.className=l;const n=`toggle-${t}-${e.__uid}`;if(r.innerHTML=`\n \n \n \n \n `,i){const e=o.querySelector(i);e?o.insertBefore(r,e):o.appendChild(r)}else o.appendChild(r)}const c=r.querySelector(".sh2");c&&(c.innerHTML=n||"",a?c.title=a:c.removeAttribute("title"));const d=r.querySelector(".p");return d&&(d.innerHTML=s||""),r}async function S(e){try{const t=e.lang;Y[t]?.voices?.length||await Z.voicesByLang(t);const n=(Y[t]?.voices||[]).find(t=>String(t.id)===String(e.id));return n?{...e,name:e.name||n.name,api:n.api,api_id:n.api_id,pro:!!Number(n.pro),sex:n.sex,mp3:n.mp3,price:n.price,type:n.type,type_name:n.type_name,em:n.em??n.styles??null,styles:n.styles??null,roles:n.roles??n.role??null,_base:n}:e}catch(t){return e}}const w=(e,t,n=1e-6)=>{const s=+e,i=+t;return Number.isFinite(s)&&Number.isFinite(i)?Math.abs(s-i)null==e?"":String(e);function E({lang:e,id:t,name:n,speed:s,pitch:i,volume:a,style:o,styledegree:l,role:r}){const c=o&&Number.isFinite(+l)?+l:1;return{lang:L(e),id:L(t||""),name:L(n||""),speed:Number.isFinite(+s)?+(+s).toFixed(1):1,pitch:parseInt(i,10)||0,volume:parseInt(a,10)||100,style:L(o),styledegree:+c,role:L(r)}}function k(e){if(_devMode&&console.log(arguments.callee.name),!r.loaded)return null;const t=E({lang:e.lang,id:e.voiceId,name:e.voiceName,speed:e.speed,pitch:e.pitch,volume:e.volume,style:e.style,styledegree:e.styledegree,role:e.role});return r.list.find(e=>{const n=E({lang:e.lang,id:e.id,name:e.name,speed:e.speed,pitch:e.pitch,volume:e.volume,style:e.style,styledegree:e.styledegree,role:e.role});return!!(t.id&&n.id?n.id===t.id:n.name===t.name)&&(n.lang===t.lang&&w(n.speed,t.speed,1e-6)&&n.pitch===t.pitch&&n.volume===t.volume&&n.style===t.style&&w(n.styledegree,t.styledegree,1e-6)&&n.role===t.role)})||null}function A(e){_devMode&&console.log(arguments.callee.name);const t=e?.querySelector(".uiHead"),n=t?.querySelector(".bttnFilters"),s=t?.querySelector(".acceptall");if(!t||!n||n.__wired)return;n.__wired=!0;const i=()=>{t.classList.add("open"),function(){if(t.__outside)return;document.addEventListener("pointerdown",l,!0),t.__outside=l}()},a=()=>{t.classList.remove("open"),r()},o=e=>{e.preventDefault(),e.stopPropagation(),t.classList.contains("open")?a():i()},l=e=>{const n=e.target,s=t.contains(n),i=!!n.closest(".uiDD");s&&!i||a()};function r(){t.__outside&&(document.removeEventListener("pointerdown",t.__outside,!0),t.__outside=null)}n.addEventListener("pointerdown",o),s.addEventListener("pointerdown",o),e.addEventListener("transitionend",()=>{e.classList.contains("open")||r()})}function x(t){return(e(".voice-search",t)?.value||"").trim().toLowerCase()}function C(e,t){return t?e.filter(e=>{const n=String(e.name||"").toLowerCase(),s=String(e.api||"").toLowerCase(),i=String(e.lang||"").toLowerCase();return n.includes(t)||s.includes(t)||i.includes(t)}):e}function M(e){const n=x(e);return n?t("messages.noVoicesWithQuery",'Nothing found for "{q}"').replace("{q}",g(n)):t("messages.noVoices","Nothing found with these filters")}function q(e,t,n,s){const i=e.querySelector(`.${t}`);if(!i)return;const a=i.querySelector(".lbl"),o=i.querySelector(".val");a&&(a.textContent="style"==t?String(n).replace(/:?$/,""):String(n).replace(/:?$/,":")),o&&(o.textContent=s)}function N(e){_devMode&&console.log(arguments.callee.name);const t=e.querySelector(".uiMarkers");if(!t)return null;return["speed","pitch","style","volume"].forEach(e=>{let n=t.querySelector(`.uiName.p5[data-marker="${e}"]`);n||(n=document.createElement("div"),n.className="uiName p5",n.dataset.marker=e,t.appendChild(n));let s=n.querySelector(`span.${e}`);s||(s=document.createElement("span"),s.className=e,n.appendChild(s));let i=s.querySelector(".lbl"),a=s.querySelector(".val");return i||(i=document.createElement("span"),i.className="lbl",s.prepend(i)),a||(a=document.createElement("span"),a.className="val",s.appendChild(a)),{wrap:n,span:s,lbl:i,val:a}}),t}const $=(e,t=150)=>{let n=0;return(...s)=>{clearTimeout(n),n=setTimeout(()=>e(...s),t)}},F=new WeakMap;function I(e){let t=F.get(e);return t&&!t.signal.aborted||(t=new AbortController,F.set(e,t)),t.signal}function T(e){const t=F.get(e);t&&!t.signal.aborted&&t.abort()}function B(t){const n=e(".uiRight .uiInner",t);if(!n)return{};const s=e('select[name="style"]',n);let i="",a="";return s&&s.value&&"none"!==s.value&&(i=s.value,a=s?.options[s.selectedIndex]?.text||""),{speed:parseFloat(e('select[name="speed"]',n)?.value)||1,pitch:parseInt(e('select[name="tone"]',n)?.value,10)||0,volume:parseInt(e('select[name="volume"]',n)?.value,10)||100,style:i,styleName:a,styledegree:(()=>{const t=parseFloat(e('input[name="styledegree"]',n)?.value);return isNaN(t)?1:t})(),role:e('select[name="role"]',n)?.value||""}}function P(e,t){if(!t)return;console.log(".saveVoise for speaker"),console.log(t);const n=e.closest(".speaker_menu_new"),s=t.lang||O(e,n)||J(n).lang||X(n),a=function(e,t){const n=B(e),s="microsoft"===String(t?.api).toLowerCase(),a=j(t).map(e=>String(e.value)),o=!!n.style&&a.includes(String(n.style)),l=o?n.style:"",r=o&&n.styleName||"",c=s&&l?i(parseFloat(String(n.styledegree||"1")),.01,2):1,d=R(t),u=n.role&&d.includes(n.role)?n.role:"";return{speed:parseFloat(String(n.speed||"1"))||1,pitch:parseInt(String(n.pitch||"0"),10)||0,volume:parseInt(String(n.volume||"100"),10)||100,style:l,styleName:r,styledegree:c,role:u}}(e,t);console.log("selected L= "+s),console.log(t.lang+O(e,n)+X(n)),ue(n,e,{lang:s,voiceId:t.id,voice:t.name,api:t.api,apiId:t.api_id,pro:!!Number(t.pro),price:t.price,speed:a.speed,pitch:a.pitch,volume:a.volume,style:a.style||null,styleName:a.styleName||null,styledegree:a.styledegree,role:a.role||null,type:t.type,type_name:t.type_name})}function V(e,t){const n=t.lang||X(e),s=Y?.[n],i=Array.isArray(s?.voices)?s.voices:[];return i.find(e=>String(e.id)===String(t.voiceId))||i.find(e=>String(e.name)===String(t.voice||t.voiceName))||null}function O(t,n){return e('select[name="lang"]',t)?.value||n?.dataset?.lang||X(n)}function D(e){const t=String(e?.sex??""),n="1"===t?"man":"0"===t?"woman":"2"===t?"neutral":"31"===t?"boy":"30"===t?"girl":"41"===t?"grandpa":"40"===t?"grandma":"woman",s=ie(e?.type),i=!0===e?.new||1===e?.new||"1"===e?.new||"new"===e?.new,a=String(e?.name??e?.voice??"").toLowerCase();if(/^(maksim|maxim|tatiana)$/.test(a))return"/img/icons/bot.png";const o=[];return i&&o.push("new"),s&&"standard"!==s&&o.push(s),o.push(n),o.join("")}function H(){_devMode&&console.log(arguments.callee.name);const e=document.getElementById("speaker_100");if(!e)return;const t=String(e.dataset.api||"").toLowerCase(),n=parseInt(e.dataset.apiId||e.dataset.apiid||"",10),s="microsoft"===t||Number.isFinite(n)&&"undefined"!=typeof MS_API_ID&&n===MS_API_ID,i=11===n||13===n;window.SSMLUI?SSMLUI.setEngine(t):window.__SSML_PENDING_ENGINE=t;const a=document.getElementById("intonationContourBtn");a&&(a.parentElement.style.display=s?"inline-block":"none");const o=document.getElementById("strong");o&&(o.parentElement.style.display=i?"none":"inline-block"),setDir(e.dataset.lang,document.getElementById("mytextarea"))}function j(e){const t=[],n=(e,n)=>{const s=(e??n??"").toString().trim(),i=(n??e??"").toString().trim();s&&t.push({value:s,label:i||s})},s=e=>{if(null==e)return;if(Array.isArray(e))return void e.forEach(s);const t=typeof e;if("string"!==t&&"number"!==t){if("object"===t){if(Array.isArray(e.options)&&s(e.options),"value"in e||"name"in e)return void n(e.value,e.name);Object.entries(e).forEach(([e,t])=>{null!=t&&("string"==typeof t||"number"==typeof t?n(String(t),e):"object"==typeof t?n(t.value??e,t.name??e):n(String(t),e))})}}else n(String(e),String(e))};s(e?.em),0===t.length&&s(e?.styles);const i=new Set;return t.filter(({value:e})=>{const t=String(e).toLowerCase();return!i.has(t)&&(i.add(t),!0)})}function R(e){const t=[],n=e=>{const n=(e??"").toString().trim();n&&t.push(n)},s=e=>{if(e)if(Array.isArray(e))e.forEach(s);else if("string"!=typeof e&&"number"!=typeof e){if("object"==typeof e){if("value"in e||"name"in e)return void n(e.value??e.name);Object.values(e).forEach(s)}}else n(e)};s(e?.roles),s(e?.role);const i=new Set;return t.filter(e=>{const t=e.toLowerCase();return!i.has(t)&&(i.add(t),!0)})}function W(e){const t=[];if(Array.isArray(e))e.forEach((e,n)=>{const s=e?.code||e?.lang;t.push({code:s||"",lang:e?.lang||s||"",full_name:e?.full_name||e?.name||e?.lang||s||"",name:e?.name||(s||"").split("-")[0],magor:Number(e?.magor||0)||0,_idx:n})});else{let n=0;for(const s of Object.keys(e||{})){const i=e[s]||{},a=i.code||i.lang||s;t.push({code:a,lang:i.lang||a,full_name:i.full_name||i.name||i.lang||a,name:i.name||(a||s).split("-")[0],magor:Number(i.magor||0)||0,_idx:n++})}}return t}function G(e){const t=(Array.isArray(e),W(e)),n=new Map;t.forEach(e=>{const t=e.code||e.lang,s=(t||"").split("-")[0]||t;n.has(s)||n.set(s,[]),n.get(s).push(e)});const s=[];for(const[e,t]of n){t.sort((e,t)=>{const n="1"===String(e.magor)?-1:0,s="1"===String(t.magor)?-1:0;return n!==s?n-s:e._idx-t._idx});const n=t.find(e=>"1"===String(e.magor))||t[0];s.push({base:e,items:t,primary:n})}return s}function U(e){return e?l[e]?l[e]:W(l).find(t=>t.code===e||t.lang===e)||null:null}function X(t){const n=t?.dataset?.lang;if(n&&U(n))return n;const s=e(".uiFlag",t)?.dataset.value;if(s&&U(s))return s;const i=W(l),a=i.find(e=>"1"===String(e.magor));if(a)return a.code||a.lang;const o=Object.keys(l)[0];return o||(i[0]?.code||"en-US")}function J(t){_devMode&&console.trace(" readSavedFromSpeaker");const n=t?.dataset||{},s=(e,t)=>""===e||null==e||isNaN(+e)?t:+e;let i={};const a=t.querySelector('input[type="hidden"][name$="_json"]');if(a&&a.value)try{i=JSON.parse(a.value)||{}}catch(e){}const o=e=>void 0!==n[e]?n[e]:void 0!==i[e]?i[e]:void 0,l=o("voice")??o("voiceName")??e(".uiName span",t)?.textContent?.trim()??"";return{lang:o("lang")||e(".uiFlag",t)?.dataset.value||null,voiceId:o("voiceId")||null,voice:l,api:o("api"),apiId:o("apiId"),pro:o("pro"),type:o("type"),type_name:o("type_name"),price:o("price"),speed:void 0!==o("speed")?s(o("speed"),1):void 0,pitch:void 0!==o("pitch")?parseInt(o("pitch"),10):void 0,volume:void 0!==o("volume")?parseInt(o("volume"),10):void 0,style:o("style"),styledegree:void 0!==o("styledegree")?s(o("styledegree"),1):void 0,role:o("role")}}const Y={};function K(e,t){if(!e)return null;if(Array.isArray(e.voices))return t?{[t]:e}:null;if("object"==typeof e){const t={};for(const[n,s]of Object.entries(e))s&&Array.isArray(s.voices)&&(s.code||(s.code=n),t[n]=s);return Object.keys(t).length?t:null}return null}if(window.VOICES_BY_LANG&&"object"==typeof window.VOICES_BY_LANG)if(Array.isArray(window.VOICES_BY_LANG.voices)){const e=window.VOICES_BY_LANG;e.code&&(Y[e.code]=e)}else for(const[e,t]of Object.entries(window.VOICES_BY_LANG))if(t&&Array.isArray(t.voices))Y[e]=t;else{const n=K(t,e);n&&Object.assign(Y,n)}const z=new Map,Z={async voicesByLang(e){if(!e)throw new Error("tts_lang is empty");if(Y?.[e]?.voices?.length)return Y[e];if(!z.has(e)){const t=`/index.php?r=ttsV2/VoiseInfo&type=voice&tts_lang=${encodeURIComponent(e)}&for_uid=${for_uid}`,n=fetch(t,{credentials:"same-origin"}).then(e=>{if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.json()}).then(t=>{const n=K(t,e);if(!n)throw new Error("Bad payload");Object.assign(Y,n),window.langArrText=window.langArrText||{};for(const[e,t]of Object.entries(n))t&&"string"==typeof t.text&&!(e in window.langArrText)&&(window.langArrText[e]=t.text);return Y[e]||Y[Object.keys(n)[0]]});z.set(e,n)}return z.get(e)},toggleFavorite:async()=>!0,async favorites(){if(r.loaded)return r.list;const e=await fetch("/index.php?r=ttsV2/VoiseFavor",{credentials:"same-origin"});if(!e.ok)throw new Error(`HTTP ${e.status}`);const t=await e.json();return r.list=Array.isArray(t?.voices)?t.voices.map(e=>Q(e)):[],r.loaded=!0,r.list},async addFavorite(e){const t=await fetch("/index.php?r=ttsV2/AddFavor",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){const e=new Error(`HTTP ${t.status}`);throw e.status=t.status,e}const n=await t.json(),s=Q(n?.voice||{...e,favor_id:n?.favor_id});return!s.favor_id&&n?.favor_id&&(s.favor_id=n.favor_id),r.list.unshift(s),s},async saveFavorite(e){const t=await fetch("/index.php?r=ttsV2/SaveFavor",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`HTTP ${t.status}`);const n=await t.json(),s=r.list.findIndex(t=>String(t.favor_id)===String(e.favor_id));return s>=0&&(r.list[s]={...r.list[s],...ee(e),...n?.voice?Q(n.voice):{}}),n},async deleteFavorite(e){const t={"Content-Type":"application/json"},n=document.querySelector('meta[name="csrf-token"]')?.content;n&&(t["X-CSRF-Token"]=n);const s=await fetch("/index.php?r=ttsV2/DeleteFavor",{method:"POST",credentials:"same-origin",headers:t,body:JSON.stringify({favor_id:e})});if(!s.ok)throw new Error(`HTTP ${s.status}`);const i=await s.json();if(!i?.ok)throw new Error(i?.error||"Delete failed");return r.list=r.list.filter(t=>String(t.favor_id)!==String(e)),!0}};function Q(e){const t=e.voice_id??e.id;return{favor_id:e.favor_id??e.id_favor??e.id,id:t,name:e.name??e.voice??"",lang:e.lang,api:e.api,api_id:e.api_id,pro:!!Number(e.pro),sex:e.sex,mp3:e.mp3,price:e.price,type:e.type,type_name:e.type_name,...ee(e)}}function ee(e){const t=Number.isFinite(+e.styledegree)?+e.styledegree:1;return{speed:Number.isFinite(+e.speed)?+e.speed:1,pitch:Number.isFinite(+e.pitch)?+e.pitch:0,volume:Number.isFinite(+e.volume)?+e.volume:100,style:e.style??"",styledegree:t>0?t:1,styleName:e.styleName??e.stylename??"",role:e.role??""}}function te(e){const n=e.closest(".uiDD"),s=n?.querySelector("button.xDrop");if(!s)return;s.className=`xDrop ${e.value}`;const i=U(e.value),a=i?.full_name||i?.lang||e.value||t("labels.favorite","Favorite"),o=i?.name||(e.value||"").split("-")[0],l=s.querySelector(".voiceBnt");l&&(l.innerHTML=`${a}${o}`)}function ne(e,t){const n=e?.querySelector("ul");if(!n)return;const s=e.__selectedLi;s&&s.classList.remove("selected");const i=n.querySelector(`li[data-value="${CSS.escape(t)}"]`);i&&(i.classList.add("selected"),e.__selectedLi=i)}function se(t){return e('.voice-tab-content[data-content="all"] .voices-full',t)}!function(){window;function e(e){e.__skel&&(e.__skel.remove(),e.__skel=null)}function n(e,n){_devMode&&console.log("ensureMenuShell");let s=e.querySelector(".lang-menu");s||(s=document.createElement("div"),s.className="lang-menu xvoicelist langlist lang_sprites",s.setAttribute("role","dialog"),s.setAttribute("aria-hidden","true"),s.hidden=!0,s.style.contain="content",s.style.willChange="transform,opacity",s.style.maxHeight="40px",s.style.overflow="hidden",s.innerHTML=`\n \n \n \n \n \n `,e.appendChild(s));const i=s.querySelector(".searchlang"),a=s.querySelector(".searchwrap .lupa"),o=s.querySelector("ul");if(i&&a&&!a.__wired){a.__wired=!0;const e=()=>a.classList.toggle("clr",!!i.value.trim());["input","change","keyup","cut","paste"].forEach(t=>i.addEventListener(t,e,{passive:!0})),a.addEventListener("click",()=>{i.value&&(i.value="",i.dispatchEvent(new Event("input",{bubbles:!0})),i.focus())}),e()}return o.__wired||(o.__wired=!0,o.addEventListener("click",t=>{const i=t.target.closest("li[data-value]");if(!i)return;const a=i.dataset.value;n.value=a,te(n),ne(s,a),n.dispatchEvent(new Event("change",{bubbles:!0})),closeLangMenu(e)})),s}function s(e){_devMode&&console.log("setupLangSearchFiltering");const t=e.querySelector(".searchlang"),n=e.querySelector("ul");if(!t||!n||t.__debounced)return;t.__debounced=!0;const s=()=>{n.querySelectorAll("li[data-value]").forEach(e=>{e.dataset.key||(e.dataset.key=(e.textContent||"").toLowerCase())})};s();let i=null;const a=new MutationObserver(e=>{for(const t of e)t.addedNodes.forEach(e=>{1===e.nodeType&&e.matches("li[data-value]")&&!e.dataset.key&&(e.dataset.key=(e.textContent||"").toLowerCase())})});a.observe(n,{childList:!0}),e.__observer=a;const o=$(()=>(e=>{i&&i.abort();const t=new AbortController;i=t;const s=(e||"").trim().toLowerCase();if(!s){const e=Array.from(n.children);let s=0,i=200;const a=()=>{if(t.signal.aborted)return;const n=Math.min(s+i,e.length);for(;si=!1,100),a.__open=!0,a.setAttribute("aria-hidden","false"),a.classList.add("open"),a.classList.remove("--vis-hide");const o=a.querySelector("ul");if(o&&(o.style.display="none"),function(e){if(_devMode&&console.log("showLangSkeleton"),e.__skel)return;const t=document.createElement("div");t.className="lang-skel",t.innerHTML=Array.from({length:3}).map(()=>'\n ...\n .........\n ').join(""),e.appendChild(t),e.__skel=t}(a),a.style.maxHeight="",!a.__outside){const e=e=>{if(!a.__open||i)return;const n=t.querySelector("button.xDrop");n&&(e.target===n||n.contains(e.target))||t.contains(e.target)||closeLangMenu(t)};f?(document.addEventListener("touchstart",e,!0),document.addEventListener("click",e,!0)):document.addEventListener("pointerdown",e,!0),a.__outside=e}if(a.__skelObs&&(a.__skelObs.disconnect(),a.__skelObs=null),o){const t=new MutationObserver(n=>{for(const s of n)if(s.addedNodes&&s.addedNodes.length){requestAnimationFrame(()=>h(()=>e(a))),t.disconnect(),a.__skelObs=null;break}});t.observe(o,{childList:!0}),a.__skelObs=t}requestAnimationFrame(()=>{h(()=>{a.__filled||function(e){if(e.__filled||!e.__open)return;const t=e.querySelector("ul");if(!t)return;const n=y(),s=document.createElement("template");s.innerHTML=`${n}`;const i=Array.from(s.content.firstChild.childNodes);if(i.forEach(e=>{1===e.nodeType&&e.matches("li[data-value]")&&!e.dataset.key&&(e.dataset.key=(e.textContent||"").toLowerCase())}),f){const e=i.splice(0,30),n=document.createDocumentFragment();e.forEach(e=>n.appendChild(e)),t.appendChild(n)}const a=f?60:200;let o=0;requestAnimationFrame(function n(){if(!e.__open)return;const s=Math.min(o+a,i.length);if(o>=s)return void(e.__filled=!0);const l=document.createDocumentFragment();for(;oe(a)),o&&(o.style.display=""),s(a),h(()=>{try{ne(a,n.value)}catch(e){}}),h(()=>{const e=a.querySelector("ul");e&&e.querySelectorAll("li[data-value]").forEach(e=>{e.dataset.key||(e.dataset.key=(e.textContent||"").toLowerCase())})})})})},window.closeLangMenu=function(e){const t=e.querySelector(".lang-menu");t&&t.__open&&(t.__open=!1,t.setAttribute("aria-hidden","true"),t.classList.add("--vis-hide"),h(()=>{if(t.classList.remove("open"),t.__skelObs&&(t.__skelObs.disconnect(),t.__skelObs=null),t.__outside){const e=t.__outside;t.__outside=null,f?(document.removeEventListener("touchstart",e,!0),document.removeEventListener("click",e,!0)):document.removeEventListener("pointerdown",e,!0)}}))},window.toggleLangMenu=function(e,t){_devMode&&console.log("toggleLangMenu");(e.querySelector(".lang-menu")||buildLangMenu(e,t)).__open?closeLangMenu(e):openLangMenu(e,t)}}();const ie=e=>{const t=Number(e);return 1===t?"standard":6===t?"prohd":2===t||3===t||4===t||7===t?"pro":5===t?"studio":""};function ae(n,i,a){_devMode&&console.log(arguments.callee.name);const l={speed:a.speed??1,pitch:a.pitch??0,volume:a.volume??100,style:a.style||"",styledegree:a.styledegree??1,role:a.role||""},r=e(".uiRight .uiInner .uiBox",n);if(r){let e=r.querySelector(".backtolist");if(!e){e=document.createElement("span"),e.className="backtolist",e.title=t("buttons.backToListTitle","backToListTitle");const n=r.querySelector(".name");r.insertBefore(e,n||r.firstChild)}e.textContent=t("buttons.backToList","⇐ backToListTitle")}const d=e(".uiRight .uiInner .uiBox .name",n);if(d){i.mp3;const e=D(i);d.innerHTML=`\n \n ${i.name}\n \n \n `}const u=e(".voice-head",n);u&&!u.__wired&&(u.__wired=!0,u.addEventListener("click",()=>{i&&P(n,i)})),e(".button.save",n)?.addEventListener("click",()=>{i&&P(n,i)}),c.resync();const p=e(".uiRight .uiInner",n);if(!p)return;const v=e('select[name="speed"]',p);if(v){const e=[];for(let t=.1;tf.appendChild(new Option(t||e,e)));const t=e.map(e=>e.value);f.value=l.style&&t.includes(l.style)?l.style:"",h&&(h.style.display="")}else f.value="",h&&(h.style.display="none");y(f,b,S),f.__degWired||(f.addEventListener("change",()=>{y(f,b,S)}),f.__degWired=!0)}y(f,b,S),["speed","tone","volume","style","role"].forEach(t=>{const n=e(`select[name="${t}"]`,p);n&&n.setAttribute("data-custom","1")}),CustomSelectMgr.initIn(p);const w=e(".uiRight .uiInner .uiBox .sh2",n);if(w){let s=w.querySelector(".reset-link");s||(s=document.createElement("button"),s.type="button",s.className="reset-link",s.dataset.action="resetDefaults",w.appendChild(s)),s.textContent=t("buttons.resetDefaults","Reset to defaults");const i=()=>{(e=>{const t=e=>Number.isFinite(+e)?+e:0,n=(e,n)=>Math.abs(t(e)-t(n))e&&!e.__resetWired&&(e.__resetWired=!0),o=e('select[name="speed"]',p);a(o)&&o.addEventListener("change",()=>{i(),c.applyLive(B(n))});const l=e('select[name="tone"]',p);a(l)&&l.addEventListener("change",()=>{i(),c.applyLive(B(n))});const r=e('select[name="volume"]',p);a(r)&&r.addEventListener("change",()=>{i(),c.applyLive(B(n))});const d=e('select[name="style"]',p);a(d)&&d.addEventListener("change",()=>{i(),c.applyLive(B(n))});const u=e('input[name="styledegree"]',p);a(u)&&u.addEventListener("input",()=>{i(),c.applyLive(B(n))});const v=e('select[name="role"]',p);a(v)&&v.addEventListener("change",()=>{i(),c.applyLive(B(n))})}_(n,"price",function(e){let n="—",s="—";null!=e&&("number"==typeof e||"string"==typeof e?n=String(e):"object"==typeof e&&(n=e.perK??e.per1k??e.per1000??e.per??e.base??e.price??n,s=e.limits??e.limit??e.cap??e.subscription??e.extra??s));const i=t("pricing.perThousand","perThousand");return t("pricing.limits","limits"),`${t("pricing.caption","pricing")}\n \n ${n}\n ${i}\n `}(i?._base?.price??i?.price),`${t("tooltips.pricing","tooltips")}`,null);const L=t("titles.supported","supported:"),E=function(e){const t=window.SSML_TAGS?.[e],n=t?.tags;if(!n||"object"!=typeof n||!Object.keys(n).length)return"—";const s=["sub","say-as","break","prosody","emphasis","phoneme"],i=e=>String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,"""),a=(e,t)=>{const n=t&&t.attrs?Object.keys(t.attrs):[];if(!n.length)return[];const s={sub:["alias"],"say-as":["interpret-as"],break:["time","strength"],prosody:["volume","contour","rate","pitch"],emphasis:["level"],phoneme:["alphabet","ph"]}[e]||[],i=[];for(const e of s)n.includes(e)&&i.push(e);const a=n.filter(e=>!i.includes(e)).sort();return i.concat(a)},o=Object.keys(n),l=[...s.filter(e=>o.includes(e)),...o.filter(e=>!s.includes(e)).sort()];let r='';for(const e of l){const t=a(e,n[e]);if(r+='',r+=`<${i(e)}>`,r+='',t.length)for(const e of t)r+=`${i(e)}`;r+="",r+=""}return r+="",r}(i.api);_(n,"support",L,E,null);const k=t("tooltips.intonation","intonation"),A=t("tooltips.smartcache","smartcache"),x=!!window.SSML_TAGS?.[i.api]?.tags&&Object.keys(window.SSML_TAGS[i.api].tags).length>0,C=t("titles.intonation","intonation"),M=_(n,"intonation",C,`${t("labels.intonationDesc","intonationDesc")}`,null,k);M&&M.classList.toggle("yes",(e=>{const t=String(e?.api||"").toLowerCase(),n=Number(e?.api_id);return"microsoft"===t||2===n})(i));const q=t("titles.smartcache","Smart cache"),N=_(n,"smartcache",q,`${t("labels.smartcacheDesc","smartcacheDesc")}`,null,A);N&&N.classList.add("yes");const $=n.querySelector(".uiRight .uiInner .uiBox.uiBox-support");$&&$.classList.toggle("yes",x)}function oe(e,t){const s=se(e);if(!s)return;n(".active",s).forEach(e=>e.classList.remove("active"));const i=s.querySelector(`li[data-voice-id="${t}"]`);i&&i.classList.add("active")}function le(t){const n=e(".sortBox.gender .cheched input",t)?.value||"All",s=e(".sortBox.proshnost .cheched input",t)?.value||"All",i=e(".sortBox.styles .cheched input",t)?.value||"all",a=e(".sortBox.roles .cheched input",t)?.value||"all";return{gender:n.toLowerCase(),premium:s.toLowerCase(),styles:i.toLowerCase(),roles:a.toLowerCase(),intonation:(e(".sortBox.intonation .cheched input",t)?.value||"all").toLowerCase(),multilang:(e(".sortBox.multilang .cheched input",t)?.value||"all").toLowerCase()}}function re(e,t,n){return`${t}#${n}#${function(e){const t=le(e);return JSON.stringify([t.gender,t.premium,t.styles,t.roles,t.intonation,t.multilang])}(e)}`}function ce(e,t){_devMode&&console.log(arguments.callee.name);const n=e=>{const t=Number(e);return 1===t?"standard":6===t?"prohd":5===t?"studio":2===t||3===t||4===t||7===t?"pro":""},s=new Set(["30","31"]),i=new Set(["40","41"]);return e.filter(e=>{if("studio"===n(e.type))return!1;const a=String(e.sex??"");let o=!0;switch(t.gender){case"male":o="1"===a;break;case"female":o="0"===a;break;case"neutral":o="2"===a;break;case"kids":o=s.has(a);break;case"old":o=i.has(a)}let l=!0;const r=n(e.type);"standard"===t.premium?l="standard"===r:"pro"===t.premium?l="pro"===r:"prohd"===t.premium&&(l="prohd"===r);let c=!0;"with"===t.styles&&(c=j(e).length>0);let d=!0;"with"===t.roles&&(d=R(e).length>0);let u=!0;if("with"===t.intonation){const t=String(e.api||"").toLowerCase(),n=Number(e.api_id);u="microsoft"===t||2===n}let p=!0;return"with"===t.multilang&&(p=1===Number(e.ml)||!0===e.ml||"1"===e.ml),o&&l&&c&&d&&u&&p})}function de(e){const t=e.dataset||{};return{speed:Number.isFinite(+t.speed)?+t.speed:1,pitch:Number.isFinite(+t.pitch)?+t.pitch:0,volume:Number.isFinite(+t.volume)?+t.volume:100,style:t.style||"",styledegree:Number.isFinite(+t.styledegree)?+t.styledegree:1,role:t.role||""}}function ue(n,s,i){const o=n.dataset.lang||X(n),l=i.lang||o,r=n.dataset.voiceId||"",c=i.voice??i.voiceName??"";if("speaker_100"===n.id&&l&&o&&l!==o){const e=document.getElementById("mytextarea");if(e){window.langArrText=window.langArrText||{},window.langArrText[o]=e.value;let t=window.langArrText[l];if(void 0===t){const e=window.VOICES_BY_LANG&&window.VOICES_BY_LANG[l]?window.VOICES_BY_LANG[l]:null;t=e&&"string"==typeof e.text?e.text:"",window.langArrText[l]=t}e.value=String(t),Array.isArray(window.editDataStack)&&window.editDataStack.push(e.value),"function"==typeof setDir&&setDir(l,e)}}const d=String(r)!==String(i.voiceId)||String(o)!==String(i.lang);if(e(".uiName span",n)?.replaceChildren(document.createTextNode(c)),d){const t=V(n,i)||null;t&&null!=t.sex&&(n.dataset.sex=String(t.sex)),t&&null!=t.pro&&(n.dataset.pro=t.pro?"1":"0"),t&&null!=t.type&&(n.dataset.type=String(t.type));const s={name:i.voice||i.voiceName||"",sex:t&&null!=t.sex?t.sex:n.dataset.sex??"",pro:t&&null!=t.pro?!!t.pro:"1"===n.dataset.pro,type:t&&null!=t.type?t.type:n.dataset.type||""},a=e(".uiName",n);a&&function(e,t){if(!e)return;const n=e.dataset.iconClass||"";n&&e.classList.remove(n);const s=D(t);s?(e.classList.add(s),e.dataset.iconClass=s):delete e.dataset.iconClass}(a,s)}const u=e(".uiFlag",n);if(u){u.dataset.value=i.lang;const t=U(i.lang);e(".text",u)?.replaceChildren(document.createTextNode(t?.lang||i.lang))}const p=function(e,t,n){const s=String(t||"");if(!s)return"";const i={lang:e?.dataset?.lang||X(e),voiceId:e?.dataset?.voiceId||"",voice:e?.dataset?.voice||""},a=j(n||V(e,i)||{}).find(e=>String(e.value)===s);return a?a.label||a.value:s}(n,i.style);let v=i.styleName||i.stylename||p||"";i.style||(v="");const m=N(n);if(m){q(m,"speed",t("labels.speedShort","speed"),(g=i.speed,(Math.round(10*g)/10).toFixed(1))),q(m,"pitch",t("labels.pitchShort","pitch"),a(i.pitch)),q(m,"volume",t("labels.volumeShort","vol"),`${i.volume}%`),n.dataset.stylename=v,q(m,"style",t("labels.styles","style"),function(e,t){const n=parseFloat(t),s=!Number.isFinite(n)||Math.abs(n-1)0:null;m.dataset.hasDegree="0",!0===s?(m.dataset.hasStyle="1","microsoft"===String(e.api).toLowerCase()&&(m.dataset.hasDegree="1")):!1===s&&(m.dataset.hasStyle="0")}var g;n.dataset.lang=i.lang,n.dataset.voiceId=i.voiceId,n.dataset.voice=c,n.dataset.api=i.api||"",n.dataset.apiId=i.apiId||"",n.dataset.speed=i.speed,n.dataset.pitch=i.pitch,n.dataset.volume=i.volume,n.dataset.style=i.style||"",n.dataset.stylename=v,n.dataset.styledegree=i.styledegree??"",n.dataset.role=i.role||"",n.dataset.price=i.price??"";let y=n.querySelector('input[type="hidden"][name$="_json"]');y||(y=document.createElement("input"),y.type="hidden",y.name=`${n.id}_json`,n.appendChild(y));const f={...i,voice:c,voiceId:i.voiceId,styleName:v};delete f.voiceName,y.value=JSON.stringify(f),"speaker_100"===n.id&&H(),n.dispatchEvent(new CustomEvent("speaker:changed",{detail:f})),s&&pe(s)}function pe(e){if(!e)return;if(e.__closing)return;e.__closing=!0,ye.cancel(e),e.classList.remove("open"),e.setAttribute("aria-hidden","true"),e.hidden=!0,document.body.classList.remove("overlayed");try{c.stopInside(e)}catch(e){}try{stopAllInlinePlayers?.(e)}catch(e){}(window.requestIdleCallback||(e=>setTimeout(e,0)))(()=>{const t=e.querySelector(".uiBody");t&&t.classList.remove("slider2");const n=e.querySelector(".uiVlist .voices-full");n&&n.querySelectorAll(".active").forEach(e=>e.classList.remove("active"));const s=e.querySelector(".uiVlist .voices-fav");s&&s.querySelectorAll(".active").forEach(e=>e.classList.remove("active")),e.__closing=!1})}function ve(s){console.log(arguments.callee.name);const a=e(".bigVoicesWindow",s);if(!a)return;const o=J(s);o.lang||X(s);let p=null,m=null,g={speed:1,pitch:0,volume:100,style:"",styledegree:1,role:""};g={...g,...void 0!==o.speed?{speed:o.speed}:{},...void 0!==o.pitch?{pitch:o.pitch}:{},...void 0!==o.volume?{volume:o.volume}:{},...void 0!==o.style?{style:o.style}:{},...void 0!==o.styledegree?{styledegree:o.styledegree}:{},...void 0!==o.role?{role:o.role}:{}};const y=(e,t,n=1e-6)=>{const s=+e,i=+t;return Number.isFinite(s)&&Number.isFinite(i)?Math.abs(s-i)null==e?"":String(e);async function b(n,s=null){const i=(await Z.voicesByLang(n)).voices||[];_e(a,i),fe(a,i);let o=ce(i,le(a));o=C(o,x(a)),he(a,o),Se(a,o,s,M(a));let l=s&&o.find(e=>String(e.id)===String(s))?o.find(e=>String(e.id)===String(s)):o[0];if(l){p={...l,lang:n},oe(a,l.id);const e={...g},t=j(l).map(e=>e.value);e.style&&!t.includes(e.style)&&(e.style="");{const t=R(l);e.role&&t.includes(e.role)||(e.role="")}"microsoft"!==l.api&&(e.styledegree=1),g=e,ae(a,l,g)}const r=e(".voicesTitle",a);if(r){U(n);r.textContent=`${t("titles.fullVoicesList","Full Voices List")}:`}a.__contentReady=!0}function _(t,s=!1){const i=e(".voice-search",t);i&&!s&&(i.value=""),n(".sortBox",t).forEach(e=>{const t=e.querySelector('input[value="All"], input[value="all"]');t&&(n(".sortBox li",e).forEach(e=>e.classList.remove("cheched")),t.closest("li")?.classList.add("cheched"))})}function w(e=null){console.log("rerenderWithCurrentFilters");const t=O(a,s),n=Y[t];if(!n||!Array.isArray(n.voices))return void b(t,e);const i=n.voices||[];let o=ce(i,le(a));o=C(o,x(a)),function(e,t,n){fe(e,Array.isArray(t)?t:[]),Array.isArray(n)&&n.length>0&&he(e,n)}(a,i,o),Se(a,o,e,M(a));let l=e&&o.find(t=>String(t.id)===String(e))?o.find(t=>String(t.id)===String(e)):o[0];if(l){const e=O(a,s);p={...l,lang:e},oe(a,l.id);const t={...g},n=j(l).map(e=>e.value);t.style&&!n.includes(t.style)&&(t.style="");{const e=R(l);t.role&&e.includes(t.role)||(t.role="")}"microsoft"!==l.api&&(t.styledegree=1),g=t,ae(a,l,g)}a.__contentReady=!0}a.addEventListener("click",e=>{e.target.closest('[data-action="resetFilters"]')&&(_(a),E(p?.id)),e.target.closest('[data-action="resetFiltersOnly"]')&&(_(a,!0),E(p?.id))}),a.addEventListener("click",e=>{e.target.closest('[data-action="resetDefaults"]')&&(g={speed:1,pitch:0,volume:100,style:"",styledegree:1,role:""},ae(a,p||{},g),c.applyLive(B(a)))});let L=0;function E(e=p?.id){L&&cancelAnimationFrame(L),L=requestAnimationFrame(()=>{L=0,w(e)})}(e(".speaker_button",s)||s).addEventListener("click",async o=>{if(o.target.closest(".uiVoiceButts"))return;if(o.target.closest(".uiMarkers"))return;if(o.target.closest(".quick-popover"))return;a.__hasSkeleton||(!function(n){_devMode&&console.log(arguments.callee.name);const s=e(".inList",n)||n;e('select[name="lang"]',s)&&e(".uiVlist",s)&&e(".uiRight .uiInner",s)||(s.innerHTML=`\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ${t("filters.gender.all","All")}\n ${t("filters.gender.male","Male")} \n ${t("filters.gender.female","Female")} \n ${t("filters.gender.kids","Kids")}\n ${t("filters.gender.old","Old")} \n ${t("filters.gender.neutral","Neutral")}\n \n \n \n \n \n ${t("filters.premium.all","All")}\n ${t("filters.premium.standard","Standard")}\n \n \n ${t("filters.premium.pro","Pro")}\n \n ${t("filters.premium.prohd","Pro HD")}\n \n \n \n \n ${t("filters.gender.all","All")}\n ${t("filters.styles.with","With styles")} \n \n \n \n \n ${t("filters.intonation.all","All")}\n ${t("filters.intonation.with","intonation")} \n \n \n \n \n ${t("filters.intonation.all","All")}\n ${t("filters.multy.with","multilang")} \n \n \n \n ${t("filters.acceptall","accept")}\n \n \n ${t("buttons.resetFilters","Reset filters")}\n \n \n \n\n \n \n \n \n \n 0\n \n \n ${t("labels.favorite","Favorite")} 0\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n
  • [H2] ${t("titles.settings","Settings:")}
  • [H3] Enceladus
  • [H3] Noreen
  • [H3] Achernar
  • [H3] Christopher
  • [H3] Sara
  • [H3] Truman
  • [H3] Aoede
  • [H3] Pulcherrima
  • [H3] Type or paste your text
  • [H3] Choose a voice & language
  • [H3] Convert Text to MP3, WAV, or FLAC
  • [H3] Need an AI voiceover — without a voice actor
  • [H3] Teach at scale — without being in every classroom
  • [H3] People call — and nobody picks up
  • [H3] Visitors stand before the exhibit — and don't know what they're looking at
  • [H3] Workers on the floor don't read safety briefs
  • [H3] Selling abroad — without hiring a local narrator
  • [H3] Smart Cache — re-generate for free
  • [H3] Upload a book, get a file per chapter
  • [H3] Complete audio production in one tab
  • [H3] Multiple speakers, one file
  • [H3] Control every pause, stress, and pitch
  • [H3] Audition 5,000+ voices before spending a character
  • [H3] SRT / VTT to Synced Audio
  • [H3] SpeechGen vs Typical TTS Service
  • [H3] Standard
  • [H3] Pro
  • [H3] HD
  • [H3] "+setArr.soundins_sel_sound+"
  • [H3] ${$(t)}
  • [H4] '+setArr.soundins_cats+'

Afbeeldingen

We vonden 72 afbeeldingen in de pagina.

59 alt attributen ontbreken. Voeg alternatieve text toe zodat zoekmachines beter kunnen beoordelen wat het onderwerp van de afbeeldingen is.

Text/HTML Ratio

Ratio : 8%

De ratio van text tot HTML code is below 15 procent, dit betekent dat uw pagina waarschijnlijk meer tekst nodig heeft.

Flash

Perfect, geen Flash content gevonden in uw website.

Iframe

Perfect, er zijn geen Iframes in uw website aangetroffen.

Herschreven URL

Perfect. Uw links zien er vriendelijk uit!

Underscores in de URLs

Perfect! Geen underscores gevonden in uw URLs.

In-page links

We vonden een totaal van 27 links inclusie 0 link(s) naar bestanden

Ankertekst Type samenstelling
Skip to editor Intern doFollow
Text to Speech Intern doFollow
AI Voices Intern doFollow
Subtitles to Audio Intern doFollow
API Intern doFollow
Audio to Text Intern doFollow
YT Transcribe Intern doFollow
Video to Text Intern doFollow
FAQ Intern doFollow
Pricing Intern doFollow
Log in Intern doFollow
History Intern doFollow
Saved Audios Intern doFollow
Scary & Horror Intern doFollow
Child TTS Intern doFollow
Brian Voice Intern doFollow
Speechgen_alex Extern doFollow
Docx to Speech Intern doFollow
Pdf to Speech Intern doFollow
Blog Intern doFollow
Сontact Intern doFollow
Telegram Group Extern noFollow
Telegram Chat Extern noFollow
GitHub Extern noFollow
Privacy Intern doFollow
DMCA Intern doFollow
reCAPTCHA Extern doFollow

SEO Keywords

Keywords Cloud

characters voices audio speechgen free speech sec file text voice

Keywords Consistentie

Keyword Content Title Keywords Description Headings
text 28
sec 20
audio 18
speech 17
voice 16

Bruikbaarheid

Url

Domein : speechgen.io

Lengte : 12

Favicon

Goed, uw website heeft een favicon.

Printbaarheid

Geweldig. We vonden Print-Vriendelijke CSS.

Taal

Goed. Uw ingestelde taal is en.

Dublin Core

Deze pagina maakt geen gebruik van Dublin Core.

Document

Doctype

HTML 5

Encoding

Perfect. Uw ingestelde Charset is UTF-8.

W3C Validiteit

Fouten : 0

Waarschuwingen : 0

E-mail Privacy

Waarschuwing! Er is op zijn minst 1 e-mailadres gevonden als platte tekst. (voorkom spam!). Gebruik deze gratis antispam protector om e-mailadressen te verbergen voor spammers.

Niet ondersteunde HTML

Geweldig! We hebben geen niet meer ondersteunde HTMl tags gevonden in uw HTML.

Speed Tips

Geweldig, uw website heeft geen tabellen in een tabel.
Jammer, uw website maakt gebruik van inline styles.
Geweldig, uw website heeft een correct aantal CSS bestanden.
Perfect, uw website heeft een correct aantal JavaScript bestanden.
Perfect, uw website haalt voordeel uit gzip.

Mobile

Mobile Optimization

Apple Icon
Meta Viewport Tag
Flash content

Optimalisatie

XML Sitemap

Geweldig, uw website heeft een XML sitemap.

https://speechgen.io/index.php?r=site/sitemap

Robots.txt

https://speechgen.io/robots.txt

Geweldig uw website heeft een robots.txt bestand.

Analytics

Ontbrekend

We hadden niet op te sporen van een analytics tool op deze website geplaatst.

Web Analytics laat u toe de bezoekersactiviteit op uw website te meten. U zou minstens 1 Analytics tool geïnstalleerd moeten hebben en een extra tool voor de bevestiging van de resultaten.

PageSpeed Insights


Device
Categorieën

Free SEO Testing Tool

Website review is een gratis tool waarmee u eenvoudig uw website kunt analyseren