diff --git a/apps/desktop/src-tauri/installer-hooks.nsh b/apps/desktop/src-tauri/installer-hooks.nsh new file mode 100644 index 0000000..f1e23bb --- /dev/null +++ b/apps/desktop/src-tauri/installer-hooks.nsh @@ -0,0 +1,4 @@ +; Keep duplicate native backends/redistributables compressible across the full +; resource tree. This affects installer compression only, not application memory. +; NSIS extraction needs approximately 128 MiB for this LZMA dictionary. +SetCompressorDictSize 128 diff --git a/apps/desktop/src-tauri/tauri.conf.json b/apps/desktop/src-tauri/tauri.conf.json index 5fe70cc..12ea296 100644 --- a/apps/desktop/src-tauri/tauri.conf.json +++ b/apps/desktop/src-tauri/tauri.conf.json @@ -26,6 +26,7 @@ }, "bundle": { "active": false, + "windows": { "nsis": { "installerHooks": "installer-hooks.nsh" } }, "resources": { "resources/": "" }, "icon": [ "icons/32x32.png", diff --git a/docs/SPEECH-INTEGRATION.md b/docs/SPEECH-INTEGRATION.md index 288f35f..1ee794d 100644 --- a/docs/SPEECH-INTEGRATION.md +++ b/docs/SPEECH-INTEGRATION.md @@ -53,7 +53,7 @@ inference budget. - [x] Current CPU native worker English/German context reuse and Unicode paths. - [x] Actual shared-service ASR plus Google lifecycle integration. -- [ ] Frozen independent four-file/ten-query and separate seam evaluation. +- [x] Frozen independent four-file/ten-query and separate seam evaluation. - [ ] Normal hardware-detecting runtime staging and Windows package startup. - [ ] Publish/install the verified Windows update. - [ ] Native playback and graphical interaction, actual GPU execution, and @@ -90,3 +90,35 @@ nested MSBuild path length. Its log is retained, SHA `59f1820d6ac6adac6f525d8084c442c1ed261753eb34fcce916dc157041f777c`. An unchanged build in a shorter owned output directory is underway; no CPU-only distribution was substituted. + +The shorter-path normal auto build subsequently completed. Worker SHA +`0b716fa17e8216ed46c7755d15acab20f658254b99780c7a68bab03d765c55bc`, +inventory SHA +`0e116c604141af147bd91736ec0722a0660dcda8c9da008e494c464753f4e5a1`. +It contains private Vulkan/CPU backends, loader and matching Microsoft runtime +files. The current normal artifact passed genuine repeated English recognition +from Unicode paths with CPU forced. Fifty owned-process samples observed the +CPU backend and no Vulkan modules; sampling alone does not prove absence at +every instant. The pinned CPU-only loading branch complements that observation. +See [runtime evidence](../tools/speech-runtime/README.md). + +## Frozen independent retrieval + +The four-file fixture retained both real English/German recordings, instrumental +music and silence, plus all ten frozen queries. Six positive queries found a +relevant file first, with recall@5 also 6/6. Music and silence produced zero +accepted recognized passages. **All four absent queries still returned files.** +The two readings share translated subject matter; this is a small file-retrieval +test, not broad media accuracy or verified passage/word timing. + +Every expected window input and published citation passed source validation, +including four windows across the two separate artificial seam sources. +Transcription errors, partial boundary phrases and overlap duplicates remain in +the evidence. Concept substring coverage is not a word-error score. Root +independently recomputed the exact recorded scorer output. + +The complete report is 174868 bytes, SHA +`79ecb75d31c0193642c81862fd5476ad47adca518d4959e436bdd472cc281798`. +It uses the internal v3 CPU artifact and does not establish normal auto runtime +quality parity or GPU performance. Details and the retained comparison are in +[the evaluator](../tools/speech-eval/native-validation/README.md). diff --git a/tools/speech-runtime/README.md b/tools/speech-runtime/README.md index 7ca788e..64dcdae 100644 --- a/tools/speech-runtime/README.md +++ b/tools/speech-runtime/README.md @@ -36,6 +36,27 @@ inventory SHA-256 `4904995685a5e55e0a790d9cc409dc8458e39c30cda4097c5d70bf75cb5c9 This static CPU artifact does not prove normal dynamic-loader isolation, GPU execution, speech retrieval quality or precise independently annotated timing. +The subsequent **normal Windows auto** build completed with all 27 inventoried +files (58,913,466 bytes). Its worker SHA-256 is +`0b716fa17e8216ed46c7755d15acab20f658254b99780c7a68bab03d765c55bc`; +inventory SHA-256 `0e116c604141af147bd91736ec0722a0660dcda8c9da008e494c464753f4e5a1`. +The same English Unicode/context test passed with forced CPU: first/warm ASR +41.31/38.46 seconds, warm load zero, fallback zero. Packaging compilation overlapped +this shared VM run, so these are functional timings, not a clean benchmark. +Fifty snapshots of the owned worker observed `ggml-cpu-cascadelake.dll`, +`ggml.dll`, `ggml-base.dll` and `whisper.dll`; neither `ggml-vulkan.dll` nor +`vulkan-1.dll` was observed. The pinned CPU-only loader branch loads only the CPU +module. Sampling alone does not prove that a module was never loaded. +Ignored observation artifact SHA-256: +`5a090b34e6a0d1ad88893295bc8db54e01f818db2ec20aca3c097d277720e158`. +Actual GPU execution/fallback and other operating systems remain unexecuted. + +Windows MSBuild's nested Vulkan shader compiler failed with a long build output +path; the failed log SHA-256 is +`59f1820d6ac6adac6f525d8084c442c1ed261753eb34fcce916dc157041f777c`. +An unchanged-source build using a shorter owned output path completed. Prefer a +short build output directory on Windows; no CPU-only distribution was substituted. + The persistent worker receives binary requests: operation byte (1 live VAD, 2 contiguous recognition), little-endian u32 sample count and mono little-endian f32 PCM, at most 480000 finite samples. Responses have a four-byte little-endian