{"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-10-14T10:29:37","modified_gmt":"2026-10-14T10:29:37","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_6ad0e1ff3f023\"  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 \">\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=\"\" 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<div class=\"rjc rjc-inline\" id=\"rjc-spoken-audio\">\n<style>\n\/* real proof (proof.py): genuine Google reviews, station names, the delivery promise *\/\n.rjc .pf-hero{margin:var(--s4) 0 0; color:var(--tx2); font-size:14px; line-height:1.5; max-width:56ch}\n.rjc .pf-hero a{color:var(--tx3); text-decoration:underline; text-underline-offset:2px}\n.rjc .pf-stars{color:#ffc94d; letter-spacing:2px; font-size:13px}\n.rjc .pf{background:var(--panel); border-bottom:1px solid var(--rule); padding-block:var(--s6)}\n.rjc .pf-top{display:flex; flex-wrap:wrap; align-items:center; gap:var(--s3) var(--s5); margin-bottom:var(--s5)}\n.rjc .pf-promise{display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border:1px solid rgba(61,220,151,.45); border-radius:3px; color:#bdf5dc; font:600 13px\/1.2 var(--mono); letter-spacing:.06em; text-transform:uppercase}\n.rjc .pf-promise::before{content:\"\"; width:8px; height:8px; border-radius:50%; background:var(--ok)}\n.rjc .pf-st{display:flex; flex-wrap:wrap; gap:6px 14px; align-items:baseline; color:var(--tx); font-weight:600; font-size:15px}\n.rjc .pf-st .pf-k{color:var(--tx3); font:500 12px\/1.3 var(--mono); letter-spacing:.1em; text-transform:uppercase; font-weight:500}\n.rjc .pf-st span:not(.pf-k){white-space:nowrap}\n\/* station names are separate stations (Paul, 12 Oct: \"BBC\" and \"Tameside Radio\" are two): a dot between each *\/\n.rjc .pf-st > span:not(.pf-k) + span::before, .rjc .st > span + span::before{content:\"\\00B7\"; margin-right:10px; color:var(--tx3); font-weight:400}\n.rjc .pf-cards{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--s4)}\n.rjc .pf-card{margin:0; padding:var(--s4) var(--s5); background:var(--night); border:1px solid var(--rule2); border-radius:6px; display:flex; flex-direction:column; gap:var(--s2)}\n.rjc .pf-card blockquote{margin:0; padding:0; border:0; color:var(--tx); font:400 16px\/1.5 var(--sans); quotes:none}\n.rjc .pf-card blockquote::before, .rjc .pf-card blockquote::after{content:none}\n.rjc .pf-card figcaption{margin-top:auto; color:var(--tx3); font-size:13px}\n.rjc .pf-card figcaption a{color:var(--tx2); font-weight:600; text-decoration:none}\n@media(max-width:900px){.rjc .pf-cards{grid-template-columns:1fr} .rjc .pf{padding-block:var(--s5)}}\n<\/style>\n<style>\n  \/* the new hero replaces the old one; everything else in the wizard below is the live block, untouched *\/\n  .rjc ~ * .rjs-hero, #rj-spoken-wizard .rjs-hero{display:none!important}\n<\/style>\n<header class=\"hero\">\n  <div class=\"wrap hero-grid\">\n    <div class=\"hero-copy\">\n      <div class=\"eyebrow\"><span class=\"lamp\"><\/span>Voiced by real humans, delivered in&nbsp;24h<\/div>\n      <h1 class=\"h1\">A studio voiceover in your inbox <em>tomorrow.<\/em><\/h1>\n      <div class=\"btns\"><a href=\"#rj-spoken-wizard\" class=\"btn btn-pk\" data-scroll>Build my voiceover, from <span data-price=\"RJ24_SPOKEN_CFG.pricePaul\">\u00a310<\/span><\/a><span class=\"fine\"><b><span data-price=\"RJ24_SPOKEN_CFG.pricePaul\">\u00a310<\/span><\/b> with Paul, <span data-price=\"RJ24_SPOKEN_CFG.priceOther\">\u00a315<\/span> any other&nbsp;voice<\/span><\/div>\n      <p class=\"lede m-hide\">Pick a voice, type your script, pick optional production, and a real human voiceover artist records, edits and masters it in our Leeds studio. Yours within 24 hours, royalty-free&nbsp;forever.<\/p>\n      <ul class=\"trust m-hide\"><li>20 real voices, including our house voice&nbsp;Paul<\/li><li>24-hour delivery, most cuts back the same working&nbsp;day<\/li><li>MP3, WAV and AIFF studio&nbsp;masters<\/li><li>Royalty-free&nbsp;forever<\/li><\/ul>\n      <p class=\"pf-hero m-hide\"><span class=\"pf-stars\" aria-label=\"5 stars\">\u2605\u2605\u2605\u2605\u2605<\/span> \u201cFirst class. Great Voice Over literally done in 12 hours!! \u2026\u201d <a href=\"https:\/\/www.google.com\/maps\/contrib\/111428494278489056876\/place\/ChIJMzrJ51JFeUgRTZtUvH1fsYo\" target=\"_blank\" rel=\"noopener\">North Herts Radio, Google&nbsp;review<\/a><\/p>\n    <\/div>\n    <div class=\"console\" data-console>\n      <div class=\"console-top\"><span>Featured&nbsp;demos<\/span><span class=\"tally\"><i><\/i>On&nbsp;air<\/span><\/div>\n      <div class=\"rows\">\n        <div class=\"crow\"><button type=\"button\" class=\"play\" data-demo=\"paul\" aria-label=\"Play Paul, house voice\"><svg class=\"i-play\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M8 5.5v13l11-6.5z\"\/><\/svg><svg class=\"i-pause\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 5h3.6v14H7zM13.4 5H17v14h-3.6z\"\/><\/svg><\/button><div><div class=\"t\">Paul, our house&nbsp;voice<\/div><div class=\"s\">Best value. Every other voice is in the picker&nbsp;below.<\/div><\/div><div class=\"p\"><span data-price=\"RJ24_SPOKEN_CFG.pricePaul\">\u00a310<\/span><small>40&nbsp;words<\/small><\/div><\/div>\n        <div class=\"crow m-hide\"><button type=\"button\" class=\"play\" data-demo=\"sophie\" aria-label=\"Play Sophie\"><svg class=\"i-play\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M8 5.5v13l11-6.5z\"\/><\/svg><svg class=\"i-pause\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 5h3.6v14H7zM13.4 5H17v14h-3.6z\"\/><\/svg><\/button><div><div class=\"t\">Sophie<\/div><div class=\"s\">One of the voices on the&nbsp;roster<\/div><\/div><div class=\"p\"><span data-price=\"RJ24_SPOKEN_CFG.priceOther\">\u00a315<\/span><small>40&nbsp;words<\/small><\/div><\/div>\n        <div class=\"crow m-hide\"><button type=\"button\" class=\"play\" data-demo=\"john\" aria-label=\"Play John\"><svg class=\"i-play\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M8 5.5v13l11-6.5z\"\/><\/svg><svg class=\"i-pause\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 5h3.6v14H7zM13.4 5H17v14h-3.6z\"\/><\/svg><\/button><div><div class=\"t\">John<\/div><div class=\"s\">One of the voices on the&nbsp;roster<\/div><\/div><div class=\"p\"><span data-price=\"RJ24_SPOKEN_CFG.priceOther\">\u00a315<\/span><small>40&nbsp;words<\/small><\/div><\/div>\n        \n      <\/div>\n    <\/div>\n  <\/div>\n<\/header>\n<section class=\"pf\" aria-label=\"What customers say\">\n  <div class=\"wrap\">\n    <div class=\"pf-top\"><span class=\"pf-promise\">Delivered in 24&nbsp;hours<\/span><span class=\"pf-st\"><span class=\"pf-k\">Heard on stations&nbsp;including<\/span> <span>BBC<\/span><span>Tameside&nbsp;Radio<\/span><span>UKRD<\/span><span>Mansfield&nbsp;103.2<\/span><span>Corby&nbsp;Radio<\/span><span>Radio&nbsp;X<\/span> <span>+12&nbsp;more<\/span><\/span><\/div>\n    <div class=\"pf-cards\"><figure class=\"pf-card\"><div class=\"pf-stars\" aria-label=\"5 stars\">\u2605\u2605\u2605\u2605\u2605<\/div><blockquote>\u201cFirst class. Great Voice Over literally done in 12 hours!! Amazing! \u2026\u201d<\/blockquote><figcaption><a href=\"https:\/\/www.google.com\/maps\/contrib\/111428494278489056876\/place\/ChIJMzrJ51JFeUgRTZtUvH1fsYo\" target=\"_blank\" rel=\"noopener\">North Herts&nbsp;Radio<\/a>, Google review<\/figcaption><\/figure><figure class=\"pf-card\"><div class=\"pf-stars\" aria-label=\"5 stars\">\u2605\u2605\u2605\u2605\u2605<\/div><blockquote>\u201cExcellently produced voice overs from Paul. Highly recommended. Great value for volunteer community radio presenters on a low budget. \u2026\u201d<\/blockquote><figcaption><a href=\"https:\/\/www.google.com\/maps\/contrib\/115667651871698452191\/place\/ChIJMzrJ51JFeUgRTZtUvH1fsYo\" target=\"_blank\" rel=\"noopener\">Ben&nbsp;C.<\/a>, Google review<\/figcaption><\/figure><figure class=\"pf-card\"><div class=\"pf-stars\" aria-label=\"5 stars\">\u2605\u2605\u2605\u2605\u2605<\/div><blockquote>\u201cI placed an order yesterday evening and received the finished files today. They sound fantastic and I&#x27;m delighted with them. Thank you so much!\u201d<\/blockquote><figcaption><a href=\"https:\/\/www.google.com\/maps\/contrib\/102175911762690053956\/place\/ChIJMzrJ51JFeUgRTZtUvH1fsYo\" target=\"_blank\" rel=\"noopener\">Tracey&nbsp;B.<\/a>, Google review<\/figcaption><\/figure><\/div>\n  <\/div>\n<\/section>\n<script>\n  document.addEventListener('click', function(e){ var a = e.target.closest('.rjc a[data-scroll]'); if(!a) return; var t = document.querySelector(a.getAttribute('href')); if(!t) return; e.preventDefault(); t.scrollIntoView({behavior: 'smooth', block: 'start'}); });\n<\/script>\n<style>\n\/* ===== rj24-console: dark wizards (wizdark.py) ===== *\/\nbody.single-product:has(.rjc-inline), body.single-product:has(.rjc-inline) .container-wrap, body.single-product:has(.rjc-inline) .container-wrap .main-content,\nbody.single-product:has(.rjc-inline) div.product, body.single-product:has(.rjc-inline) .woocommerce-tabs{background:#0e1118!important}\nhtml body #rj-spoken-wizard, html body #rjs-footer, html body #rjfeb-footer, html body #rjd-footer, html body #rjc-footer, html body #rjt-footer, html body #rjo-footer, html body #rjy-footer, html body #rj6-footer, html body #rjst-footer, html body #rjp-footer, html body #rjfeb-bump, html body #rjd-bump, html body #rjc-bump{color-scheme:dark;\n  --fb-pink:#ff4fa3; --fb-pink-dark:#d1157a; --fb-pink-light:rgba(239,44,146,.16); --fb-ink:#f5f2f7; --fb-text:#cbc5d3; --fb-muted:#a29bad; --fb-line:rgba(255,255,255,.16);\n  --rj-pink:#ff4fa3; --rj-pink-dark:#d1157a; --rj-pink-light:rgba(239,44,146,.22); --rj-pink-lighter:rgba(239,44,146,.12); --rj-purple:#c084fc;\n  --rj-gold-light:rgba(245,158,11,.16); --rj-ink:#f5f2f7; --rj-text:#cbc5d3; --rj-muted:#a29bad; --rj-line:rgba(255,255,255,.16); --rj-bg:#0e1118; --rj-card:#151a25;\n  --rj-green-bg:rgba(61,220,151,.14);\n  --pink:#ff4fa3; --pink-dark:#d1157a; --pink-light:rgba(239,44,146,.16); --ink:#f5f2f7; --text:#cbc5d3; --muted:#a29bad; --line:rgba(255,255,255,.16)}\nhtml body #rj-spoken-wizard{background:transparent!important; color:#f5f2f7}\n\/* cards, steps, panels: the console panel *\/\nhtml body #rj-spoken-wizard .rjsw-step, html body #rj-spoken-wizard .rjsw-voice, html body #rj-spoken-wizard .rjsw-version, html body #rj-spoken-wizard .rjsw-prod-card, html body #rj-spoken-wizard .rjwz-trust, html body #rj-spoken-wizard .rjs-trust, html body #rj-spoken-wizard .rjsw-trust, html body #rj-spoken-wizard .rjc-trust, html body #rj-spoken-wizard .rjsw-mode-card, html body #rj-spoken-wizard .rjsw-bed-card, html body #rj-spoken-wizard .rjsw-lyrics-block, html body #rj-spoken-wizard .rjsw-fmt-bar, html body #rj-spoken-wizard .rjt-step, html body #rj-spoken-wizard .rjsw-pack-bar, html body #rj-spoken-wizard .rjsw-sticky-cta, html body #rj-spoken-wizard .rjsw-singer, html body #rj-spoken-wizard .rjsw-decade, html body #rj-spoken-wizard .rjsw-pack, html body #rj-spoken-wizard .rjst-pack, html body #rj-spoken-wizard .rjsw-review, html body #rj-spoken-wizard .rjsw-review-card, html body #rj-spoken-wizard .rjsw-summary, html body #rj-spoken-wizard .rjt-voice, html body #rj-spoken-wizard .rjt-ver, html body #rj-spoken-wizard .rjsw-extra, html body #rj-spoken-wizard .rjsw-mpromo, html body #rj-spoken-wizard .rjs-more, html body #rj-spoken-wizard .rjsw-card, html body #rj-spoken-wizard .rjsw-box, html body #rj-spoken-wizard .rjsw-upsell, html body #rj-spoken-wizard .rjsw-promo, html body #rj-spoken-wizard .rjsw-mode-icon, html body #rj-spoken-wizard .rjsw-bed-type-tag, html body #rj-spoken-wizard #rjt-bonus, html body #rj-spoken-wizard .rjt-field.rjt-toh{background:#151a25!important; border-color:rgba(255,255,255,.16)!important; box-shadow:none!important; color:#f5f2f7}\nhtml body #rj-spoken-wizard .rjsw-voice.selected, html body #rj-spoken-wizard .rjsw-version.selected, html body #rj-spoken-wizard .rjsw-prod-card.selected, html body #rj-spoken-wizard .rjsw-bed-card.in-pack, html body #rj-spoken-wizard .rjsw-singer.selected, html body #rj-spoken-wizard .rjsw-decade.selected, html body #rj-spoken-wizard .rjst-pack.selected, html body #rj-spoken-wizard .rjsw-pack.selected, html body #rj-spoken-wizard .rjt-voice.selected, html body #rj-spoken-wizard .rjt-ver.selected, html body #rj-spoken-wizard .rjsw-extra.selected, html body #rj-spoken-wizard .rjsw-voice.active, html body #rj-spoken-wizard .rjt-ver.active, html body #rj-spoken-wizard .rjsw-decade.on, html body #rj-spoken-wizard .rjsw-prod-card.on{background:rgba(239,44,146,.16)!important; border-color:#ff4fa3!important; box-shadow:0 0 0 1px #ff4fa3 inset!important}\n\/* headings and labels *\/\nhtml body #rj-spoken-wizard h2, html body #rj-spoken-wizard h3, html body #rj-spoken-wizard h4, html body #rj-spoken-wizard .rjsw-h, html body #rj-spoken-wizard .rjt-h, html body #rj-spoken-wizard .rjsw-label, html body #rj-spoken-wizard .rjt-label, html body #rj-spoken-wizard .rjsw-voice-name, html body #rj-spoken-wizard .rjt-voice-name, html body #rj-spoken-wizard .rjt-ver-name, html body #rj-spoken-wizard .rjsw-prod-name, html body #rj-spoken-wizard .rjsw-screen-title, html body #rj-spoken-wizard .rjsw-mode-title, html body #rj-spoken-wizard .rjsw-bed-card-name, html body #rj-spoken-wizard .rjsw-lyrics-block-name, html body #rj-spoken-wizard .rjsw-fmt-head, html body #rj-spoken-wizard .rjwz-trust-h, html body #rj-spoken-wizard .rjs-trust-h, html body #rj-spoken-wizard .rjsw-trust-h, html body #rj-spoken-wizard .rjc-trust-h, html body #rj-spoken-wizard .rjsw-mpromo-name, html body #rj-spoken-wizard .rjsw-singer-name, html body #rj-spoken-wizard .rjsw-decade-name, html body #rj-spoken-wizard .rjst-pack-name{color:#f5f2f7!important}\nhtml body #rj-spoken-wizard p, html body #rj-spoken-wizard li, html body #rj-spoken-wizard .rjsw-intro, html body #rj-spoken-wizard .rjt-intro, html body #rj-spoken-wizard .rjsw-counter, html body #rj-spoken-wizard .rjwz-trust-d, html body #rj-spoken-wizard .rjs-trust-d, html body #rj-spoken-wizard .rjsw-trust-d, html body #rj-spoken-wizard .rjc-trust-d, html body #rj-spoken-wizard .rjwz-trust-ico, html body #rj-spoken-wizard .rjs-trust-ico, html body #rj-spoken-wizard .rjsw-trust-ico, html body #rj-spoken-wizard .rjc-trust-ico, html body #rj-spoken-wizard .rjsw-mode-desc, html body #rj-spoken-wizard .rjsw-screen-sub, html body #rj-spoken-wizard .rjt-ver-desc, html body #rj-spoken-wizard .rjsw-mpromo-desc, html body #rj-spoken-wizard .rjwz-gbp-text, html body #rj-spoken-wizard .rjs-gbp-text, html body #rj-spoken-wizard .rjsw-gbp-text, html body #rj-spoken-wizard .rjc-gbp-text, html body #rj-spoken-wizard .rjsw-singer-creds, html body #rj-spoken-wizard .rjsw-singer-delivery{color:#cbc5d3!important}\nhtml body #rj-spoken-wizard b, html body #rj-spoken-wizard strong{color:inherit!important}\n\/* script boxes and fields *\/\nhtml body #rj-spoken-wizard textarea, html body #rj-spoken-wizard input[type=text], html body #rj-spoken-wizard input[type=email], html body #rj-spoken-wizard input[type=number], html body #rj-spoken-wizard input:not([type]), html body #rj-spoken-wizard select{background:#0e1118!important; color:#f5f2f7!important; border:1px solid rgba(255,255,255,.22)!important; border-radius:4px!important; font-size:16px!important}\nhtml body #rj-spoken-wizard textarea::placeholder, html body #rj-spoken-wizard input[type=text]::placeholder{color:#8f889a!important}\nhtml body #rj-spoken-wizard textarea:focus, html body #rj-spoken-wizard input[type=text]:focus{border-color:#ff4fa3!important; outline:2px solid rgba(255,79,163,.35)!important; outline-offset:1px}\n\/* pills, format and option buttons *\/\nhtml body #rj-spoken-wizard .rjsw-pill, html body #rj-spoken-wizard .rjt-pill, html body #rj-spoken-wizard .rjsw-fmt-opt, html body #rj-spoken-wizard .rjsw-filter-pill, html body #rj-spoken-wizard .rjsw-sticky-cta-back, html body #rj-spoken-wizard .rjsw-bed-btn.play{background:transparent!important; color:#cbc5d3!important; border:1px solid rgba(255,255,255,.24)!important; min-height:44px; border-radius:3px!important}\nhtml body #rj-spoken-wizard .rjsw-pill.active, html body #rj-spoken-wizard .rjt-pill.active, html body #rj-spoken-wizard .rjsw-fmt-opt.selected, html body #rj-spoken-wizard .rjsw-filter-pill.active, html body #rj-spoken-wizard .rjsw-pill.selected{background:rgba(239,44,146,.18)!important; color:#fff!important; border-color:#ff4fa3!important}\n\/* notes *\/\nhtml body #rj-spoken-wizard .rjst-tip, html body #rj-spoken-wizard .rjwz-gbp, html body #rj-spoken-wizard .rjs-gbp, html body #rj-spoken-wizard .rjsw-gbp, html body #rj-spoken-wizard .rjc-gbp, html body #rj-spoken-wizard .rjsw-pack-bar.empty{background:rgba(255,255,255,.05)!important; border-color:rgba(255,255,255,.14)!important; color:#cbc5d3!important}\nhtml body #rj-spoken-wizard .rjsw-overlimit{background:rgba(220,38,38,.16)!important; color:#fecaca!important; border-color:rgba(248,113,113,.5)!important}\n\/* prices, fees and links in the wizard's pink: the lighter pink reads on dark *\/\nhtml body #rj-spoken-wizard .rjsw-prod-fee, html body #rj-spoken-wizard .rjs-more-ico, html body #rj-spoken-wizard .rjs-more-go, html body #rj-spoken-wizard .rjsw-mpromo-badge, html body #rj-spoken-wizard .rjsw-mode-price, html body #rj-spoken-wizard .rjsw-sticky-cta-total, html body #rj-spoken-wizard .rjsw-voice-badge, html body #rj-spoken-wizard .rjt-ver-price, html body #rj-spoken-wizard .rjst-pack-price, html body #rj-spoken-wizard .rjst-pack-pick, html body #rj-spoken-wizard .rjsw-voice-fee, html body #rj-spoken-wizard a:not([class]), html body #rj-spoken-wizard .rjsw-price-val, html body #rjs-footer [class*=total], html body #rjs-footer [id*=total], html body #rjfeb-footer [class*=total], html body #rjfeb-footer [id*=total], html body #rjd-footer [class*=total], html body #rjd-footer [id*=total], html body #rjc-footer [class*=total], html body #rjc-footer [id*=total], html body #rjt-footer [class*=total], html body #rjt-footer [id*=total], html body #rjo-footer [class*=total], html body #rjo-footer [id*=total], html body #rjy-footer [class*=total], html body #rjy-footer [id*=total], html body #rj6-footer [class*=total], html body #rj6-footer [id*=total], html body #rjst-footer [class*=total], html body #rjst-footer [id*=total], html body #rjp-footer [class*=total], html body #rjp-footer [id*=total]{color:#ff7cbf!important}\nhtml body #rj-spoken-wizard #rjt-bonus span, html body #rj-spoken-wizard #rjt-bonus b, html body #rj-spoken-wizard #rjt-bonus strong{color:#f5f2f7!important}\n\/* the sticky buy bars and add-on bumps *\/\nhtml body #rjs-footer, html body #rjfeb-footer, html body #rjd-footer, html body #rjc-footer, html body #rjt-footer, html body #rjo-footer, html body #rjy-footer, html body #rj6-footer, html body #rjst-footer, html body #rjp-footer{background:#151a25!important; border-top:1px solid #d1157a!important; color:#f5f2f7!important; box-shadow:0 -18px 40px -20px rgba(0,0,0,.9)!important}\nhtml body #rjs-footer small, html body #rjs-footer label, html body #rjfeb-footer small, html body #rjfeb-footer label, html body #rjd-footer small, html body #rjd-footer label, html body #rjc-footer small, html body #rjc-footer label, html body #rjt-footer small, html body #rjt-footer label, html body #rjo-footer small, html body #rjo-footer label, html body #rjy-footer small, html body #rjy-footer label, html body #rj6-footer small, html body #rj6-footer label, html body #rjst-footer small, html body #rjst-footer label, html body #rjp-footer small, html body #rjp-footer label{color:#cbc5d3!important}\nhtml body #rjfeb-bump, html body #rjd-bump, html body #rjc-bump{background:#151a25!important; color:#f5f2f7!important; border-color:rgba(255,255,255,.16)!important}\n\/* the theme's \"Pairs well with\" and \"Guides\" boxes under the wizard *\/\nbody.single-product:has(.rjc-inline) :is(.rj24-pairs, .rj24-guides){background:#151a25!important; border-color:rgba(255,255,255,.14)!important; color:#cbc5d3!important}\nbody.single-product:has(.rjc-inline) .rj24-pairs :is(a, [class*=card], [class*=item]){background:#0e1118!important; border-color:rgba(255,255,255,.14)!important; color:#cbc5d3!important}\nbody.single-product:has(.rjc-inline) :is(.rj24-pairs, .rj24-guides) :is(h2, h3, h4, strong, b){color:#f5f2f7!important}\nbody.single-product:has(.rjc-inline) .rj24-guides a{background:transparent!important; color:#ffc2e1!important; border-color:rgba(255,79,163,.5)!important}\nbody.single-product:has(.rjc-inline) .rj24-pairs [class*=price], body.single-product:has(.rjc-inline) .rj24-pairs a span:last-child{color:#ff7cbf!important}\n\/* phone: tap targets and readable text *\/\n@media(max-width:760px){\n  html body #rj-spoken-wizard .rjsw-pill, html body #rj-spoken-wizard .rjt-pill, html body #rj-spoken-wizard .rjsw-fmt-opt, html body #rj-spoken-wizard .rjsw-filter-pill, html body #rj-spoken-wizard .rjsw-sticky-cta-back, html body #rj-spoken-wizard .rjsw-bed-btn.play{min-height:44px; font-size:15px!important}\n  html body #rj-spoken-wizard p, html body #rj-spoken-wizard li, html body #rj-spoken-wizard .rjsw-intro, html body #rj-spoken-wizard .rjt-intro, html body #rj-spoken-wizard .rjsw-counter, html body #rj-spoken-wizard .rjwz-trust-d, html body #rj-spoken-wizard .rjs-trust-d, html body #rj-spoken-wizard .rjsw-trust-d, html body #rj-spoken-wizard .rjc-trust-d, html body #rj-spoken-wizard .rjwz-trust-ico, html body #rj-spoken-wizard .rjs-trust-ico, html body #rj-spoken-wizard .rjsw-trust-ico, html body #rj-spoken-wizard .rjc-trust-ico, html body #rj-spoken-wizard .rjsw-mode-desc, html body #rj-spoken-wizard .rjsw-screen-sub, html body #rj-spoken-wizard .rjt-ver-desc, html body #rj-spoken-wizard .rjsw-mpromo-desc, html body #rj-spoken-wizard .rjwz-gbp-text, html body #rj-spoken-wizard .rjs-gbp-text, html body #rj-spoken-wizard .rjsw-gbp-text, html body #rj-spoken-wizard .rjc-gbp-text, html body #rj-spoken-wizard .rjsw-singer-creds, html body #rj-spoken-wizard .rjsw-singer-delivery{font-size:15px!important; line-height:1.55!important}\n  html body #rj-spoken-wizard button[class*=play]{min-width:44px!important; min-height:44px!important}\n  html body #rj-spoken-wizard .rjsw-mpromo{flex-direction:column!important; align-items:flex-start!important; gap:12px!important; text-align:left!important}\n  html body #rj-spoken-wizard .rjsw-voices{grid-template-columns:repeat(3,minmax(0,1fr))!important; gap:8px!important}\n  html body #rj-spoken-wizard .rjsw-voice{padding:10px 4px!important}\n}\n\/* the buy bar waits until a voice is chosen (REVIEW-AB: \"Buy now \u00a310\" showed before anything was picked) *\/\nbody:has(#rj-spoken-wizard .rjsw-voice):not(:has(#rj-spoken-wizard .rjsw-voice.selected)) #rjs-footer{display:none!important}\n\/* the sung pack bar (12 Oct): the builder's white chips kept their white ground under light text (\"2 jingles: Hot FM 7 x\"), and\n   its pink tier line sat pink-on-pink; both re-coloured for the dark ground, every pair >= 4.5:1 *\/\nhtml body #rj-spoken-wizard .rjsw-pack-chip{background:rgba(239,44,146,.2)!important; border-color:#ff4fa3!important; color:#f5f2f7!important}\nhtml body #rj-spoken-wizard .rjsw-pack-chip-remove{background:transparent!important; color:#ffc2e1!important}\nhtml body #rj-spoken-wizard .rjsw-pack-tier-msg{background:rgba(255,255,255,.06)!important; color:#ffc2e1!important}\nhtml body #rj-spoken-wizard .rjsw-pack-tier-msg.unlocked{background:rgba(61,220,151,.14)!important; color:#bdf5dc!important}\nhtml body #rj-spoken-wizard{--fb-muted:#b3adbf; --rj-muted:#b3adbf; --muted:#b3adbf}\nhtml body #rj-spoken-wizard .rjsw-step, html body #rj-spoken-wizard .rjsw-voice, html body #rj-spoken-wizard .rjsw-version, html body #rj-spoken-wizard .rjsw-prod-card, html body #rj-spoken-wizard .rjwz-trust, html body #rj-spoken-wizard .rjs-trust, html body #rj-spoken-wizard .rjsw-trust, html body #rj-spoken-wizard .rjc-trust, html body #rj-spoken-wizard .rjsw-mode-card, html body #rj-spoken-wizard .rjsw-bed-card, html body #rj-spoken-wizard .rjsw-lyrics-block, html body #rj-spoken-wizard .rjsw-fmt-bar, html body #rj-spoken-wizard .rjt-step, html body #rj-spoken-wizard .rjsw-pack-bar, html body #rj-spoken-wizard .rjsw-sticky-cta, html body #rj-spoken-wizard .rjsw-singer, html body #rj-spoken-wizard .rjsw-decade, html body #rj-spoken-wizard .rjsw-pack, html body #rj-spoken-wizard .rjst-pack, html body #rj-spoken-wizard .rjsw-review, html body #rj-spoken-wizard .rjsw-review-card, html body #rj-spoken-wizard .rjsw-summary, html body #rj-spoken-wizard .rjt-voice, html body #rj-spoken-wizard .rjt-ver, html body #rj-spoken-wizard .rjsw-extra, html body #rj-spoken-wizard .rjsw-mpromo, html body #rj-spoken-wizard .rjs-more, html body #rj-spoken-wizard .rjsw-card, html body #rj-spoken-wizard .rjsw-box, html body #rj-spoken-wizard .rjsw-upsell, html body #rj-spoken-wizard .rjsw-promo, html body #rj-spoken-wizard .rjsw-mode-icon, html body #rj-spoken-wizard .rjsw-bed-type-tag, html body #rj-spoken-wizard #rjt-bonus, html body #rj-spoken-wizard .rjt-field.rjt-toh{background:#2e3850!important; border-color:rgba(255,255,255,.22)!important}\nhtml body #rj-spoken-wizard textarea, html body #rj-spoken-wizard input[type=text], html body #rj-spoken-wizard input[type=email], html body #rj-spoken-wizard input[type=number], html body #rj-spoken-wizard input:not([type]), html body #rj-spoken-wizard select{background:#222b3d!important}\n\n\/* builder look A (looks.py, Paul 12 Oct): plain facts strip (no icons), currency note as text, lighter first step, soft voice cards *\/\nhtml body #rj-spoken-wizard .rjwz-trust-ico, html body #rj-spoken-wizard .rjs-trust-ico, html body #rj-spoken-wizard .rjsw-trust-ico, html body #rj-spoken-wizard .rjc-trust-ico{display:none!important}\nhtml body #rj-spoken-wizard .rjwz-trust, html body #rj-spoken-wizard .rjs-trust, html body #rj-spoken-wizard .rjsw-trust, html body #rj-spoken-wizard .rjc-trust{box-shadow:none!important}\nhtml body #rj-spoken-wizard .rjwz-gbp, html body #rj-spoken-wizard .rjs-gbp, html body #rj-spoken-wizard .rjsw-gbp, html body #rj-spoken-wizard .rjc-gbp{background:transparent!important; border:0!important; box-shadow:none!important; padding:0!important; margin:2px 0 20px!important; display:block!important}\nhtml body #rj-spoken-wizard .rjwz-gbp-ico, html body #rj-spoken-wizard .rjs-gbp-ico, html body #rj-spoken-wizard .rjsw-gbp-ico, html body #rj-spoken-wizard .rjc-gbp-ico{display:none!important}\nhtml body #rj-spoken-wizard .rjwz-gbp-text , html body #rj-spoken-wizard .rjwz-gbp-text strong, html body #rj-spoken-wizard .rjs-gbp-text , html body #rj-spoken-wizard .rjs-gbp-text strong, html body #rj-spoken-wizard .rjsw-gbp-text , html body #rj-spoken-wizard .rjsw-gbp-text strong, html body #rj-spoken-wizard .rjc-gbp-text , html body #rj-spoken-wizard .rjc-gbp-text strong{font-size:13px!important; line-height:1.5!important; color:#cbc5d3!important; font-weight:400!important}\nhtml body #rj-spoken-wizard .rjsw-step[data-step=\"1\"], html body #rj-spoken-wizard .rjt-step:first-of-type{background:#3a4560!important; border:0!important}\nhtml body #rj-spoken-wizard .rjsw-voice, html body #rj-spoken-wizard .rjt-voice{border:0!important; box-shadow:none!important; background:rgba(255,255,255,.07)!important; color:#f5f2f7!important}\nhtml body #rj-spoken-wizard .rjsw-voice.selected, html body #rj-spoken-wizard .rjsw-voice.active, html body #rj-spoken-wizard .rjt-voice.selected{box-shadow:0 0 0 2px #ff4fa3 inset!important; background:rgba(239,44,146,.2)!important}\n<\/style>\n<script>\n(function(){ function move(){ var r = document.getElementById('rj-spoken-wizard'); if (!r) return;\n  var g = r.querySelector('.rjs-gbp, .rjwz-gbp, .rjsw-gbp, .rjc-gbp'), st = r.querySelector('.rjsw-step[data-step=\"1\"], .rjt-step'),\n      i = st && st.querySelector('.rjsw-intro, .rjt-intro, p'); if (g && i && g.previousElementSibling !== i) i.insertAdjacentElement('afterend', g); }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', move); else move(); })();\n<\/script>\n<\/div>\n<script>\n\/* rj24-console press-to-hear: one <audio>, files load only when pressed, one sound at a time on the page *\/\n(function(){\n  var root = document.currentScript.previousElementSibling; if(!root || !root.classList.contains('rjc')) return;\n  var DEMOS = {\"john\": \"https:\/\/radiojingles24.com\/wp-content\/uploads\/2019\/11\/JOHN-C-Voice-Demo-New.mp3\", \"paul\": \"https:\/\/radiojingles24.com\/wp-content\/uploads\/2019\/11\/Paul-Blundell-Imaging-Demo-1.mp3\", \"sophie\": \"https:\/\/radiojingles24.com\/wp-content\/uploads\/2026\/09\/Sophie-Voice-Demo-2.mp3\"}, audio = new Audio(), cur = null; audio.preload = 'none';\n  function stop(){ root.querySelectorAll('[data-demo].on').forEach(function(b){ b.classList.remove('on'); }); root.querySelectorAll('[data-console].on').forEach(function(c){ c.classList.remove('on'); }); }\n  root.addEventListener('click', function(e){\n    var b = e.target.closest('[data-demo]'); if(!b) return; e.preventDefault();\n    if(cur === b && !audio.paused){ audio.pause(); return; }\n    stop(); cur = b; var d = DEMOS[b.getAttribute('data-demo')]; if(!d) return;\n    audio.src = d; var p = audio.play(); if(p && p.catch) p.catch(stop);\n    b.classList.add('on'); var c = b.closest('[data-console]'); if(c) c.classList.add('on');\n  });\n  audio.addEventListener('pause', stop); audio.addEventListener('ended', stop);\n  document.addEventListener('play', function(e){ if(e.target !== audio && !audio.paused) audio.pause(); }, true);\n  \/\/ the October credits notice (printed by a site snippet above the page) moves under the hero as a slim line (REVIEW.md)\n  var gift = document.querySelector('.rj24-aigift-banner, .rj24-aigift-promo'), hero = root.querySelector('.hero');\n  if(gift && hero){ hero.insertAdjacentElement('afterend', gift); gift.classList.add('rjc-gift'); }\n  \/\/ place the hero directly under the banner: at the top of the content area, or below the theme header where that header\n  \/\/ overlays the content (the home page's transparent header). Measured, so it follows whatever the theme prints above;\n  \/\/ done only at the top of the page, and again once everything has loaded.\n  function place(){ var cw = document.querySelector('.container-wrap'), top = hero || root; if(!cw || window.scrollY > 4) return;\n    var inline = root.classList.contains('rjc-inline'), hdr = document.getElementById('header-outer');\n    for(var n = 0; n < 3; n++){\n      var want = cw.getBoundingClientRect().top + (inline ? (parseFloat(getComputedStyle(cw).paddingTop) || 0) : 0);\n      if(hdr && getComputedStyle(hdr).position !== 'static'){ want = Math.max(want, hdr.getBoundingClientRect().bottom); }\n      var off = Math.round(top.getBoundingClientRect().top - want);\n      if(Math.abs(off) < 1 || Math.abs(off) > 300) break;\n      root.style.marginTop = ((parseFloat(getComputedStyle(root).marginTop) || 0) - off) + 'px'; } }\n  place(); addEventListener('load', place);\n  \/\/ prices follow the wizard plugins' own price settings (window.RJ24_*_CFG, printed on every page), so the monthly offers\n  \/\/ changeover needs no page edit. A setting that is missing leaves the typed price (and shows the line) as it is.\n  \/\/   data-price=\"RJ24_X_CFG.a.b\" [data-div=\"10\"] [data-from=\"30\"]  -> \"\u00a3\" + value (\/ 10, or 30 - value)\n  \/\/   data-price=\"@#wizard .price-el\"  -> the first \u00a3 price that element of the live wizard prints (no setting exists)\n  \/\/   data-show-if=\"RJ24_X_CFG.a.b\" [data-lt=\"25\"]                   -> line shown only while value < 25 (or truthy)\n  function cfg(path){ if(path.charAt(0) === '@'){ var el = document.querySelector(path.slice(1)), m = el && el.textContent.match(\/\\u00a3\\s?(\\d+(?:\\.\\d+)?)\/); return m ? +m[1] : null; }\n    var parts = path.split('.'), o = window[parts.shift()];\n    for(var i = 0; i < parts.length && o != null; i++){ var k = parts[i]; o = (k in Object(o)) ? o[k] : o[k.replace(\/_\/g, ' ')]; }\n    if(typeof o === 'boolean') o = o ? 1 : 0; if(typeof o === 'string' && o.trim() !== '' && !isNaN(o)) o = +o;\n    return (typeof o === 'number' && isFinite(o)) ? o : null; }\n  function bind(){\n    root.querySelectorAll('[data-price]').forEach(function(el){ var v = cfg(el.getAttribute('data-price')); if(v === null) return;\n      if(el.hasAttribute('data-div')) v = v \/ +el.getAttribute('data-div'); if(el.hasAttribute('data-from')) v = +el.getAttribute('data-from') - v;\n      v = Math.round(v * 100) \/ 100; el.textContent = '\\u00a3' + (v % 1 ? v.toFixed(2) : v); });\n    root.querySelectorAll('[data-show-if]').forEach(function(el){ var v = cfg(el.getAttribute('data-show-if')); if(v === null) return;\n      var on = el.hasAttribute('data-lt') ? v < +el.getAttribute('data-lt') : !!v;\n      if(on) el.style.removeProperty('display'); else el.style.setProperty('display', 'none', 'important'); }); }\n  bind(); document.addEventListener('DOMContentLoaded', bind); addEventListener('load', bind);\n})();\n<\/script><!--\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 \u00a310 \/ any other voice \u00a315\n    Word overflow: first 40 words included; +\u00a35 per extra block of 40\n                   (26-50 = +\u00a35, 51-75 = +\u00a310, ...)\n    Production (each independent, flat):\n      Music +\u00a38, Vocal FX +\u00a38, Sound FX +\u00a38  (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#rj-spoken-wizard .rjsw-cuts{ grid-template-columns:repeat(2,1fr); }\n#rj-spoken-wizard .rjsw-cuts .rjsw-prod-card{ cursor:pointer; }\n#rj-spoken-wizard .rjsw-cut-desc{ font-size:14px; line-height:1.4; }\n#rj-spoken-wizard .rjsw-cut-save{ font-size:13px; font-weight:800; margin-top:6px; color:var(--fb-pink-dark); }\nhtml body #rj-spoken-wizard .rjsw-cut-save{ color:#ff7cbf!important; }\n#rj-spoken-wizard .rjsw-prod-card.rjs-included{ cursor:default; }\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 produced jingles for \u00a325<\/b> &mdash; same voice, music and FX on each.<\/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\">20 real voices<\/span><span class=\"rjs-trust-d\">UK &amp; US \u2014 including our house voice Paul (&pound;10)<\/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;10<\/b>; any other voice is <b>&pound;15<\/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: ONE CUT OR THREE (rj24-spoken-audio 1.2.0, 14 Oct 2026). Prices come from RJ24_SPOKEN_CFG; hidden if the plugin has no three-cut price. -->\n  <div class=\"rjsw-step\" data-step=\"2\" id=\"rjs-cuts-step\">\n    <h2 class=\"rjsw-h\">2. One cut or three<\/h2>\n    <p class=\"rjsw-intro\">Three cuts gives you the same line three ways: a dry read, a produced version with a music bed, and a short version for tight spots.<\/p>\n    <div class=\"rjsw-prod rjsw-cuts\" id=\"rjs-cuts\">\n      <div class=\"rjsw-prod-card active\" data-cuts=\"3\" role=\"button\" tabindex=\"0\" aria-pressed=\"true\">\n        <div class=\"rjsw-prod-top\">\n          <span class=\"rjsw-prod-name\">3 cuts<\/span>\n          <span class=\"rjsw-prod-fee\" id=\"rjs-cut3-price\">&pound;30<\/span>\n          <span class=\"rjsw-prod-check\">&#10003;<\/span>\n        <\/div>\n        <div class=\"rjsw-cut-desc\">Dry, produced with music, and short<\/div>\n        <div class=\"rjsw-cut-save\" id=\"rjs-cut3-save\">&pound;10 a cut, save &pound;8<\/div>\n      <\/div>\n      <div class=\"rjsw-prod-card\" data-cuts=\"1\" role=\"button\" tabindex=\"0\" aria-pressed=\"false\">\n        <div class=\"rjsw-prod-top\">\n          <span class=\"rjsw-prod-name\">1 cut<\/span>\n          <span class=\"rjsw-prod-fee\" id=\"rjs-cut1-price\">&pound;10<\/span>\n          <span class=\"rjsw-prod-check\">&#10003;<\/span>\n        <\/div>\n        <div class=\"rjsw-cut-desc\">One read, dry unless you add production below<\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 3: SCRIPT -->\n  <div class=\"rjsw-step\" data-step=\"3\">\n    <h2 class=\"rjsw-h\">3. Type In your Script<\/h2>\n    <p class=\"rjsw-intro\">Up to <b>40 words<\/b> is included (about a 15-second read). Longer is fine &mdash; every extra 40 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 40 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 4: ADD PRODUCTION -->\n  <div class=\"rjsw-step\" data-step=\"4\">\n    <h2 class=\"rjsw-h\">4. Add Production <span style=\"font-weight:600;font-size:14px;color:#94A3B8;\">(optional)<\/span><\/h2>\n    <p class=\"rjsw-intro\" id=\"rjs-prod-intro1\">We have a huge library of music, vocal &amp; sound effects. Pick any combination below &mdash; each adds <b>&pound;8<\/b>. Choose none and your audio is delivered <b>dry<\/b>.<\/p>\n    <p class=\"rjsw-intro\" id=\"rjs-prod-intro3\" style=\"display:none\">With three cuts the music bed comes with the produced version. Vocal FX and sound FX can go on it too, for <b>&pound;8<\/b> each.<\/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;8<\/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;8<\/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;8<\/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 5: FORMAT -->\n  <div class=\"rjsw-step\" data-step=\"5\">\n    <h2 class=\"rjsw-h\">5. 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\" id=\"rjs-total-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\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\n\n\t\t<\/div>\n\t<\/div>\n\n\t<div class=\"wpb_raw_code wpb_raw_js\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<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  \/\/ Three cuts (rj24-spoken-audio 1.2.0). No three-cut price from the plugin = the step hides and it stays one cut,\n  \/\/ so this page can never offer a pack the cart would not charge for.\n  var CUTS3_PAUL  = CFG.cuts3PricePaul  || 0;\n  var CUTS3_OTHER = CFG.cuts3PriceOther || 0;\n  var HAS_CUTS3   = CUTS3_PAUL > 0 && CUTS3_OTHER > 0;\n\n  var st = { voice: null, format: 'MP3', music: false, vocalfx: false, sfx: false, busy: false, cuts: (HAS_CUTS3 && CFG.cutsDefault !== 1) ? 3 : 1 };\n  window.RJ24_SPOKEN_STATE = st;\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 isPaulVoice(){ return !st.voice || st.voice.toLowerCase() === 'paul'; }\n  function money(n){ return '&pound;' + (Math.round(n * 100) % 100 ? n.toFixed(2) : String(Math.round(n))); }\n  function calcPrice(){\n    var words = wordCount(el('rjs-script').value);\n    var isPaul = isPaulVoice();\n    var base = st.cuts === 3 ? (isPaul ? CUTS3_PAUL : CUTS3_OTHER) : (isPaul ? PRICE_PAUL : PRICE_OTHER);\n    var prod = 0;\n    if (st.music && st.cuts !== 3) prod += FEE_MUSIC;          \/\/ three cuts: the bed is in the produced cut\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 40 included';\n    else if (words <= WORDS_INCLUDED) note = 'within the included 40 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    renderCuts();\n  }\n\n  \/\/ ---- One cut or three ----\n  function renderCuts(){\n    var isPaul = isPaulVoice(), one = isPaul ? PRICE_PAUL : PRICE_OTHER, three = isPaul ? CUTS3_PAUL : CUTS3_OTHER;\n    var apart = one + (one + FEE_MUSIC) + one;               \/\/ dry + produced + short, bought one at a time\n    if (el('rjs-cut1-price')) el('rjs-cut1-price').innerHTML = money(one);\n    if (el('rjs-cut3-price')) el('rjs-cut3-price').innerHTML = money(three);\n    if (el('rjs-cut3-save'))  el('rjs-cut3-save').innerHTML = money(three \/ 3) + ' a cut, save ' + money(apart - three);\n    if (el('rjs-total-label')) el('rjs-total-label').textContent = st.cuts === 3 ? 'Total, 3 cuts' : 'Total';\n    var mus = document.querySelector('#rjs-prod .rjsw-prod-card[data-prod=\"music\"]');\n    if (mus){\n      var inc = st.cuts === 3, fee = mus.querySelector('.rjsw-prod-fee');\n      mus.classList.toggle('rjs-included', inc);\n      mus.classList.toggle('active', inc || st.music);\n      if (fee) fee.innerHTML = inc ? 'Included' : '+&pound;' + FEE_MUSIC;\n    }\n    if (el('rjs-prod-intro1')) el('rjs-prod-intro1').style.display = st.cuts === 3 ? 'none' : '';\n    if (el('rjs-prod-intro3')) el('rjs-prod-intro3').style.display = st.cuts === 3 ? '' : 'none';\n  }\n  function setCuts(n){\n    st.cuts = (n === 3 && HAS_CUTS3) ? 3 : 1;\n    document.querySelectorAll('#rjs-cuts .rjsw-prod-card').forEach(function(c){\n      var on = Number(c.getAttribute('data-cuts')) === st.cuts; c.classList.toggle('active', on); c.setAttribute('aria-pressed', on ? 'true' : 'false');\n    });\n    updateTotal();\n    try { document.dispatchEvent(new CustomEvent('rj24-spoken-cuts', { detail: { cuts: st.cuts } })); } catch (e) {}\n  }\n  if (el('rjs-cuts')){\n    if (!HAS_CUTS3){ el('rjs-cuts-step').style.display = 'none'; }\n    el('rjs-cuts').addEventListener('click', function(e){ var c = e.target.closest('.rjsw-prod-card[data-cuts]'); if (c) setCuts(Number(c.getAttribute('data-cuts'))); });\n    el('rjs-cuts').addEventListener('keydown', function(e){ var c = e.target.closest('.rjsw-prod-card[data-cuts]'); if (c && (e.key === 'Enter' || e.key === ' ')){ e.preventDefault(); setCuts(Number(c.getAttribute('data-cuts'))); } });\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    if (key === 'music' && st.cuts === 3) return;             \/\/ included with three cuts, nothing to toggle\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    body.set('rj24_cuts', String(st.cuts));\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  setCuts(st.cuts);\n})();\n<\/script>\n\t\t<\/div>\n\t<\/div>\n\n\t<div class=\"wpb_raw_code wpb_raw_js\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<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\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":"\/* real proof (proof.py): genuine Google reviews, station names, the delivery promise *\/ .rjc .pf-hero{margin:var(--s4) 0 0; color:var(--tx2); font-size:14px; line-height:1.5; max-width:56ch} .rjc .pf-hero a{color:var(--tx3); text-decoration:underline; text-underline-offset:2px} .rjc .pf-stars{color:#ffc94d; letter-spacing:2px; font-size:13px}...","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","virtual","taxable","purchasable","product-type-simple"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Radio Voiceovers &amp; Jingles from \u00a310 | 21 Real Voices, 24-Hour Delivery<\/title>\n<meta name=\"description\" content=\"Pick a voice, type your script, add music or FX if you want them. A real voiceover artist records it in our Leeds studio and it is in your inbox within 24 hours. Royalty-free forever.\" \/>\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=\"Radio Voiceovers &amp; Jingles from \u00a310 | 21 Real Voices, 24-Hour Delivery\" \/>\n<meta property=\"og:description\" content=\"Pick a voice, type your script, add music or FX if you want them. A real voiceover artist records it in our Leeds studio and it is in your inbox within 24 hours. Royalty-free forever.\" \/>\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-10-14T10:29:37+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\":\"Radio Voiceovers & Jingles from \u00a310 | 21 Real Voices, 24-Hour Delivery\",\"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-10-14T10:29:37+00:00\",\"description\":\"Pick a voice, type your script, add music or FX if you want them. A real voiceover artist records it in our Leeds studio and it is in your inbox within 24 hours. Royalty-free forever.\",\"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, real voices. Prices from \u00a310. Order online, delivered in 24 hours.\",\"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":"Radio Voiceovers & Jingles from \u00a310 | 21 Real Voices, 24-Hour Delivery","description":"Pick a voice, type your script, add music or FX if you want them. A real voiceover artist records it in our Leeds studio and it is in your inbox within 24 hours. Royalty-free forever.","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":"Radio Voiceovers & Jingles from \u00a310 | 21 Real Voices, 24-Hour Delivery","og_description":"Pick a voice, type your script, add music or FX if you want them. A real voiceover artist records it in our Leeds studio and it is in your inbox within 24 hours. Royalty-free forever.","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-10-14T10:29:37+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":"Radio Voiceovers & Jingles from \u00a310 | 21 Real Voices, 24-Hour Delivery","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-10-14T10:29:37+00:00","description":"Pick a voice, type your script, add music or FX if you want them. A real voiceover artist records it in our Leeds studio and it is in your inbox within 24 hours. Royalty-free forever.","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, and Podcast Intros for commercial, community and internet radio stations. UK based, real voices. Prices from \u00a310. Order online, delivered in 24 hours.","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}]}}