# Polycarp narration

Status: all fifteen takes are reviewed and installed. On October 8, 2026 the
project owner accepted the complete reader preview and authorized commit and push.
`audio-production/final-listening-review.json` records the acceptance and exact
MP3/cue hashes. No rerolls or timing changes followed that review.

The accepted pilot takes were reused unchanged. The remaining eleven requests
completed without retries for 4,307 reported credits; total production used 5,314
reported credits for 12,074 input characters. Filtered listening time is 904.8
seconds (15m 05s), with 216 measured phrase cues.

`audio-production/pilot-listening-review.json` records the owner's initial sound
acceptance. `remaining-manifest.json` excludes the pilot to avoid duplicate
synthesis. `full-review-result.json` retains all raw/filter checks, hashes, costs,
and private output locations. The source manifests remain pinned and unchanged.

All files decoded, exact provider alignment text matched the approved inputs,
and filtering preserved sample counts without clipping. These checks do not
establish pronunciation quality or audible synchronization. The acoustic quiet
boundary screen flags possible early body highlighting in chapters 7 (+0.72s),
8 (+0.76s), and 11 (+0.76s); see `cue-acoustic-screen.json`. This heuristic is not
speech recognition; no timings were moved based solely on its results. Listen to
these openings and the final words of every track, because provider alignments
reach the take endpoints. No trimming or extra silence was applied.

Full private reader review:
http://127.0.0.1:8767/edition/projects/historical-sources/polycarp/
(requires the local preview server). It includes all recordings, phrase
highlighting, seeking, and automatic chapter continuation. The same reviewed recordings and cues are now installed in the repository's
public audio catalog. Earlier generation reports retain their original pending
status; final-listening-review.json records the subsequent acceptance.

## Reused production specification

Matthew Schmitz, voice `4QLC5fepxZkYmdD2IGRU`; `eleven_v3`, stability 0.5;
raw `mp3_44100_128`; First Clement’s approved `lp10k-v1` processing (129-tap
Hann-windowed sinc at 10 kHz, delay compensated, 192 kbps mono). Calm historical
reading, no music, editorial narration, or devotional additions.

`production-manifest.json` pins the canonical edition hash, each display/spoken
text and hash, normalization offsets, section hashes, and two bounded batches.
`pronunciation-lexicon.json` lists Polycarp-specific review targets. No untested
phonetic alias has been substituted into the text. Native pronunciations must be
listened to before overriding them. Displayed text remains unchanged.

The preparation script imports First Clement’s established heading and text
normalization functions. Chapter numbers are spoken as words; section numbers are
not spoken. Chapter 12’s printed `[Son of]` becomes spoken `Son of`, with exact
reversible offsets. No other wording change is permitted without a new ledger.

Dry-run either batch with the reusable generation script:

```sh
python3 scripts/audio-production/generate-first-clement-production.py \
  --manifest docs/projects/historical-sources/polycarp/audio-production/production-manifest.json \
  --batch 1 --output /absolute/private/output/polycarp-batch-01
```

The allowance was confirmed by the user. `--generate` sends the selected batch. Use a fresh
output directory. Attempts are journaled before transmission; errors stop without
retry. Check uncertain requests before retrying to avoid duplicate charges.

## Release checklist

- Verify each request journal, source/text hash, exact provider alignment, decoded
  duration and sample format, clipping, audible beginning and ending.
- Apply lp10k-v1 to separate review copies; preserve raw files outside Git.
- Derive phrase cues from measured provider/forced alignment, mapped through the
  normalization ledger. Never estimate timings from word count.
- Listen to every salutation/chapter, emphasizing Polycarp, Philippi, Ignatius,
  Zosimus, Rufus, Valens and Crescens. Record omissions, additions, pronunciation,
  accent drift, artifacts, pace, and final-word completeness per recording.
- Verify every cue against its displayed range, then review actual playback at
  normal speed, including seek, chapter change, pause, and automatic continuation.
- Install only reviewed selected recordings and hash-pinned cues. First Clement
  intentionally tracks final MP3s; keep large intermediate assets outside Git.

Existing Minimal Facts excerpts for chapters 1 and 9 remain available. They are
not represented as newly approved full-chapter recordings with spoken headings.

## Recreate the pilot review

The raw verifier now accepts `--manifest` and `--work-title` while preserving its
First Clement defaults. After generation:

```sh
python3 scripts/audio-production/verify-first-clement-production-batch.py \
  --manifest docs/projects/historical-sources/polycarp/audio-production/pilot-manifest.json \
  --work-title Polycarp --batch-output /absolute/private/output/polycarp-pilot
python3 scripts/audio-production/prepare-polycarp-listening-review.py \
  --manifest docs/projects/historical-sources/polycarp/audio-production/pilot-manifest.json \
  --batch-output /absolute/private/output/polycarp-pilot
```

The latter requires NumPy and imageio-ffmpeg and imports First Clement’s filter,
normalization-to-timing map, and phrase-cue functions. It refuses to overwrite
existing filtered output and never installs or marks a recording approved.

## Recreate the complete review

Use `assemble-polycarp-review.py --output /absolute/private/review-root` with
three repeated `--batch` paths (pilot, remaining batch 1, remaining batch 2).
It verifies audio and cue hashes, exact text, cue bounds, and complete body-text
coverage before assembling the reader replica. Serve that root with the repository's
range-capable static server. It does not modify the public audio catalog.

Use `audit-polycarp-review.py --catalog /absolute/private/review/audio/catalog.json
--output /absolute/path/screen.json` for the credit-free acoustic screen (NumPy and
imageio-ffmpeg required). The browser tests accept the reader URL via
`POLYCARP_REVIEW_URL`; run `tests/polycarp-audio-review.spec.js` to verify all tracks,
real seeking, phrase highlighting, pause, and automatic continuation. The tests
default to the installed reader when no private review URL is supplied.
