Andrea Caravello
← All projects

Case 04 / Applied AI & editorial operations

AI House editorial pipeline

A two-hour talk shouldn’t die in a folder. This turns it into 30–90-second excerpts and LinkedIn drafts, with the warnings left visible.

My roleWorkflow co-design & application integration
Evidence status · 28 Oct 2026Fresh Docker product run recorded · human review pending

Outcome · self-reported scopeChannel results during the period: 485k LinkedIn impressions and 5 new content formats (Oct–Feb), plus followers 8,080→13,500, vs 113k impressions in the previous full year; different windows, channel context, not an isolated measure of this pipeline’s contribution.

The challenge

A two-hour talk holds more than one post can carry. The craft problem: find the one point that survives as a 30–90-second excerpt, then not flatten what made it good.

My role

I co-built the historical workflow at AI House, from transcription through excerpt selection and drafting. The current demonstration reconstructs the scorer; its original rubric and weights were not recovered. For that reconstruction, six official Shorts and two full talks were reviewed to ground the editorial criteria in the channel’s output.

The approach

Talk in, upload-first: Whisper transcribes, an editorial scorer ranks the moments, one excerpt is cut with its source timestamps, and a draft lands in front of a human. Nothing posts itself, and the Whisper/pyannote repo is one component of the system, not the system.

Product demo · designed visualization · figures from the verified run04
From a recording to an editorial decision.Designed demonstration, not a screen recording: the six stages with the verified run’s figures (2:53.3 source, 64.0s excerpt at 00:52.7→01:56.7 · S0018 · its draft). Scoring labelled recorded reconstruction; “human review pending · ASR check” visible throughout. Silent loop; descriptive captions. The 95s genuine-run recording is preserved in the packages.Read the descriptive captionsDownload the demoRead the 95-second run transcript

Editorial workflow

The six stages, in spec form
System illustration · not a screen recording04
Stage 01Source
  • 173.3s synthetic speech
  • 95s captioned recording of the run
Stage 02Runtime
  • Docker: non-root
  • read-only mounts · internal network
  • host relay mediates access
Stage 03ASR
  • Whisper · 32 segments
  • warnings kept visible
Stage 04Scoring
  • editorial scorer
  • labelled reconstruction
  • historical scoring code not recovered
Stage 05Excerpt
  • 64s at 52.7–116.7s
  • decoded and checked
Stage 06Draft
  • 2 real model calls
  • human review in the loop
  • nothing posted
Synthetic speech · no real event-audio rightsMinor ASR defects did not block the draftHuman review pending; nothing posted

Figures describe the verified 23 October delivery only. The scorer is a labelled reconstruction, production scoring code wasn’t recovered, and no event-audio rights are implied.

Talk → transcriptText with source timestamps
Score → selectEditorial fit · new or insightful points
Extract → draft30–90-second excerpt + LinkedIn post

The diagram reflects the historical workflow I describe, not an execution trace. Scoring served AI House’s editorial needs; exact rubric and weights aren’t recovered.

Inside the transcription component

Whisper transcribes; optional pyannote supplies speaker spans. The merger assigns each segment to the speaker with the most overlap time; no overlap = Unknown. Diarization off = plain transcription.

Scoring and alignment serve different decisions

Alignment: who spoke. Scoring: which moment is worth extracting. A correct transcript doesn’t make an excerpt worth using, that’s a separate judgment.

The rubric didn’t come from taste: six official Shorts and two full talks were reviewed first. Eligibility gates sit outside the score. 30–90s contiguous source bounds, quotes tied to ASR segments and a source hash, qualifications and opinion status preserved. ASR is never silently rewritten into a different claim, and a defensible excerpt that can’t fit the bounds gets rejected, not forced.

Excerpts lose context and cut qualifications, so the demo keeps timestamps and shows the passage around the quote. 30–90s describes the excerpt, not the talk or a speed benchmark.

The merger stays separate from UI and model execution, alignment tests stay small and dependency-free. Overlap is heuristic: one segment can hold several voices; labels don’t establish identity.

The setup

Runs in Docker: one non-root container, read-only model mounts, internal network, with a localhost relay mediating access. The Gradio interface is upload-first; Whisper weights are cached locally and every transcription run is fresh.

The evidence

What was validated, and where the SRT defect remains

Historical workflow. The account above is my description of the AI House work, confirmed 23 October 2026. Scoring source, ranked candidates and post drafts aren’t yet in this evidence pack.

Public output reference. AI House Davos publishes excerpts on its Shorts channel; “Sovereign AI explained” is one example. Not attributed to me, not proof of scorer selection.

AI House Davos Shorts ↗ · Example of the channel’s format ↗

Repository component. A one-line syntax repair (12 October 2026) passed parsing; overlap, Unknown, empty-input and formatting checks passed. A millisecond-carry boundary test exposed an SRT defect that remains.

Those checks cover the repo only. The recorded reconstruction ran fresh Whisper transcription, source-bound scoring, real excerpt extraction and drafting, diarization off.

View the transcription component repository ↗

Results and limitations

Co-built, not sole authorship: Whisper and pyannote supply model capabilities. Not established: scorer training, exact weights, clip-cutting implementation, auto-publishing, time savings.

The historical workflow ran on hour-plus talks; this synthetic demo is not a long-input benchmark. One fresh Docker Whisper run: 173 seconds of fiction → 32 timestamped segments in 27.1s, two genuine scoring/drafting calls, a real 64-second clip, this run’s timing, not a speed claim. Rubric and interface are reconstructions. Raw ASR intact; the draft flags errors and drops an unfinished point. No event media, private conversations or auto-publication. Cached weights reused, transcription fresh; repo unchanged.

What it produces · verified run output04
Most checks do not prove the system is safe. They make an error claim inspectable. In this made up example, the review includes two separate questions. Can someone understand the explanation? And does the test set represent the situation where an error would matter? Neither answer replaces the other. Explanations can be useful, they are simply not the entire test. Synthetic demo, not a real AI House talk.
schema & reference gates: passsynthetic disclosure: passno new numeric tokens: passsemantic fidelity: not automatically guaranteedmanual ASR review: pending
Upload → transcribe → score → excerpt → draft → review: this is the draft the run produced.Output of the verified run, carrying its synthetic disclaimer. Its gates show what automation checks, and what it doesn’t: semantic fidelity isn’t guaranteed, and manual ASR review is human.

What I learned

Keep the warnings in. A clean-looking transcript that hides its doubts is worse than a rough one that shows them, and the unglamorous tests are the ones that find the defects that matter: the SRT boundary case earned its place.