Validate complete speech decode windows and retain rejected ASR output

This commit is contained in:
karl committed 2026-10-13 09:03:20 +02:00
1 parent e28e20af38
commit af6ce29125
4 files changed
+146 -21

No files matched your search

+57 -8
View File
@@ -1,14 +1,15 @@
# Local spoken-passage alignment
Status: researched implementation proposal, 2026-10-13. No transcription worker,
download integration, or ASR quality result is implemented by this document.
Status: implementation proposal with an internal CPU diagnostic, 2026-10-13.
Production transcription, download integration and retrieval acceptance are open.
Google EmbeddingGemma 2 remains the production semantic model.
A bounded [CPU diagnostic harness](../tools/speech-eval/README.md) is now prepared.
Seven structural tests passed on Windows, including actual owned subprocess
failure, timeout, output overflow and retained diagnostics. Both candidate models
have now been downloaded and their exact bytes/SHA verified. Neither has been
loaded or evaluated; these tests establish no speech quality.
have now been downloaded and their exact bytes/SHA verified. Both loaded in the
internal experiment, whose truncated audio invalidated quality observations.
Corrected evaluation remains pending; structural tests establish no speech quality.
## Why add a transcript lane
@@ -44,8 +45,8 @@ after checking its bundled upstream revision and backend build flags; avoid mixi
it blindly with the pinned Google native stack.
[Rust API](https://docs.rs/whisper-rs/0.16.0/whisper_rs/struct.FullParams.html).
No runtime build or genuine inference proof was run during this research. Obtain
the coordinator's CPU slot before building or transcribing in the shared VM.
The initial research performed no inference. Subsequent coordinator-approved CPU
diagnostics are recorded below; production integration and acceptance remain open.
## Pinned assets and distribution
@@ -64,8 +65,8 @@ Use immutable download URLs of the form
Both downloads were independently checked against these exact bytes/SHA values
on 2026-10-13. The clean runtime checkout resolves to the pinned commit; model
URLs, verified hashes and MIT notices are retained under ignored
`.searchi/speech/provisioning.json`. This is provisioning evidence only: no
runtime build, model loading or inference has yet been performed. Commit an
`.searchi/speech/provisioning.json`. These hashes establish provisioning;
the subsequent internal runtime experiment does not establish release acceptance. Commit an
accepted distribution manifest only after model loading and runtime provenance
checks. Never accept upstream `for-tests-*` empty models.
[Upstream model provenance](https://github.com/ggml-org/whisper.cpp/blob/master/models/README.md),
@@ -176,3 +177,51 @@ transcripts, worker errors and inferred content never become executable instruct
Next implementation slice: isolated worker + manifest verification + genuine NASA
proof. Keep the initial runtime experiment separate from schema/ranking changes
until it establishes that recognized segments actually fix the measured problem.
## Actual internal CPU diagnostic, 2026-10-13
The clean pinned v1.9.5 source compiled with MSVC in **54.655 seconds**, jobs one,
static whisper/ggml, `GGML_NATIVE=OFF`; CUDA, Vulkan, Metal, BLAS and OpenMP were
explicitly disabled in the recorded CMake cache. This is an **internal CPU test
executable**, not a normal distribution or portability proof. The compiled CPU
variant uses AVX2; an older-CPU release has not been validated. The executable SHA
is `12c681b4bcd9c7679b647b9a041e121a2f9e72cb2a9c6f189f529ec8b79c36f8`.
Help flags were checked and actual runs pass `--no-gpu --threads 1 --processors 1`.
Dumpbin found Windows system/UCRT and MSVC runtime imports, with no external
ggml/whisper/GPU imports. Existing VM runtime availability is not a clean-machine
or older-Windows dependency-closure guarantee.
The initial bounded base experiment completed all five source files; the small
experiment was stopped by terminating only its owned process tree after a material
harness bug was identified. Both are classified **INVALID_TRUNCATED_AUDIO**.
`atrim=end_sample` was applied before explicit 16 kHz resampling: a planned
30-second window supplied approximately 10 seconds from 48 kHz sources or 10.884
seconds from 44.1 kHz sources. Recognition omissions and process costs from those
runs cannot establish complete-window model quality or throughput. Earlier draft
observations about base/small recognition are withdrawn; no ASR model default or
improved search score follows from these invalid experiments.
Actual downloaded NASA publisher captions are independently retained: 2204 bytes,
SHA `80d82def36547d95c512034deb9df9d3d0160579a43c8177e6ca988d3b02b04b`.
Their utterance intervals agree with the frozen v1 labels. Comparing recognized
text against these captions must be repeated after corrected decoding.
[NASA publisher captions](https://images-assets.nasa.gov/video/Artemis%20Origins/Artemis%20Origins.srt).
No independent human audio listening has been performed.
The decoder now explicitly resamples to 16000 Hz before trimming and resets sample
timestamps. Every decoded WAV records its frame count and rejects coverage outside
expected duration minus at most one millisecond. Actual CPU FFmpeg regressions
verified both 44.1 kHz and 48 kHz sources: a 30-second window has exactly 480000
samples and a one-second tail exactly 16000. Generated silent WAVs exercise
resampling mechanics only; they are not ASR quality fixtures. Ten tests passed in
1.406 seconds, including rejection of threefold truncation, bounded owned-child
errors/timeouts/output, retained diagnostics and continuation after invalid ASR
timestamp output. They do not establish speech recognition quality.
Historical raw/checkpoint hashes and invalid classification remain under ignored
`.searchi/speech/invalid-truncated-audio.json`; model bytes and actual raw outputs
are excluded from Git. The owned sequential session 20331 is terminal with exit 1
following intentional invalid-experiment termination. Corrected base/small
inference is paused pending the coordinator's CPU slot, followed by independent
caption review and genuine Google transcript ranking. Neither candidate is an
accepted product default; the media quality rating remains 4/10.