Freeze normal-runtime speech timing regression without timestamp selection
This commit is contained in:
1 parent
e68f4fcadc
commit
2c3c91179b
7 files changed
+819
-31
No files matched your search
@@ -51,3 +51,90 @@ comparison scoring, and hallucinations on music/silence remain measured failures
|
||||
No provider, ranking weight, rejection threshold or production policy is chosen
|
||||
from this small experiment. The two readings share translated subject matter and
|
||||
the seam controls repeat real samples artificially.
|
||||
|
||||
## Completed v1 CPU execution
|
||||
|
||||
The frozen evaluator/source snapshot (`48f11de` / service `dab7034`, run at
|
||||
`2f9190c`) completed once with the verified internal CPU v3 runtime. All four
|
||||
core controls, ten queries, two seam sources and eight native source windows
|
||||
were retained. Every PCM window matched the independently decoded expected
|
||||
source; published recognized excerpts were byte-verified through the service.
|
||||
Both cases have zero speech/indexing failures and eligible complete comparisons.
|
||||
|
||||
- Six positive queries retrieved a relevant file first: **6/6**, recall@5 **6/6**,
|
||||
MRR **1.000**. Either translated recording is relevant under the frozen labels.
|
||||
- Music and exact silence produced **zero accepted speech passages**.
|
||||
- All four absent-topic queries still returned files: **4/4 no-answer failures**.
|
||||
- English and German each retain all seven reference **substrings**. This is not
|
||||
exact recognition quality: German contains `Artikel 1s` and
|
||||
`Geisterbrüderlichkeit`, rather than the corresponding publisher phrasing.
|
||||
- Seam windows preserve complete source coverage, bounds and citations, but
|
||||
overlap text includes duplicate/partial or incorrect recognition, including
|
||||
`Alemin`, `Einstiegleins` and `dignity and dignity`. These observations are
|
||||
retained, not repaired or omitted. No precise point/localization score follows.
|
||||
|
||||
Core indexing took **127.61 seconds**, with **61.57 seconds** reported ASR.
|
||||
Seam indexing took **163.37 seconds**, with **121.23 seconds** reported ASR.
|
||||
Index timers include decoding, native work, Google and storage; native substage
|
||||
times are nested, not additive with the full timer. Runtime/model verification
|
||||
and query setup/warmup are separate in the summary. Normal Auto-runtime compilation
|
||||
with one build job could overlap these shared Windows VM measurements; they are
|
||||
not isolated hardware throughput. Eight logical CPUs and 16708012 KiB visible RAM
|
||||
were exposed, but inference deliberately used one CPU thread. No normal Auto/GPU
|
||||
quality or performance conclusion is inferred from this internal CPU artifact.
|
||||
|
||||
[Recomputed summary](evaluation-v1-summary.json) records every query outcome,
|
||||
runtime/model/source hashes, cases and limitations. Immutable ignored artifacts:
|
||||
|
||||
| Artifact | Bytes | SHA-256 |
|
||||
| --- | ---: | --- |
|
||||
| `preflight.json` | 2075 | `63a0a615d37766b852c34473712156e950aeeb5a472a709bff6be00b7b26cb7a` |
|
||||
| `report.json` | 174868 | `79ecb75d31c0193642c81862fd5476ad47adca518d4959e436bdd472cc281798` |
|
||||
| `scored.json` | 5608 | `21d9bc84410cc63b96e2b575d99cd3c09834dfd9d2db2d0f356159df12e048e9` |
|
||||
|
||||
These files remain under `.searchi/qa/speech-service-validation-v1`, together
|
||||
with every accepted native-call/query record and owned source/database. No
|
||||
fixture, ranking parameter or provider was tuned from these results. Production
|
||||
integration has meaningful real evidence here, while representative German
|
||||
speech, precise publisher-timed localization, seam text handling, native UI,
|
||||
broader media relevance and calibrated absence remain open.
|
||||
|
||||
## Frozen original media timing regression mode
|
||||
|
||||
`--media-v1-timing` reuses the same shared-service evaluator for the original
|
||||
five complete sources: NASA `clip04`, piano `music01`, violin `music02`, bark
|
||||
`sound01` and roaring effect `sound02`. All original source bytes and extensions
|
||||
are preserved. This runs the actual live-window policy, not the older full-source
|
||||
VAD decisions. It retains every raw media lane and every recognition output/error;
|
||||
the 254-second piano's ten overlapping windows are not dropped as irrelevant.
|
||||
|
||||
The eight original publisher-timed speech queries/labels and fixture SHA remain
|
||||
unchanged. The small additional timing policy pins the normal Auto-distribution
|
||||
runtime, Google worker, decoders and existing `score.py` scoring-function hash.
|
||||
Its SHA-256 is
|
||||
`816b727f0447f2412b1fbe03a32ad928bdbe9c4f440bc0e7543e4b89c4dad3f0`.
|
||||
Normal Auto compilation is distinct from this VM's forced CPU execution.
|
||||
|
||||
```powershell
|
||||
cargo test --manifest-path tools/speech-eval/native-validation/Cargo.toml --locked -- --include-ignored
|
||||
python -m unittest discover -s tools/speech-eval -p test_score_service_timing.py
|
||||
$env:SEARCHI_FORCE_CPU = '1'
|
||||
cargo run --manifest-path tools/speech-eval/native-validation/Cargo.toml --locked -- --media-v1-timing fixtures/media/fixture.json tools/speech-eval/native-validation/media-timing-policy.json C:/Users/karl/.searchi/models/embeddinggemma2 .searchi/runtime/auto/Release/searchi-gemma-worker.exe .searchi/s-a1/runtime/searchi-speech-worker.exe .searchi/speech/models/ggml-base.bin .searchi/speech/models/ggml-silero-v6.2.0.bin .searchi/media-runtime/bin/ffmpeg.exe .searchi/media-runtime/bin/ffprobe.exe .searchi/qa/speech-live-timing-v1
|
||||
python tools/speech-eval/score_service_timing.py .searchi/qa/speech-live-timing-v1/report.json fixtures/media/fixture.json tools/speech-eval/native-validation/media-timing-policy.json .searchi/qa/speech-live-timing-v1/scored.json
|
||||
```
|
||||
|
||||
The real-source preflight test verifies all five hashes and original extensions
|
||||
without loading any model. Freeze/commit the evaluator policy before inference
|
||||
and obtain the exclusive CPU slot. Original video/frame and music encoding can
|
||||
take several minutes; this narrow timing regression does not change indexing
|
||||
budgets, model/ranking policy or source files to make the run cheaper.
|
||||
|
||||
The adapter calls the existing publisher timing scorer's unchanged `score`
|
||||
function. It uses only the actual hybrid **first result** and its byte-verified
|
||||
recognized-speech excerpt's start/end. A raw audio/video first result remains an
|
||||
explicit recognized-speech timing failure, with its original result retained;
|
||||
no lower-ranked passage or label-selected timestamp replaces it. Failed or
|
||||
missing source windows prohibit numeric accepted timing scores. Historical
|
||||
full-source gated DTW **6/8** is context, never an inherited result or an isolated
|
||||
causal comparison with this end-to-end hybrid run. No new timing score exists
|
||||
until this exact mode executes and all checks finish.
|
||||
Reference in new issue
Block a user