Skip to content

[Speech] Add explicit original-media time maps and aligned subtitle exports #440

Open

Description

@szmyty

2026-10-12 — implementation merged; qualification deferred

PR #439 was merged with explicit maintainer authorization at 31822e5348dd7793b1beb8a79817809aa0dc00c4. Tests, compilation/builds, schema validation, formatting/linting, native qualification, and CI remain deferred; merge does not establish acceptance or release readiness. This issue stays open for the recorded qualification work. Implementation work now moves to existing issue #429; no new feature scope is added by this status update.


Outcome

Add an explicit offline mapping operation that derives original-media-timeline subtitle candidates from a verified saved speech result. This is a separately scoped follow-up to #428 under #421; #428 excludes advanced temporal editing unless separately scoped.

Prepared audio currently resets timestamps to decoded samples from zero. Recorded stream start time alone cannot restore discarded gaps or offsets. A caller must supply and pin the mapping they intend to apply.

First checkpoint

  • Add speech align --receipt FILE --receipt-sha256 SHA --mapping FILE --mapping-sha256 SHA --output-dir DIR and a library API.
  • Accept a graph-produced saved-result.json only through the existing complete retained-evidence verifier.
  • Accept a bounded strict renderflow.speech-time-map/v1 JSON sidecar, pinned by SHA-256, bound to the exact saved receipt, original source, recognized WAV, and canonical transcript.
  • Limit the first profile to prepared-media results and operator-supplied piecewise one-to-one millisecond translations. Source and destination intervals must be monotonic and nonoverlapping.
  • Require each complete cue to fit one declared interval. Refuse missing coverage, boundary-crossing cues, invalid order, unsupported fields, stale identities, duration violations, and overflow; do not clip, split, drop, or rescale cues.
  • Preserve text, IDs, language, speakers, overlap policy, and original saved artifacts.
  • Publish a separate alignment envelope, exact mapping bytes, mapped canonical JSON/SRT/WebVTT/text, and a receipt-last new-directory bundle with hashes and loss disclosures.
  • Mark the mapping as an operator assertion. Hash verification and interval consistency do not establish synchronization truth, original-media reobservation, or human approval of recognized words.
  • Keep generic timeline assessment, recognition cache, and native speech provenance unchanged.

Acceptance criteria

  • Strict mapping schema and implementation agree, with bounded parsing and cancellation.
  • Exact receipt/source/transcript identity binding prevents applying stale maps.
  • Interval translation preserves whole cues or refuses the operation.
  • Derived exports carry a separate mapping/provenance record and never replace the original transcript.
  • Existing destinations are refused; interruption cannot produce a successful receipt for an incomplete bundle.
  • CLI and library have usable documented contracts.
  • Focused deterministic fixtures and CLI/schema checks pass when execution checks resume.

Non-goals

Automatic synchronization, FFmpeg timestamp inference, muxing or burn-in, speed changes, word/lyric alignment, editing recognition text, another native inference, or certifying the caller's mapping against original media.

Current execution boundary

The user authorized the next implementation checkpoint after draft PR #439 checkpoint 5. Tests, compilation/builds, schema validation, formatting/linting, native smoke/inference, installation, and CI remain deferred. Author coverage and source-review now; keep the implementation draft and acceptance unchecked until execution qualification resumes.

Authored checkpoint — 2026-10-12

Implemented in stacked draft PR #439, checkpoint 6: 5fcaf0c4555c3dd078c8ed3f94e03ec0895b0540. Includes the mapping API, offline speech align command, three schemas, new-directory derivative bundle, and documented usage. Fifteen focused cases were authored (one Unix-only); none were executed. Source-only review found no blocking defect. Acceptance remains unchecked pending compilation and runtime/schema qualification. No merge or release.

Implementation handoff · User guide

Audit-to-roadmap reconciliation — 2026-10-21

Audit: https://github.com/egohygiene/renderflow/blob/audit/flow-suite-20261021T025401Z/audits/flow-suite-20261021T025401Z.md · Complete roadmap: #367

Original-media time-map/aligned-export implementation merged; whole-cue piecewise mapping does not promise automatic synchronization.

Bounded preparation: Review source/transcript/time-map binding and discontinuity/gap/overlap cases.

Full outcome remains gated (*): Deferred schema/compiler/runtime qualification over #428 evidence; no automatic mux/burn-in.

The maintainer's implementation-sprint qualification deferral remains in force. This audit ran no Renderflow tests, compiler/build/Cargo resolution, product lint/format/schema qualification, native/CLI/provider/visual execution, installers or new CI. Reading existing exact-source provider records is not a qualification rerun. Source implementation and authored tests are not passing-test, native-fidelity, release or downstream-consumer evidence.

This is an additive planning note. The full original issue, acceptance criteria, scope, parent references and historical checkpoints remain authoritative and unchanged. No acceptance box or issue is closed by this audit. Recommended ledger parent: #421.

Activity

  1. added a commit that references this issue on Oct 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions