Clips page, new episodes, TTS/audio improvements, publish pipeline updates
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -92,7 +92,7 @@
|
||||
</div>
|
||||
<div class="hiw-detail">
|
||||
<span class="hiw-detail-label">Towns with Real Knowledge</span>
|
||||
<span class="hiw-detail-value">20</span>
|
||||
<span class="hiw-detail-value">55</span>
|
||||
</div>
|
||||
<div class="hiw-detail">
|
||||
<span class="hiw-detail-label">Returning Regulars</span>
|
||||
@@ -106,7 +106,7 @@
|
||||
<div class="hiw-step-number">2</div>
|
||||
<div class="hiw-step-content">
|
||||
<h3>They Know Their World</h3>
|
||||
<p>Callers know real facts about where they live — the restaurants, the highways, the local gossip. When a caller says they're from Lordsburg, they actually know about the Shakespeare ghost town and the drive to Deming. They know the current weather outside their window, what day of the week it is, whether it's monsoon season or chile harvest. They have strong opinions about where to get the best green chile and get nostalgic about how their town used to be. The system also pulls in real-time news so callers can reference things that actually happened today.</p>
|
||||
<p>Callers know real facts about where they live — the restaurants, the highways, the local gossip. The system has deep knowledge of 55 real towns across New Mexico and Arizona. When a caller says they're from Lordsburg, they actually know about the Shakespeare ghost town and the drive to Deming. They know the current weather outside their window, what day of the week it is, whether it's monsoon season or chile harvest. They have strong opinions about where to get the best green chile and get nostalgic about how their town used to be. The system also pulls in real-time news so callers can reference things that actually happened today.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -156,11 +156,11 @@
|
||||
<div class="hiw-step-number">7</div>
|
||||
<div class="hiw-step-content">
|
||||
<h3>The Control Room</h3>
|
||||
<p>The entire show runs through a custom-built control panel. Luke manages callers, plays music and sound effects, runs ads and station idents, monitors the call queue, and controls everything from one screen. Audio is routed across six independent channels simultaneously — caller voices, music, sound effects, ads, idents, and live phone audio all on separate tracks. The website shows a live on-air indicator so listeners know when to call in.</p>
|
||||
<p>The entire show runs through a custom-built control panel. Luke manages callers, plays music and sound effects, runs ads and station idents, monitors the call queue, and controls everything from one screen. Audio is routed across seven independent channels simultaneously — host mic, AI caller voices, live phone audio, music, sound effects, ads, and station idents all on separate tracks. The website shows a live on-air indicator so listeners know when to call in.</p>
|
||||
<div class="hiw-detail-grid">
|
||||
<div class="hiw-detail">
|
||||
<span class="hiw-detail-label">Audio Channels</span>
|
||||
<span class="hiw-detail-value">6 independent</span>
|
||||
<span class="hiw-detail-value">7 independent</span>
|
||||
</div>
|
||||
<div class="hiw-detail">
|
||||
<span class="hiw-detail-label">Caller Slots</span>
|
||||
@@ -455,6 +455,14 @@
|
||||
|
||||
<div class="hiw-step">
|
||||
<div class="hiw-step-number">9</div>
|
||||
<div class="hiw-step-content">
|
||||
<h3>Dialog Editing in REAPER</h3>
|
||||
<p>Before the automated pipeline runs, the raw stems are loaded into REAPER for dialog editing. A custom Lua script analyzes voice tracks to detect silence gaps — the dead air between caller responses, TTS latency pauses, and gaps where Luke is reading the control room. The script strips these silences and ripple-edits all tracks in sync so ads, idents, and music shift with the dialog cuts. Protected regions marked as ads or idents are preserved — the script knows not to remove silence during an ad break even if the voice tracks are quiet. This tightens a raw two-hour session into a focused episode without cutting any content.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="hiw-step">
|
||||
<div class="hiw-step-number">10</div>
|
||||
<div class="hiw-step-content">
|
||||
<h3>Post-Production Pipeline</h3>
|
||||
<p>Once the show ends, a 15-step automated pipeline processes the raw stems into a broadcast-ready episode. Ads and sound effects are hard-limited to prevent clipping. The host mic gets a high-pass filter, de-essing, and breath reduction. Voice tracks are compressed — the host gets aggressive spoken-word compression for consistent levels, callers get telephone EQ to sound like real phone calls. All stems are level-matched, music is ducked under dialog and muted during ads, then everything is mixed to stereo with panning and width. A bus compressor glues the final mix together before silence trimming, fades, and EBU R128 loudness normalization.</p>
|
||||
@@ -480,10 +488,10 @@
|
||||
</div>
|
||||
|
||||
<div class="hiw-step">
|
||||
<div class="hiw-step-number">10</div>
|
||||
<div class="hiw-step-number">11</div>
|
||||
<div class="hiw-step-content">
|
||||
<h3>Automated Publishing</h3>
|
||||
<p>A single command takes a finished episode and handles everything: the audio is transcribed using MLX Whisper running on Apple Silicon GPU to generate full-text transcripts, then an LLM analyzes the transcript to write the episode title, description, and chapter markers with timestamps. The episode is uploaded to the podcast server, chapters and transcripts are attached to the metadata, and all media is synced to a global CDN so listeners everywhere get fast downloads.</p>
|
||||
<p>A single command takes a finished episode and handles everything: the audio is transcribed using MLX Whisper running on Apple Silicon GPU to generate full-text transcripts, then an LLM analyzes the transcript to write the episode title, description, and chapter markers with timestamps. The episode is uploaded to the podcast server and directly to YouTube with chapters baked into the description. Chapters and transcripts are attached to the RSS metadata, all media is synced to a global CDN, and social posts are pushed to eight platforms — all from one command.</p>
|
||||
<div class="hiw-detail-grid">
|
||||
<div class="hiw-detail">
|
||||
<span class="hiw-detail-label">Transcription</span>
|
||||
@@ -506,7 +514,7 @@
|
||||
</div>
|
||||
|
||||
<div class="hiw-step">
|
||||
<div class="hiw-step-number">11</div>
|
||||
<div class="hiw-step-number">12</div>
|
||||
<div class="hiw-step-content">
|
||||
<h3>Automated Social Clips</h3>
|
||||
<p>No manual editing, no scheduling tools. After each episode, an LLM reads the full transcript and picks the best moments — funny exchanges, wild confessions, heated debates. Each clip is automatically extracted, transcribed with word-level timestamps, then polished by a second LLM pass that fixes punctuation, capitalization, and misheard words while preserving timing. The clips are rendered as vertical video with speaker-labeled captions and the show's branding. A third LLM writes platform-specific descriptions and hashtags. Then clips are uploaded directly to YouTube Shorts and Bluesky via their APIs, and pushed to Instagram Reels, Facebook Reels, Mastodon, Nostr, LinkedIn, Threads, and TikTok — nine platforms, zero manual work.</p>
|
||||
@@ -532,7 +540,7 @@
|
||||
</div>
|
||||
|
||||
<div class="hiw-step">
|
||||
<div class="hiw-step-number">12</div>
|
||||
<div class="hiw-step-number">13</div>
|
||||
<div class="hiw-step-content">
|
||||
<h3>Global Distribution</h3>
|
||||
<p>Episodes are served through a CDN edge network for fast, reliable playback worldwide. The RSS feed is automatically updated and picked up by Spotify, Apple Podcasts, YouTube, and every other podcast app. The website pulls the live feed to show episodes with embedded playback, full transcripts, and chapter navigation — all served through Cloudflare with edge caching. From recording to available on every platform, the whole pipeline is automated end-to-end.</p>
|
||||
@@ -608,6 +616,17 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Post-Production Automation Video -->
|
||||
<section class="hiw-section">
|
||||
<h2>Post-Production in Action</h2>
|
||||
<div class="hiw-hero-card">
|
||||
<video class="hiw-video" controls playsinline preload="metadata" poster="">
|
||||
<source src="https://cdn.lukeattheroost.com/videos/reaper-postprod.mp4" type="video/mp4">
|
||||
</video>
|
||||
<p class="hiw-video-caption">The entire post-production pipeline runs automatically through Reaper scripting. Silence removal, ad ducking, and EBU R128 loudness normalization — all triggered with a single command when the show ends.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- CTA -->
|
||||
<section class="hiw-section hiw-cta">
|
||||
<p>Want to hear it for yourself?</p>
|
||||
@@ -622,6 +641,7 @@
|
||||
<footer class="footer">
|
||||
<div class="footer-nav">
|
||||
<a href="/">Home</a>
|
||||
<a href="/clips">Clips</a>
|
||||
<a href="/stats">Stats</a>
|
||||
</div>
|
||||
<div class="footer-icons">
|
||||
|
||||
Reference in New Issue
Block a user