A frontend-agnostic core for the audio transcription workflow — composes isolated capability workers (audio conversion, VAD segmentation, batch transcription, persistence) into a headless pipeline, with a CLI as its first driver.
Project description
cjm-transcription-core
A frontend-agnostic core for the audio transcription workflow — composes isolated capability workers (audio conversion, VAD segmentation, batch transcription, persistence) into a headless pipeline, with a CLI as its first driver.
Modules
cjm_transcription_core.boundaries— Wall-clock-aware segment boundary computation: group VAD speech chunks into segments cut at silence-gap midpoints. Pure logic — no capability calls. Final home of the algorithm originally validated in cjm-transcription-audio-segment's AudioSegmentService.compute_segment_boundaries (that library is retired to cj-mills_deferred/).cjm_transcription_core.cli— The CLI driver — the workflow core's first (and currently only) frontend.cjm_transcription_core.emission— Graph-root emission (CR-18 revolution 2): a completed source EMITS Source -> AudioSegment -> Transcript into the shared context graph — the graph BEGINS at transcription (where-graph-begins resolution: ingestion is the first EXTENDER that plants the root). Deterministic identity tuples make emission idempotent: re-runs (cache hits included) collide into verified no-ops instead of duplicating roots (the E13 hazard, relocated into graph creation and discharged).cjm_transcription_core.models— Data shapes for the transcription pipeline: run configuration + the run-manifest result containers. The run manifest is the pipeline's durable output record: which sources were processed, how they were segmented, and where each segment's transcription landed (capability data DBs remain the authoritative text store; the manifest records the run's shape + provenance pointers). It is a deliberate proto-bundle — the CR-20 provenance-bundle infrastructure is expected to absorb/replace it.cjm_transcription_core.pipeline— The headless transcription pipeline: VAD analysis -> boundary computation -> segment cutting -> per-segment model-input conversion -> transcription, composed over capability workers via the substrate's JobQueue. Between-stage outputs are threaded manually (run job -> read result -> submit next); the per-segment fan-out rides a CR-16 ports Composition with OutputRef bindings (this module was the real-world consumer of the original submit_sequence piping gap — pass-2 evidence in claude-docs/pass-2-evidence.md). HITL approval seams use the cheapest viable form (log + optional CLI prompt) per the cores-cluster guard-rails; each seam carries its 5-field HITL-assist annotation in its docstring.
API
cjm_transcription_core.boundaries
compute_segment_boundariesfunction — Group VAD chunks into segments cut at silence-gap midpoints.
cjm_transcription_core.cli
build_parserfunction — Build the CLI parser (subcommands: run).load_capabilitiesfunction — Discover manifests + load each requested capability (default instance).mainfunction — CLI entry point (console script:cjm-transcription-core).parse_max_concurrentfunction — Parse repeatable--max-concurrent NAME=Nvalues into a per-capability cap map.run_commandfunction — Execute therunsubcommand: full pipeline over the given audio files.
cjm_transcription_core.emission
build_source_emissionfunction — Build the graph-root payload for one source (pure; no capability calls).emit_source_graphfunction — Idempotently emit one source's graph root through the task channel.
cjm_transcription_core.models
PipelineConfigclass — Configuration for one transcription pipeline run.RunManifestclass — Durable record of one pipeline run (proto-bundle; see CR-20).SegmentRecordclass — One segment of a source audio file, with per-transcriber transcripts.SourceResultclass — Pipeline result for one source audio file.new_run_idfunction — Generate a unique, sortable run id.
cjm_transcription_core.pipeline
analyze_vadfunction — Run VAD analysis on one model-ready audio file (task channel: vad/detect_speech).build_segment_compositionfunction — Build the per-source fan-out composition: N independent [preprocess→]convert→(T× transcribe) pipes.collect_capability_infofunction — Record capability identity + data-DB pointers for the run manifest (provenance).confirm_seamfunction — HITL approval seam in its cheapest viable form (log + optional CLI prompt).convert_for_vadfunction — Convert a source to MODEL-READY audio for VAD via the ffmpegconvertaction.cut_segmentsfunction — Cut the source audio at the computed boundaries via ffmpegsegment_audio.normalize_vad_resultfunction — Normalize a typed VAD result into sorted speech chunks + the reported duration.probe_durationfunction — Probe a media file's duration via the ffmpeg capability'sget_infoaction.records_from_compositionfunction — Fold a completed segment composition back into SegmentRecords.run_pipelinefunction — Run the transcription pipeline over the given sources, in order.run_sourcefunction — Run the full pipeline for one source: VAD → boundaries → cut → [preprocess →] convert → transcribe.submit_and_waitfunction — Submit one capability job, wait for it, and return its result (raise on failure).tier1_segment_checksfunction — Tier-1 deterministic pre-filters for the boundary-review seam (no AI).tier1_transcript_checksfunction — Tier-1 deterministic pre-filters for the transcript-review seam (no AI).
Dependencies
Depends on: cjm-capability-primitives, cjm-context-graph-layer, cjm-context-graph-primitives, cjm-substrate, cjm-transcript-graph-schema, cjm-transcription-adapter-interface
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cjm_transcription_core-0.0.2.tar.gz.
File metadata
- Download URL: cjm_transcription_core-0.0.2.tar.gz
- Upload date:
- Size: 33.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73e34870445b50847d4f288ab9024ce16ce296eb7cc1b4ca1dbdbef6d72cadb1
|
|
| MD5 |
964c0e8c1c5b92095f0a7c78d15060fb
|
|
| BLAKE2b-256 |
92d6c63111dc25262c8ef1db9e776e96a9b35b42a7188513b1c157ceaa42ee98
|
File details
Details for the file cjm_transcription_core-0.0.2-py3-none-any.whl.
File metadata
- Download URL: cjm_transcription_core-0.0.2-py3-none-any.whl
- Upload date:
- Size: 30.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
98bece152b4794b52ec2f32f4bf236dfe3aee9ee2a7109b9bc7809dab3b7f75e
|
|
| MD5 |
fe418f2c676d14960fe05a8c358f24d6
|
|
| BLAKE2b-256 |
3810d758d829cfbc491f877d9cd9b09759e467c4f84d1f2024616ee59c460082
|