{"id":18237,"date":"2020-03-12T06:21:33","date_gmt":"2020-03-12T06:21:33","guid":{"rendered":"https:\/\/radiojingles24.com\/?post_type=product&#038;p=18237"},"modified":"2026-09-08T10:33:56","modified_gmt":"2026-09-08T10:33:56","slug":"spoken-audio","status":"publish","type":"product","link":"https:\/\/radiojingles24.com\/de\/produkt\/spoken-audio\/","title":{"rendered":"Gesprochenes Audio"},"content":{"rendered":"\n\t\t<div id=\"fws_6aa2464fad63a\"  data-midnight=\"dark\"  data-bg-mobile-hidden=\"\" class=\"wpb_row vc_row-fluid vc_row top-level standard_section   \"  style=\"padding-top: 0px; padding-bottom: 0px; \"><div class=\"row-bg-wrap\" data-bg-animation=\"none\"><div class=\"inner-wrap \"><div class=\"row-bg    \"  style=\"\"><\/div><\/div><div class=\"row-bg-overlay\" ><\/div><\/div><div class=\"col span_12 dark left\">\n\t<div  class=\"vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding\"  data-t-w-inherits=\"default\" data-border-radius=\"none\" data-shadow=\"none\" data-border-animation=\"\" data-border-animation-delay=\"\" data-border-width=\"none\" data-border-style=\"solid\" data-border-color=\"\" data-bg-cover=\"\" data-padding-pos=\"all\" data-has-bg-color=\"false\" data-bg-color=\"\" data-bg-opacity=\"1\" data-hover-bg=\"\" data-hover-bg-opacity=\"1\" data-animation=\"\" data-delay=\"0\"><div class=\"column-bg-overlay\"><\/div>\n\t\t<div class=\"vc_column-inner\">\n\t\t\t<div class=\"wpb_wrapper\">\n\t\t\t\t\n\t<div class=\"wpb_raw_code wpb_content_element wpb_raw_html\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<!--\n  RADIO JINGLES 24 \u2014 SPOKEN AUDIO WIZARD  v1.0\n  The everyday a-la-carte spoken cut. Paste into the Spoken Audio product\n  (postid 18237) as a Raw HTML \/ Text block.\n  Requires the \"RJ24 Spoken Audio\" plugin active (provides\n  window.RJ24_SPOKEN_CFG + the rj24_add_spoken AJAX endpoint).\n\n  Pricing (server-authoritative; wizard shows the same figure live):\n    Voice base:  Paul \u00a35  \/  any other voice \u00a312\n    Word overflow: first 25 words included; +\u00a35 per extra block of 25\n                   (26-50 = +\u00a35, 51-75 = +\u00a310, ...)\n    Production (each independent, flat):\n      Music +\u00a36, Vocal FX +\u00a36, Sound FX +\u00a36  (none = delivered dry)\n    Format MP3\/WAVE\/AIFF: no price effect.\n\n  No upsell bump in v1 (ships plain; a bump can be added later).\n\n  Sticky footer + toast are UN-SCOPED (#rjs-* IDs) and portaled to <body>\n  so position:fixed escapes the theme's transformed .ocm-effect-wrap.\n-->\n<style>\n#rj-spoken-wizard{\n  --fb-pink:#EC4899; --fb-pink-dark:#DB2777; --fb-pink-light:#FDF2F8;\n  --fb-ink:#1E293B; --fb-text:#475569; --fb-muted:#94A3B8; --fb-line:#E2E8F0;\n  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;\n  color:var(--fb-ink); max-width:1000px; margin:0 auto; padding:0 0 160px;\n  -webkit-font-smoothing:antialiased;\n}\n#rj-spoken-wizard *{ box-sizing:border-box; }\n#rj-spoken-wizard .rjsw-step{\n  background:#fff; border:1px solid var(--fb-line); border-radius:16px;\n  padding:24px; margin:0 0 18px;\n}\n#rj-spoken-wizard .rjsw-h{ font-size:20px; font-weight:800; color:var(--fb-ink); margin:0 0 6px; letter-spacing:-0.01em; }\n#rj-spoken-wizard .rjsw-intro{ font-size:14px; color:var(--fb-text); line-height:1.6; margin:0 0 16px; }\n#rj-spoken-wizard .rjsw-intro b{ color:var(--fb-ink); }\n\n#rj-spoken-wizard .rjsw-voices{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }\n#rj-spoken-wizard .rjsw-voice{\n  background:#fff; border:2px solid var(--fb-line); border-radius:14px;\n  padding:14px 8px; text-align:center; cursor:pointer;\n  transition:border-color .15s, transform .12s, box-shadow .15s;\n}\n#rj-spoken-wizard .rjsw-voice:hover{ border-color:var(--fb-pink); transform:translateY(-2px); box-shadow:0 10px 24px rgba(236,72,153,.14); }\n#rj-spoken-wizard .rjsw-voice.selected{ border-color:var(--fb-pink); background:var(--fb-pink-light); box-shadow:0 6px 18px rgba(236,72,153,.18); }\n#rj-spoken-wizard .rjsw-voice-avatar{ position:relative; width:72px; height:72px; margin:0 auto 8px; }\n#rj-spoken-wizard .rjsw-voice-avatar img{ width:72px; height:72px; border-radius:50%; object-fit:cover; border:2px solid #fff; box-shadow:0 2px 8px rgba(0,0,0,.1); }\n#rj-spoken-wizard .rjsw-voice-play{\n  position:absolute; bottom:-2px; right:-2px; width:28px; height:28px; border-radius:50%;\n  background:var(--fb-pink); color:#fff; border:3px solid #fff; cursor:pointer;\n  font-size:11px; line-height:1; display:flex; align-items:center; justify-content:center;\n}\n#rj-spoken-wizard .rjsw-voice-play:hover{ background:var(--fb-pink-dark); }\n#rj-spoken-wizard .rjsw-voice-name{ font-size:13px; font-weight:700; color:var(--fb-ink); }\n\n#rj-spoken-wizard .rjsw-field{ margin:0 0 16px; }\n#rj-spoken-wizard .rjsw-label{ display:block; font-size:14px; font-weight:700; color:var(--fb-ink); margin:0 0 6px; }\n#rj-spoken-wizard .rjsw-textarea{\n  width:100%; border:2px solid var(--fb-line); border-radius:12px; padding:12px 14px;\n  font-family:inherit; font-size:14px; line-height:1.5; color:var(--fb-ink); background:#fff; resize:vertical;\n}\n#rj-spoken-wizard .rjsw-textarea:focus{ outline:none; border-color:var(--fb-pink); box-shadow:0 0 0 4px rgba(236,72,153,.1); }\n#rj-spoken-wizard .rjsw-counter{ margin-top:8px; font-size:13px; font-weight:700; color:var(--fb-text); }\n#rj-spoken-wizard .rjsw-counter .rjsw-tiernote{ color:var(--fb-muted); font-weight:600; }\n#rj-spoken-wizard .rjsw-counter.over{ color:var(--fb-pink-dark); }\n\n#rj-spoken-wizard .rjsw-prod{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }\n#rj-spoken-wizard .rjsw-prod-card{\n  background:#fff; border:2px solid var(--fb-line); border-radius:14px;\n  padding:16px; cursor:pointer; transition:border-color .15s, background .15s, box-shadow .15s;\n}\n#rj-spoken-wizard .rjsw-prod-card:hover{ border-color:var(--fb-pink); }\n#rj-spoken-wizard .rjsw-prod-card.active{ border-color:var(--fb-pink); background:var(--fb-pink-light); box-shadow:0 6px 18px rgba(236,72,153,.15); }\n#rj-spoken-wizard .rjsw-prod-top{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin:0 0 8px; }\n#rj-spoken-wizard .rjsw-prod-name{ font-size:15px; font-weight:800; color:var(--fb-ink); }\n#rj-spoken-wizard .rjsw-prod-fee{ font-size:13px; font-weight:800; color:var(--fb-pink-dark); }\n#rj-spoken-wizard .rjsw-prod-check{\n  width:22px; height:22px; border-radius:6px; border:2px solid var(--fb-line);\n  display:flex; align-items:center; justify-content:center; color:#fff; font-size:13px; line-height:1; flex:none;\n}\n#rj-spoken-wizard .rjsw-prod-card.active .rjsw-prod-check{ background:var(--fb-pink); border-color:var(--fb-pink); }\n#rj-spoken-wizard .rjsw-prod-card audio{ width:100%; height:34px; margin-top:8px; }\n\n#rj-spoken-wizard .rjsw-pills{ display:flex; flex-wrap:wrap; gap:10px; }\n#rj-spoken-wizard .rjsw-pill{\n  border:2px solid var(--fb-line); border-radius:999px; padding:10px 22px;\n  background:#fff; cursor:pointer; font-family:inherit; font-weight:700; font-size:14px; color:var(--fb-ink);\n  transition:border-color .15s, background .15s, color .15s;\n}\n#rj-spoken-wizard .rjsw-pill:hover{ border-color:var(--fb-pink); }\n#rj-spoken-wizard .rjsw-pill.active{ border-color:var(--fb-pink); background:var(--fb-pink-light); color:var(--fb-pink-dark); }\n\n\/* Sticky footer \/ toast \u2014 UN-SCOPED, portaled to body *\/\n#rjs-footer{\n  --fb-pink:#EC4899; --fb-pink-dark:#DB2777; --fb-muted:#94A3B8; --fb-line:#E2E8F0;\n  position:fixed; left:0; right:0; bottom:0; z-index:99999;\n  background:#fff; border-top:1px solid var(--fb-line); box-shadow:0 -4px 20px rgba(0,0,0,.08);\n  display:flex; align-items:center; justify-content:space-between; gap:16px;\n  padding:14px 24px; box-sizing:border-box;\n  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;\n}\n#rjs-footer *{ box-sizing:border-box; }\n#rjs-footer .rjsw-price{ display:flex; flex-direction:column; line-height:1.1; }\n#rjs-footer .rjsw-price-label{ font-size:12px; color:var(--fb-muted); font-weight:600; text-transform:uppercase; letter-spacing:.05em; }\n#rjs-footer .rjsw-price-val{ font-size:26px; font-weight:800; color:var(--fb-pink-dark); }\n#rjs-footer .rjsw-btn.primary{\n  background:var(--fb-pink); color:#fff; border:none; border-radius:999px;\n  font-weight:800; font-size:16px; padding:14px 34px; cursor:pointer;\n  box-shadow:0 6px 18px rgba(236,72,153,.32); transition:background .15s, transform .15s; font-family:inherit;\n}\n#rjs-footer .rjsw-btn.primary:hover{ background:var(--fb-pink-dark); transform:translateY(-1px); }\n#rjs-footer .rjsw-btn.primary:disabled{ background:var(--fb-muted); box-shadow:none; cursor:not-allowed; transform:none; }\n\n#rjs-toast{\n  --fb-pink:#EC4899;\n  position:fixed; left:50%; transform:translateX(-50%); bottom:90px; z-index:100001;\n  background:var(--fb-pink); color:#fff; font-weight:700; font-size:14px;\n  padding:14px 28px; border-radius:999px; box-shadow:0 10px 30px rgba(236,72,153,.5);\n  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;\n}\n#rjs-toast.success{ background:#10B981; box-shadow:0 10px 30px rgba(16,185,129,.5); }\n#rjs-toast.error{ background:#DC2626; box-shadow:0 10px 30px rgba(220,38,38,.5); }\n\n@media (max-width:900px){ #rj-spoken-wizard .rjsw-voices{ grid-template-columns:repeat(3,1fr); } }\n@media (max-width:560px){\n  #rj-spoken-wizard .rjsw-voices{ grid-template-columns:repeat(2,1fr); }\n  #rj-spoken-wizard .rjsw-prod{ grid-template-columns:1fr; }\n}\n\n\/* RJ24-EDIT (Nov 2026): hero + trust panel + GBP note *\/\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Anton&display=swap');\n#rj-spoken-wizard .rjs-hero{\n  position:relative; border-radius:20px; overflow:hidden; isolation:isolate;\n  text-align:center; padding:36px 28px 30px; margin:0 0 18px;\n  background-color:#160F1F;\n  background-image:\n    radial-gradient(120% 140% at 12% 18%, rgba(236,72,153,0.55) 0%, rgba(236,72,153,0) 55%),\n    radial-gradient(120% 140% at 92% 10%, rgba(245,158,11,0.30) 0%, rgba(245,158,11,0) 50%),\n    linear-gradient(135deg,#241733 0%,#0F0A18 100%);\n}\n#rj-spoken-wizard .rjs-hero::after{\n  content:\"\"; position:absolute; inset:0; z-index:-1;\n  background-image:radial-gradient(rgba(255,255,255,0.05) 1px,transparent 1px);\n  background-size:22px 22px; opacity:.5;\n}\n#rj-spoken-wizard .rjs-hero-eyebrow{\n  display:inline-block; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.25);\n  color:#fff; padding:6px 14px; border-radius:999px; font-size:11px; font-weight:800;\n  letter-spacing:.1em; text-transform:uppercase; margin-bottom:14px;\n}\n#rj-spoken-wizard .rjs-hero-h{\n  font-family:'Anton',sans-serif; font-size:clamp(30px,5vw,52px); line-height:.95;\n  color:#fff; margin:0; text-transform:uppercase; text-shadow:0 4px 30px rgba(236,72,153,.4);\n}\n#rj-spoken-wizard .rjs-pop{\n  background:linear-gradient(180deg,#FBCFE8 0%,#EC4899 60%,#DB2777 100%);\n  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;\n}\n#rj-spoken-wizard .rjs-hero-sub{\n  color:rgba(255,255,255,0.82); font-size:14px; max-width:520px; margin:12px auto 0; line-height:1.55;\n}\n\n#rj-spoken-wizard .rjs-trust{\n  display:grid; grid-template-columns:repeat(5,1fr); gap:10px;\n  margin:0 0 16px; padding:14px;\n  background:#fff; border:1px solid var(--fb-line); border-radius:14px;\n}\n#rj-spoken-wizard .rjs-trust-item{\n  display:flex; flex-direction:column; align-items:center; text-align:center;\n  padding:8px 6px; gap:4px;\n}\n#rj-spoken-wizard .rjs-trust-ico{ font-size:22px; line-height:1; }\n#rj-spoken-wizard .rjs-trust-h{ font-size:12.5px; font-weight:800; color:var(--fb-ink); line-height:1.25; }\n#rj-spoken-wizard .rjs-trust-d{ font-size:11px; color:var(--fb-text); line-height:1.4; }\n@media (max-width:880px){ #rj-spoken-wizard .rjs-trust{ grid-template-columns:repeat(2,1fr); } }\n@media (max-width:480px){ #rj-spoken-wizard .rjs-trust{ grid-template-columns:1fr; } }\n\n#rj-spoken-wizard .rjs-gbp{\n  display:flex; align-items:center; gap:10px;\n  background:#FBF7F2; border:1px solid #F3E8DD; border-left:3px solid var(--fb-pink);\n  border-radius:10px; padding:10px 16px; margin:0 auto 20px;\n  max-width:560px; font-size:12.5px; line-height:1.5; color:var(--fb-text);\n}\n#rj-spoken-wizard .rjs-gbp-ico{ font-size:15px; flex-shrink:0; }\n#rj-spoken-wizard .rjs-gbp-text strong{ color:var(--fb-ink); font-weight:700; }\n\n\/* Quiet cross-sell under the GBP note *\/\n#rj-spoken-wizard .rjs-more{\n  display:flex; align-items:center; gap:10px; flex-wrap:wrap;\n  max-width:560px; margin:-12px auto 20px; padding:9px 16px;\n  background:#FDF2F8; border:1px solid #FBCFE8; border-radius:10px;\n  font-size:12.5px; line-height:1.5; color:var(--fb-text);\n  text-decoration:none !important; transition:border-color .15s, background .15s;\n}\n#rj-spoken-wizard .rjs-more:hover{ border-color:var(--fb-pink); background:#FCE7F3; }\n#rj-spoken-wizard .rjs-more b{ color:var(--fb-ink); font-weight:800; }\n#rj-spoken-wizard .rjs-more-ico{ color:var(--fb-pink-dark); font-size:13px; flex-shrink:0; }\n#rj-spoken-wizard .rjs-more-go{ margin-left:auto; color:var(--fb-pink-dark); font-weight:800; white-space:nowrap; }\n@media (max-width:520px){ #rj-spoken-wizard .rjs-more-go{ margin-left:0; } }\n\/* \/cross-sell *\/\n\/* \/RJ24-EDIT *\/\n<\/style>\n\n<div class=\"rjsw\" id=\"rj-spoken-wizard\">\n\n  <!-- RJ24-EDIT (Nov 2026): hero + trust panel + GBP note -->\n  <div class=\"rjs-hero\">\n    <div class=\"rjs-hero-eyebrow\">\ud83c\udfa4 Voiced by real humans &middot; delivered in 24h<\/div>\n    <h1 class=\"rjs-hero-h\">A studio voiceover<br><span class=\"rjs-pop\">in your inbox tomorrow.<\/span><\/h1>\n    <p class=\"rjs-hero-sub\">Pick a voice, type your script, pick optional production \u2014 and a real human voiceover artist will record, edit and master it in our Leeds studio. Yours within 24 hours, royalty-free forever.<\/p>\n  <\/div>\n\n  <!-- Quiet cross-sell, deliberately small and directly under the currency\n       note rather than a banner above the wizard. Someone on this page has\n       already decided to buy a voiceover; this is a nudge, not a competing\n       offer, so it should not outrank the thing they came for. -->\n  <a class=\"rjs-more\" href=\"https:\/\/radiojingles24.com\/product\/feb-offer\/\">\n    <span class=\"rjs-more-ico\">\u2605<\/span>\n    <span>Need more than one? <b>3 voiceovers for \u00a330<\/b> &mdash; same voice, all produced.<\/span>\n    <span class=\"rjs-more-go\">See the offer &rarr;<\/span>\n  <\/a>\n\n  <div class=\"rjs-trust\">\n    <div class=\"rjs-trust-item\"><span class=\"rjs-trust-ico\">\u23f1<\/span><span class=\"rjs-trust-h\">24-hour delivery<\/span><span class=\"rjs-trust-d\">Most cuts back the same working day<\/span><\/div>\n    <div class=\"rjs-trust-item\"><span class=\"rjs-trust-ico\">\ud83c\udf99\ufe0f<\/span><span class=\"rjs-trust-h\">23 real voices<\/span><span class=\"rjs-trust-d\">UK &amp; US \u2014 including our house voice Paul (\u00a35)<\/span><\/div>\n    <div class=\"rjs-trust-item\"><span class=\"rjs-trust-ico\">\ud83d\udcc2<\/span><span class=\"rjs-trust-h\">MP3, WAV &amp; AIFF<\/span><span class=\"rjs-trust-d\">Studio masters in your format<\/span><\/div>\n    <div class=\"rjs-trust-item\"><span class=\"rjs-trust-ico\">\u221e<\/span><span class=\"rjs-trust-h\">Royalty-free forever<\/span><span class=\"rjs-trust-d\">Yours to broadcast on-air, online or anywhere<\/span><\/div>\n    <div class=\"rjs-trust-item\"><span class=\"rjs-trust-ico\">\ud83c\udf9a<\/span><span class=\"rjs-trust-h\">Production tweaks if needed<\/span><span class=\"rjs-trust-d\">Script is final once recorded &mdash; but we&rsquo;ll re-mix music or FX<\/span><\/div>\n  <\/div>\n\n  <div class=\"rjs-gbp\">\n    <span class=\"rjs-gbp-ico\">\ud83d\udcb1<\/span>\n    <span class=\"rjs-gbp-text\">Prices shown in <strong>GBP (\u00a3)<\/strong>. Not in the UK? Your local currency is calculated at checkout, at today's exchange rate.<\/span>\n  <\/div>\n  <!-- \/RJ24-EDIT -->\n\n  <!-- STEP 1: PICK A VOICE -->\n  <div class=\"rjsw-step\" data-step=\"1\">\n    <h2 class=\"rjsw-h\">1. Pick a Voice<\/h2>\n    <p class=\"rjsw-intro\">Choose your voice. <b>Paul<\/b> is our house voice and best value at <b>&pound;5<\/b>; any other voice is <b>&pound;12<\/b>. Tap the &#9658; to hear each one.<\/p>\n    <div class=\"rjsw-voices\" id=\"rjs-voices\"><!-- voice cards injected by JS --><\/div>\n  <\/div>\n\n  <!-- STEP 2: SCRIPT -->\n  <div class=\"rjsw-step\" data-step=\"2\">\n    <h2 class=\"rjsw-h\">2. Type In your Script<\/h2>\n    <p class=\"rjsw-intro\">Up to <b>25 words<\/b> is included (about a 10-second read). Longer is fine &mdash; every extra 25 words adds <b>&pound;5<\/b>, and you'll see the price update below as you type.<\/p>\n    <div class=\"rjsw-field\">\n      <label class=\"rjsw-label\" for=\"rjs-script\">Your script<\/label>\n      <textarea id=\"rjs-script\" class=\"rjsw-textarea\" rows=\"5\" placeholder=\"Type your script here...\"><\/textarea>\n      <div class=\"rjsw-counter\" id=\"rjs-count\">0 words <span class=\"rjsw-tiernote\">&middot; up to 25 included<\/span><\/div>\n    <\/div>\n    <div class=\"rjsw-field\">\n      <label class=\"rjsw-label\" for=\"rjs-instr\">Instructions for us (optional)<\/label>\n      <textarea id=\"rjs-instr\" class=\"rjsw-textarea\" rows=\"2\" placeholder=\"Pace, mood, pronunciation, anything we should know...\"><\/textarea>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 3: ADD PRODUCTION -->\n  <div class=\"rjsw-step\" data-step=\"3\">\n    <h2 class=\"rjsw-h\">3. Add Production <span style=\"font-weight:600;font-size:14px;color:#94A3B8;\">(optional)<\/span><\/h2>\n    <p class=\"rjsw-intro\">We have a huge library of music, vocal &amp; sound effects. Pick any combination below &mdash; each adds <b>&pound;6<\/b>. Choose none and your audio is delivered <b>dry<\/b>.<\/p>\n    <div class=\"rjsw-prod\" id=\"rjs-prod\">\n      <div class=\"rjsw-prod-card\" data-prod=\"music\">\n        <div class=\"rjsw-prod-top\">\n          <span class=\"rjsw-prod-name\">Music<\/span>\n          <span class=\"rjsw-prod-fee\">+&pound;6<\/span>\n          <span class=\"rjsw-prod-check\">&#10003;<\/span>\n        <\/div>\n        <audio controls preload=\"none\" src=\"https:\/\/radiojingles24.com\/wp-content\/uploads\/2019\/11\/0-Music.mp3\"><\/audio>\n      <\/div>\n      <div class=\"rjsw-prod-card\" data-prod=\"vocalfx\">\n        <div class=\"rjsw-prod-top\">\n          <span class=\"rjsw-prod-name\">Vocal FX<\/span>\n          <span class=\"rjsw-prod-fee\">+&pound;6<\/span>\n          <span class=\"rjsw-prod-check\">&#10003;<\/span>\n        <\/div>\n        <audio controls preload=\"none\" src=\"https:\/\/radiojingles24.com\/wp-content\/uploads\/2019\/11\/0-Vocal-FX.mp3\"><\/audio>\n      <\/div>\n      <div class=\"rjsw-prod-card\" data-prod=\"sfx\">\n        <div class=\"rjsw-prod-top\">\n          <span class=\"rjsw-prod-name\">Sound FX<\/span>\n          <span class=\"rjsw-prod-fee\">+&pound;6<\/span>\n          <span class=\"rjsw-prod-check\">&#10003;<\/span>\n        <\/div>\n        <audio controls preload=\"none\" src=\"https:\/\/radiojingles24.com\/wp-content\/uploads\/2019\/11\/0-SFX.mp3\"><\/audio>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 4: FORMAT -->\n  <div class=\"rjsw-step\" data-step=\"4\">\n    <h2 class=\"rjsw-h\">4. Choose Format<\/h2>\n    <div class=\"rjsw-pills\" id=\"rjs-format\">\n      <button type=\"button\" class=\"rjsw-pill active\" data-fmt=\"MP3\">MP3<\/button>\n      <button type=\"button\" class=\"rjsw-pill\" data-fmt=\"WAVE\">WAVE<\/button>\n      <button type=\"button\" class=\"rjsw-pill\" data-fmt=\"AIFF\">AIFF<\/button>\n    <\/div>\n  <\/div>\n\n<\/div><!-- \/#rj-spoken-wizard -->\n\n<div class=\"rjsw-footer\" id=\"rjs-footer\">\n  <div class=\"rjsw-price\">\n    <span class=\"rjsw-price-label\">Total<\/span>\n    <span class=\"rjsw-price-val\" id=\"rjs-total\">&pound;5<\/span>\n  <\/div>\n  <button type=\"button\" class=\"rjsw-btn primary\" id=\"rjs-add\">Add to cart<\/button>\n<\/div>\n\n<div id=\"rjs-toast\" style=\"display:none;\"><\/div>\n\n<script>\n(function(){\n  var VOICES = [\n    { name: 'Paul', img: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2020\/11\/Paul-300x300.png', demo: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2019\/11\/Paul-Blundell-Imaging-Demo-1.mp3' },\n    { name: 'Jo', img: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2020\/11\/Jo-300x300.png', demo: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2019\/11\/JO-DEMO-1-1.mp3' },\n    { name: 'Laura', img: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2020\/11\/Laura-300x300.png', demo: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2019\/11\/Voicereel-2.mp3' },\n    { name: 'John', img: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2020\/11\/John-300x300.png', demo: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2019\/11\/JOHN-C-Voice-Demo-New.mp3' },\n    { name: 'Craig', img: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2020\/11\/Craig-300x300.png', demo: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2023\/03\/Craig-March-2023-Showreel.mp3' },\n    { name: 'Andy', img: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2020\/03\/E8C9124F-BF16-4E1D-AC6A-AA1EE5A3AD1B-Bighead-300x300.png', demo: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2022\/03\/Andy-Hoyle-Commercial-Showreel.mp3' },\n    { name: 'Gwen', img: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2020\/03\/GwenWatsonVoice-Bighead-300x300.png', demo: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2022\/03\/GwenWatson-Commercial-Voicereel_FINAL.mp3' },\n    { name: 'April', img: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2022\/11\/4AA2DDC5-0A00-4DDB-AA39-2EDE84A0BCAE-Bighead-300x300.png', demo: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2022\/11\/Ingrid-2022-commercial-Demo_mixdown-2.mp3' },\n    { name: 'Gareth', img: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2022\/11\/IMG_6786-Bighead-300x300.png', demo: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2022\/11\/Gareth-Webb-Audio.mp3' },\n    { name: 'Fiona', img: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2020\/03\/fi-cow-print-Bighead-2-300x300.png', demo: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2022\/11\/fiona-Commercial-mix-VO.mp3' },\n    { name: 'Elisa', img: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2022\/11\/EmsePctXIAEP6Kb-Bighead-300x300.png', demo: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2022\/11\/Elisa-Hilton-Commerical-showreel.mp3' },\n    { name: 'Dave', img: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2023\/03\/03-02-2023-bighead-toon-White-BG-3-300x300.png', demo: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2023\/03\/COMMERCIAL-DEMO-SESSION4_mixdown.mp3' },\n    { name: 'Amiley (Teen)', img: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2020\/03\/A61BC63A-A628-473F-A3ED-3F822033FCD0-Bighead-300x300.png', demo: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2022\/11\/Verity-Commercial-Mix-Demo-2022.mp3' },\n    { name: 'Cheesy DJ', img: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2020\/03\/p02bl5d1-Bighead-300x300.png', demo: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2022\/11\/cheesydj.mp3' },\n    { name: 'Mike', img: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2020\/11\/Mike-300x300.png', demo: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2019\/11\/MikeTarnow-Imaging-Demo-1.mp3' },\n    \n    { name: 'Kendra', img: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2020\/03\/Kendra-Raines-Bighead-300x300.png', demo: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2022\/11\/Commercial-Demo-Kendra-Raines.mp3' },\n    { name: 'Ally', img: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2020\/12\/Ally-300x300.png', demo: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2020\/12\/Ally2.mp3' },\n    { name: 'Stephen', img: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2020\/12\/m.97956-300x300.jpg', demo: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2020\/02\/Stephen-Daly-Commercial-Voiceover-Show-Reel.mp3' },\n    \n    { name: 'Vito', img: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2020\/12\/Vito-300x300.png', demo: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2020\/12\/Vito.mp3' },\n    { name: 'Santa', img: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2020\/10\/happy-santa-1428126-300x255.jpg', demo: 'https:\/\/radiojingles24.com\/wp-content\/uploads\/2020\/10\/Santa-Demo.mp3' }\n  ];\n\n  \/\/ Pricing constants \u2014 mirror the plugin (RJ24_SPOKEN_CFG overrides if present).\n  var CFG = window.RJ24_SPOKEN_CFG || {};\n  var PRICE_PAUL     = CFG.pricePaul     || 5;\n  var PRICE_OTHER    = CFG.priceOther    || 12;\n  var WORDS_INCLUDED = CFG.wordsIncluded || 25;\n  var WORDS_BLOCK    = CFG.wordsBlock    || 25;\n  var OVERFLOW_FEE   = CFG.overflowFee   || 5;\n  var FEE_MUSIC      = CFG.feeMusic      || 6;\n  var FEE_VOCALFX    = CFG.feeVocalFx    || 6;\n  var FEE_SFX        = CFG.feeSfx        || 6;\n\n  var st = { voice: null, format: 'MP3', music: false, vocalfx: false, sfx: false, busy: false };\n\n  function el(id){ return document.getElementById(id); }\n  function wordCount(t){ t=(t||'').trim(); if(!t) return 0; var p=t.split(\/\\s+\/).filter(Boolean); return p.length; }\n\n  function portalSpoken(){\n    ['rjs-footer','rjs-toast'].forEach(function(id){\n      var node = el(id);\n      if (node && node.parentElement !== document.body){ document.body.appendChild(node); }\n    });\n  }\n  if (document.readyState === 'loading'){ document.addEventListener('DOMContentLoaded', portalSpoken); }\n  else { portalSpoken(); }\n  setTimeout(portalSpoken, 800);\n  setTimeout(portalSpoken, 2000);\n\n  \/\/ ---- Build voice cards ----\n  var vWrap = el('rjs-voices');\n  var currentAudio = null, currentBtn = null;\n  VOICES.forEach(function(v){\n    var card = document.createElement('div');\n    card.className = 'rjsw-voice';\n    card.setAttribute('data-voice', v.name);\n    card.innerHTML =\n      '<div class=\"rjsw-voice-avatar\">' +\n        '<img decoding=\"async\" src=\"' + v.img + '\" alt=\"' + v.name + '\">' +\n        '<button type=\"button\" class=\"rjsw-voice-play\" aria-label=\"Preview ' + v.name + '\">&#9658;<\/button>' +\n        '<audio preload=\"none\" src=\"' + v.demo + '\"><\/audio>' +\n      '<\/div>' +\n      '<div class=\"rjsw-voice-name\">' + v.name + '<\/div>';\n    card.addEventListener('click', function(e){\n      if (e.target.closest('.rjsw-voice-play')) return;\n      document.querySelectorAll('#rjs-voices .rjsw-voice').forEach(function(c){ c.classList.remove('selected'); });\n      card.classList.add('selected');\n      st.voice = v.name;\n      updateTotal();\n    });\n    var playBtn = card.querySelector('.rjsw-voice-play');\n    var audio = card.querySelector('audio');\n    playBtn.addEventListener('click', function(e){\n      e.preventDefault(); e.stopPropagation();\n      if (currentAudio && currentAudio !== audio){ currentAudio.pause(); currentAudio.currentTime=0; if(currentBtn) currentBtn.innerHTML='&#9658;'; }\n      if (audio.paused){ audio.play(); playBtn.innerHTML='&#10073;&#10073;'; currentAudio=audio; currentBtn=playBtn; }\n      else { audio.pause(); playBtn.innerHTML='&#9658;'; }\n      audio.onended = function(){ playBtn.innerHTML='&#9658;'; };\n    });\n    vWrap.appendChild(card);\n  });\n\n  \/\/ ---- Pricing (mirrors the plugin exactly) ----\n  function overflowFee(words){\n    if (words <= WORDS_INCLUDED) return 0;\n    var extra = words - WORDS_INCLUDED;\n    var blocks = Math.ceil(extra \/ WORDS_BLOCK);\n    return blocks * OVERFLOW_FEE;\n  }\n  function calcPrice(){\n    var words = wordCount(el('rjs-script').value);\n    var isPaul = (st.voice && st.voice.toLowerCase() === 'paul');\n    var base = st.voice ? (isPaul ? PRICE_PAUL : PRICE_OTHER) : PRICE_PAUL;\n    var prod = 0;\n    if (st.music)   prod += FEE_MUSIC;\n    if (st.vocalfx) prod += FEE_VOCALFX;\n    if (st.sfx)     prod += FEE_SFX;\n    return base + overflowFee(words) + prod;\n  }\n\n  function updateTotal(){\n    var words = wordCount(el('rjs-script').value);\n    var over = words > WORDS_INCLUDED;\n    var note;\n    if (words === 0)               note = 'up to 25 included';\n    else if (words <= WORDS_INCLUDED) note = 'within the included 25 words';\n    else {\n      var blocks = Math.ceil((words - WORDS_INCLUDED) \/ WORDS_BLOCK);\n      note = '+\u00a3' + (blocks * OVERFLOW_FEE) + ' for length';\n    }\n    var c = el('rjs-count');\n    c.innerHTML = words + ' word' + (words===1?'':'s') + ' <span class=\"rjsw-tiernote\">&middot; ' + note + '<\/span>';\n    c.classList.toggle('over', over);\n    el('rjs-total').innerHTML = '&pound;' + calcPrice();\n  }\n\n  el('rjs-script').addEventListener('input', updateTotal);\n\n  \/\/ ---- Production toggle cards ----\n  el('rjs-prod').addEventListener('click', function(e){\n    var card = e.target.closest('.rjsw-prod-card');\n    if (!card) return;\n    if (e.target.closest('audio')) return; \/\/ let the audio controls work\n    var key = card.getAttribute('data-prod');\n    st[key] = !st[key];\n    card.classList.toggle('active', st[key]);\n    updateTotal();\n  });\n\n  \/\/ ---- Format pills ----\n  el('rjs-format').addEventListener('click', function(e){\n    var b = e.target.closest('.rjsw-pill'); if(!b) return;\n    this.querySelectorAll('.rjsw-pill').forEach(function(p){ p.classList.remove('active'); });\n    b.classList.add('active');\n    st.format = b.getAttribute('data-fmt');\n  });\n\n  \/\/ ---- Toast ----\n  function toast(msg, kind){\n    var t = el('rjs-toast');\n    t.textContent = msg;\n    t.className = (kind ? kind : '');\n    t.style.display = 'block';\n    clearTimeout(t._t);\n    t._t = setTimeout(function(){ t.style.display='none'; }, 4000);\n  }\n\n  \/\/ ---- Validate ----\n  function validate(){\n    var cfg = window.RJ24_SPOKEN_CFG || {};\n    if (!cfg.ajaxUrl){ toast('Setup error: missing config. Please refresh.', 'error'); return false; }\n    if (!st.voice){ toast('Please pick a voice first.', 'error'); return false; }\n    var script = el('rjs-script').value.trim();\n    if (!script){ toast('Please type your script.', 'error'); return false; }\n    return true;\n  }\n\n  \/\/ ---- Submit ----\n  function submitCut(){\n    if (st.busy) return;\n    if (!validate()) return;\n    st.busy = true;\n    var btn = el('rjs-add'); var old = btn.textContent; btn.textContent = 'Adding...';\n\n    var cfg = window.RJ24_SPOKEN_CFG || {};\n    var body = new URLSearchParams();\n    body.set('action', 'rj24_add_spoken');\n    body.set('nonce', cfg.nonce || '');\n    body.set('rj24_product_id', cfg.productId || '');\n    body.set('rj24_voice', st.voice);\n    body.set('rj24_script', el('rjs-script').value.trim());\n    body.set('rj24_instructions', el('rjs-instr').value.trim());\n    body.set('rj24_format', st.format);\n    body.set('rj24_music', st.music ? '1' : '0');\n    body.set('rj24_vocalfx', st.vocalfx ? '1' : '0');\n    body.set('rj24_sfx', st.sfx ? '1' : '0');\n\n    fetch(cfg.ajaxUrl, {\n      method: 'POST', credentials: 'same-origin',\n      headers: { 'Content-Type': 'application\/x-www-form-urlencoded' },\n      body: body.toString()\n    })\n    .then(function(r){ return r.json(); })\n    .then(function(res){\n      st.busy = false; btn.textContent = old;\n      if (res && res.success){\n        toast('Added to cart!', 'success');\n        if (cfg.cartUrl){ setTimeout(function(){ window.location.href = cfg.cartUrl; }, 700); }\n      } else {\n        toast((res && res.message) ? res.message : 'Could not add to cart.', 'error');\n      }\n    })\n    .catch(function(){\n      st.busy = false; btn.textContent = old;\n      toast('Network error. Please try again.', 'error');\n    });\n  }\n\n  el('rjs-add').addEventListener('click', submitCut);\n\n  updateTotal();\n})();\n<\/script>\n<!--\n  RJ24 \u2014 SPOKEN AUDIO UPSELL OVERLAY\n  Paste at the END of the Raw HTML block on \/product\/spoken-audio\/.\n  It is a self-contained block carrying its own styling and behaviour, so it\n  goes AFTER everything already in that Raw HTML element, not inside it.\n\n  WHAT IT DOES\n  Intercepts the wizard's \"Add to cart\" and offers a fully produced 10-second\n  jingle in the same voice for a flat \u00a315, with a script box capped at 10 words.\n  Decline and the original add proceeds untouched.\n\n  WHY IT IS BUILT THIS WAY\n  * The price and the word cap are read from window.RJ24_SPOKEN_CFG, which the\n    plugin prints. Nothing here hard-codes \u00a315 or \"10 words\". The sung ladder\n    already drifted once because a page quoted one number and the plugin charged\n    another; this cannot.\n  * It hooks the existing button by capture-phase listener rather than replacing\n    the wizard's own handler, so if this block is ever removed the page goes back\n    to working exactly as it does now.\n  * The upsell script rides along on the SAME POST as the main add\n    (rj24_upsell_script). One request, one cart, no half-added orders.\n-->\n\n<style>\n#rjup-ov{position:fixed;inset:0;background:rgba(8,12,20,.72);backdrop-filter:blur(3px);\n  display:none;align-items:center;justify-content:center;z-index:100000;padding:20px;}\n#rjup-ov.show{display:flex;}\n#rjup-card{background:#fff;color:#0e2a47;max-width:520px;width:100%;border-radius:16px;\n  padding:26px 24px;box-shadow:0 24px 70px rgba(0,0,0,.4);font-family:inherit;}\n#rjup-card h3{margin:0 0 6px;font-size:21px;line-height:1.25;color:#0e2a47;}\n#rjup-card p.rjup-sub{margin:0 0 16px;font-size:14px;color:#4a5b6e;line-height:1.5;}\n#rjup-card .rjup-price{color:#E91E63;font-weight:800;}\n#rjup-ta{width:100%;box-sizing:border-box;border:2px solid #dfe6ee;border-radius:10px;\n  padding:11px 12px;font:inherit;font-size:15px;resize:vertical;min-height:74px;color:#0e2a47;}\n#rjup-ta:focus{outline:none;border-color:#E91E63;}\n#rjup-ta.over{border-color:#dc2626;background:#fff5f5;}\n#rjup-count{font-size:13px;margin:7px 2px 0;color:#4a5b6e;}\n#rjup-count.over{color:#dc2626;font-weight:700;}\n#rjup-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap;}\n#rjup-actions button{flex:1 1 auto;min-width:150px;border:0;border-radius:10px;padding:13px 16px;\n  font:inherit;font-size:15px;font-weight:700;cursor:pointer;}\n#rjup-yes{background:#E91E63;color:#fff !important;}\n#rjup-yes:disabled{background:#e8b7c8;cursor:not-allowed;}\n#rjup-no{background:#eef2f6;color:#3d4d5f !important;}\n@media (max-width:520px){#rjup-actions button{flex:1 1 100%;}}\n<\/style>\n\n<div id=\"rjup-ov\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"rjup-title\">\n  <div id=\"rjup-card\">\n    <h3 id=\"rjup-title\">Add a produced jingle for <span class=\"rjup-price\" id=\"rjup-price\">\u00a315<\/span>?<\/h3>\n    <p class=\"rjup-sub\">\n      A fully produced <b>10-second jingle<\/b> in the same voice, with music.\n      Maximum <b><span id=\"rjup-max\">10<\/span> words<\/b> \u2014 that is what fits in ten seconds.\n    <\/p>\n    <textarea id=\"rjup-ta\" placeholder=\"e.g. Test Radio \u2014 the greatest hits of all time\"><\/textarea>\n    <div id=\"rjup-count\">0 words<\/div>\n    <div id=\"rjup-actions\">\n      <button type=\"button\" id=\"rjup-no\">No thanks<\/button>\n      <button type=\"button\" id=\"rjup-yes\">Add it<\/button>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function () {\n  var CFG = window.RJ24_SPOKEN_CFG || {};\n  \/\/ Never invent these. If the plugin has not published them, the offer is not\n  \/\/ shown at all rather than shown at a price nothing will honour.\n  var PRICE = parseInt(CFG.upsellPrice, 10);\n  var MAXW  = parseInt(CFG.upsellMaxWords, 10);\n  if (!PRICE || !MAXW) { return; }\n\n  var ov    = document.getElementById('rjup-ov');\n  var ta    = document.getElementById('rjup-ta');\n  var count = document.getElementById('rjup-count');\n  var yes   = document.getElementById('rjup-yes');\n  var no    = document.getElementById('rjup-no');\n  var btn   = document.getElementById('rjs-add');\n  if (!ov || !ta || !btn) { return; }\n\n  document.getElementById('rjup-price').textContent = '\u00a3' + PRICE;\n  document.getElementById('rjup-max').textContent = MAXW;\n\n  var armed = false;         \/\/ set once the customer has answered, so the real add runs\n  var pendingUpsell = '';    \/\/ their jingle script, sent with the next add only\n\n  \/*\n   * The wizard builds its own POST body and knows nothing about this overlay,\n   * so rather than edit the wizard we append one field to the request on its\n   * way out. Editing that block by hand is what broke two product pages this\n   * week; this touches none of it, and deleting this block restores the\n   * original behaviour exactly.\n   *\n   * Only ever touches the spoken add-to-cart call, and clears itself after one\n   * use so a declined offer cannot ride along on a later request.\n   *\/\n  var nativeFetch = window.fetch;\n  window.fetch = function (input, init) {\n    try {\n      if (init && typeof init.body === 'string' &&\n          init.body.indexOf('action=rj24_add_spoken') !== -1) {\n        if (pendingUpsell) {\n          init.body += '&rj24_upsell_script=' + encodeURIComponent(pendingUpsell);\n        }\n        pendingUpsell = '';\n      }\n    } catch (e) { \/* never break the customer's add-to-cart over an upsell *\/ }\n    return nativeFetch.apply(this, arguments);\n  };\n\n  function words(t) {\n    t = (t || '').trim();\n    return t ? t.split(\/\\s+\/).filter(Boolean).length : 0;\n  }\n\n  ta.addEventListener('input', function () {\n    var n = words(ta.value);\n    var over = n > MAXW;\n    count.textContent = n + ' word' + (n === 1 ? '' : 's') +\n      (over ? ' \u2014 ' + MAXW + ' maximum' : '');\n    count.classList.toggle('over', over);\n    ta.classList.toggle('over', over);\n    yes.disabled = over || n === 0;\n  });\n  ta.dispatchEvent(new Event('input'));\n\n  \/\/ Capture phase, so we get in before the wizard's own click handler and can\n  \/\/ stop it exactly once. Everything after the customer answers runs normally.\n  btn.addEventListener('click', function (e) {\n    if (armed) { armed = false; return; }        \/\/ let the real add through\n    if (!window.__rjupEligible || !window.__rjupEligible()) { return; }\n    e.preventDefault();\n    e.stopImmediatePropagation();\n    ta.value = '';\n    ta.dispatchEvent(new Event('input'));\n    ov.classList.add('show');\n    setTimeout(function () { ta.focus(); }, 60);\n  }, true);\n\n  function proceed(withUpsell) {\n    ov.classList.remove('show');\n    pendingUpsell = withUpsell ? ta.value.trim() : '';\n    armed = true;\n    btn.click();          \/\/ the wizard's own handler now runs untouched\n  }\n\n  yes.addEventListener('click', function () { if (!yes.disabled) { proceed(true); } });\n  no.addEventListener('click',  function () { proceed(false); });\n  ov.addEventListener('click', function (e) { if (e.target === ov) { proceed(false); } });\n  document.addEventListener('keydown', function (e) {\n    if (e.key === 'Escape' && ov.classList.contains('show')) { proceed(false); }\n  });\n\n  \/*\n   * Only offer it once the customer has actually configured something, so the\n   * overlay never appears in front of a validation error they have not seen.\n   * The wizard validates on click; this mirrors its two hard requirements.\n   *\/\n  window.__rjupEligible = function () {\n    var scriptBox = document.getElementById('rjs-script');\n    var hasScript = scriptBox && scriptBox.value.trim() !== '';\n    var hasVoice  = !!document.querySelector('#rjs-voices .rjsw-voice.selected');\n    return hasScript && hasVoice;\n  };\n})();\n<\/script>\n\n\t\t<\/div>\n\t<\/div>\n\n\t\t\t<\/div> \n\t\t<\/div>\n\t<\/div> \n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"#rj-spoken-wizard{ --fb-pink:#EC4899; --fb-pink-dark:#DB2777; --fb-pink-light:#FDF2F8; --fb-ink:#1E293B; --fb-text:#475569; --fb-muted:#94A3B8; --fb-line:#E2E8F0; font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; color:var(--fb-ink); max-width:1000px; margin:0 auto; padding:0 0 160px; -webkit-font-smoothing:antialiased; } #rj-spoken-wizard *{ box-sizing:border-box; } #rj-spoken-wizard .rjsw-step{ background:#fff; border:1px solid var(--fb-line); border-radius:16px;...","protected":false},"featured_media":6038,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"product_brand":[],"product_cat":[15],"product_tag":[],"class_list":["post-18237","product","type-product","status-publish","has-post-thumbnail","product_cat-uncategorized","tm-has-options","first","instock","taxable","shipping-taxable","purchasable","product-type-simple"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Spoken Audio - Radio Jingles 24: Radio Jingles | DJ Drops | Podcast Intros | Sung Jingles<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/radiojingles24.com\/de\/produkt\/spoken-audio\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spoken Audio - Radio Jingles 24: Radio Jingles | DJ Drops | Podcast Intros | Sung Jingles\" \/>\n<meta property=\"og:url\" content=\"https:\/\/radiojingles24.com\/de\/produkt\/spoken-audio\/\" \/>\n<meta property=\"og:site_name\" content=\"Radio Jingles 24: Radio Jingles | DJ Drops | Podcast Intros | Sung Jingles\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/radiojingles24\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-08T10:33:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/radiojingles24.com\/wp-content\/uploads\/2019\/11\/3Asset-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"480\" \/>\n\t<meta property=\"og:image:height\" content=\"478\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@radiojingles24\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data1\" content=\"1\u00a0Minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/radiojingles24.com\\\/product\\\/spoken-audio\\\/\",\"url\":\"https:\\\/\\\/radiojingles24.com\\\/product\\\/spoken-audio\\\/\",\"name\":\"Spoken Audio - Radio Jingles 24: Radio Jingles | DJ Drops | Podcast Intros | Sung Jingles\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/radiojingles24.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/radiojingles24.com\\\/product\\\/spoken-audio\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/radiojingles24.com\\\/product\\\/spoken-audio\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/radiojingles24.com\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/3Asset-1.png\",\"datePublished\":\"2020-03-12T06:21:33+00:00\",\"dateModified\":\"2026-09-08T10:33:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/radiojingles24.com\\\/product\\\/spoken-audio\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/radiojingles24.com\\\/product\\\/spoken-audio\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/radiojingles24.com\\\/product\\\/spoken-audio\\\/#primaryimage\",\"url\":\"https:\\\/\\\/radiojingles24.com\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/3Asset-1.png\",\"contentUrl\":\"https:\\\/\\\/radiojingles24.com\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/3Asset-1.png\",\"width\":480,\"height\":478},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/radiojingles24.com\\\/product\\\/spoken-audio\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/radiojingles24.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Shop\",\"item\":\"https:\\\/\\\/radiojingles24.com\\\/es\\\/shop\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Spoken Audio\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/radiojingles24.com\\\/#website\",\"url\":\"https:\\\/\\\/radiojingles24.com\\\/\",\"name\":\"Radio Jingles 24: Radio Jingles | DJ Drops | Podcast Intros | Sung Jingles\",\"description\":\"Radio Jingles, Sung Jingles, DJ Drops, and Podcast Intros for commercial, community and internet radio stations. UK Based. Prices from \u00a35. Order online.\",\"publisher\":{\"@id\":\"https:\\\/\\\/radiojingles24.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/radiojingles24.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/radiojingles24.com\\\/#organization\",\"name\":\"Radio Jingles 24\",\"url\":\"https:\\\/\\\/radiojingles24.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/radiojingles24.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/radiojingles24.com\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/RadioJingle1-1.jpg\",\"contentUrl\":\"https:\\\/\\\/radiojingles24.com\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/RadioJingle1-1.jpg\",\"width\":512,\"height\":158,\"caption\":\"Radio Jingles 24\"},\"image\":{\"@id\":\"https:\\\/\\\/radiojingles24.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/radiojingles24\\\/\",\"https:\\\/\\\/x.com\\\/radiojingles24\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Gesprochenes Audio - Radio Jingles 24: Radio Jingles | DJ Drops | Podcast Intros | Gesungene Jingles","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/radiojingles24.com\/de\/produkt\/spoken-audio\/","og_locale":"de_DE","og_type":"article","og_title":"Spoken Audio - Radio Jingles 24: Radio Jingles | DJ Drops | Podcast Intros | Sung Jingles","og_url":"https:\/\/radiojingles24.com\/de\/produkt\/spoken-audio\/","og_site_name":"Radio Jingles 24: Radio Jingles | DJ Drops | Podcast Intros | Sung Jingles","article_publisher":"https:\/\/www.facebook.com\/radiojingles24\/","article_modified_time":"2026-09-08T10:33:56+00:00","og_image":[{"width":480,"height":478,"url":"https:\/\/radiojingles24.com\/wp-content\/uploads\/2019\/11\/3Asset-1.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_site":"@radiojingles24","twitter_misc":{"Gesch\u00e4tzte Lesezeit":"1\u00a0Minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/radiojingles24.com\/product\/spoken-audio\/","url":"https:\/\/radiojingles24.com\/product\/spoken-audio\/","name":"Gesprochenes Audio - Radio Jingles 24: Radio Jingles | DJ Drops | Podcast Intros | Gesungene Jingles","isPartOf":{"@id":"https:\/\/radiojingles24.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/radiojingles24.com\/product\/spoken-audio\/#primaryimage"},"image":{"@id":"https:\/\/radiojingles24.com\/product\/spoken-audio\/#primaryimage"},"thumbnailUrl":"https:\/\/radiojingles24.com\/wp-content\/uploads\/2019\/11\/3Asset-1.png","datePublished":"2020-03-12T06:21:33+00:00","dateModified":"2026-09-08T10:33:56+00:00","breadcrumb":{"@id":"https:\/\/radiojingles24.com\/product\/spoken-audio\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/radiojingles24.com\/product\/spoken-audio\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/radiojingles24.com\/product\/spoken-audio\/#primaryimage","url":"https:\/\/radiojingles24.com\/wp-content\/uploads\/2019\/11\/3Asset-1.png","contentUrl":"https:\/\/radiojingles24.com\/wp-content\/uploads\/2019\/11\/3Asset-1.png","width":480,"height":478},{"@type":"BreadcrumbList","@id":"https:\/\/radiojingles24.com\/product\/spoken-audio\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/radiojingles24.com\/"},{"@type":"ListItem","position":2,"name":"Shop","item":"https:\/\/radiojingles24.com\/es\/shop\/"},{"@type":"ListItem","position":3,"name":"Spoken Audio"}]},{"@type":"WebSite","@id":"https:\/\/radiojingles24.com\/#website","url":"https:\/\/radiojingles24.com\/","name":"Radio Jingles 24: Radio Jingles | DJ Drops | Podcast Intros | Gesungene Jingles","description":"Radio Jingles, Sung Jingles, DJ Drops und Podcast Intros f\u00fcr kommerzielle, Community- und Internetradiosender. In Gro\u00dfbritannien ans\u00e4ssig. Preise ab \u00a3 5. Online bestellen.","publisher":{"@id":"https:\/\/radiojingles24.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/radiojingles24.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/radiojingles24.com\/#organization","name":"Radio Jingles 24","url":"https:\/\/radiojingles24.com\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/radiojingles24.com\/#\/schema\/logo\/image\/","url":"https:\/\/radiojingles24.com\/wp-content\/uploads\/2019\/11\/RadioJingle1-1.jpg","contentUrl":"https:\/\/radiojingles24.com\/wp-content\/uploads\/2019\/11\/RadioJingle1-1.jpg","width":512,"height":158,"caption":"Radio Jingles 24"},"image":{"@id":"https:\/\/radiojingles24.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/radiojingles24\/","https:\/\/x.com\/radiojingles24"]}]}},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/radiojingles24.com\/de\/wp-json\/wp\/v2\/product\/18237","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/radiojingles24.com\/de\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/radiojingles24.com\/de\/wp-json\/wp\/v2\/types\/product"}],"replies":[{"embeddable":true,"href":"https:\/\/radiojingles24.com\/de\/wp-json\/wp\/v2\/comments?post=18237"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/radiojingles24.com\/de\/wp-json\/wp\/v2\/media\/6038"}],"wp:attachment":[{"href":"https:\/\/radiojingles24.com\/de\/wp-json\/wp\/v2\/media?parent=18237"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/radiojingles24.com\/de\/wp-json\/wp\/v2\/product_brand?post=18237"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/radiojingles24.com\/de\/wp-json\/wp\/v2\/product_cat?post=18237"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/radiojingles24.com\/de\/wp-json\/wp\/v2\/product_tag?post=18237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}