33 lines
1.8 KiB
Markdown
33 lines
1.8 KiB
Markdown
# CPU speech-activity diagnostic
|
|
|
|
Research tooling, separate from searchi's normal GPU-capable runtime. No model
|
|
download, transcription, source indexing or product default is changed.
|
|
Use the frozen source and model hashes in [the protocol](../../docs/SPEECH-VAD.md).
|
|
|
|
```sh
|
|
cmake -S tools/speech-vad -B .searchi/speech/build-vad-diagnostic -DWHISPER_SOURCE=/absolute/path/to/pinned/whisper.cpp
|
|
cmake --build .searchi/speech/build-vad-diagnostic --config Release --parallel 1
|
|
```
|
|
|
|
Run `searchi-vad-diagnostic MODEL PCM_F32LE`, retaining stdout and stderr
|
|
separately. Independently verify the model SHA-256 before running. Input must
|
|
be verified mono 16-kHz little-endian float32 PCM, at most ten minutes, with
|
|
finite samples. Decoder overshoot beyond unity is preserved without clipping.
|
|
CPU and one inference thread are fixed. Native error
|
|
logs invalidate detection even when upstream returns success. Probability
|
|
count must match the pinned 512-sample inference framing.
|
|
|
|
Output JSON retains every probability and raw centisecond interval, source
|
|
sample count and load/detection/segmentation milliseconds. Interval padding is
|
|
already applied. Preserve this raw output; a subsequent harness must explicitly
|
|
intersect intervals with actual decoded source samples and add the verified
|
|
source origin exactly once. Do not concatenate disjoint intervals without a
|
|
piecewise source map. Zero intervals are a valid no-speech decision, distinct
|
|
from nonzero exit status or missing JSON.
|
|
|
|
The wrapper fixes the preregistered segmentation parameters: threshold 0.5,
|
|
minimum speech 250 ms, silence 100 ms, maximum speech FLT_MAX, padding 30 ms,
|
|
overlap 0.1 seconds. It does not establish model accuracy or a production
|
|
speech gate. Compare the complete frozen speech/music/sound pool before judging
|
|
quality; preserve original Google audio retrieval regardless of transcription.
|