Repository navigation
Comparing changes
Open a pull request
base repository: mudler/parakeet.cpp
base: v0.6.0
head repository: mudler/parakeet.cpp
compare: v0.6.1
- 5 commits
- 55 files changed
- 2 contributors
Commits on Oct 5, 2026
-
feat: add parakeet_capi_speaker_embed_pcm to return a voice embedding
A host that keeps voices in its own store had no way to get an embedding out of a speaker context: the encoder was only reachable through enroll and identify. Add parakeet_capi_speaker_embed_pcm, which reuses the helper behind enroll and returns a malloc'd L2-normalized vector, and parakeet_capi_free_floats as its documented pair. Non-16 kHz input is resampled as enroll does. On error the outputs are NULL and 0 and the message is on the speaker context. Additive: keeps ABI v10, callers probe the symbol. Assisted-by: Claude:claude-sonnet-5-5 [Claude Code]
Configuration menu - View commit details
-
Copy full SHA for e0d2d4a - Browse repository at this point
Copy the full SHA e0d2d4aView commit details -
test: cover parakeet_capi_speaker_embed_pcm
Check argument errors and output reset, dimension against parakeet_capi_speaker_dim, determinism, resampling, and that one voice scores higher than two different voices. Run it on a standalone encoder GGUF and on a bundle voice component, and check the two give the same embedding. The model checks skip (77) without the GGUFs. Assisted-by: Claude:claude-sonnet-5-5 [Claude Code]
Configuration menu - View commit details
-
Copy full SHA for f36fddc - Browse repository at this point
Copy the full SHA f36fddcView commit details -
docs: describe speaker embeddings from the C API
Document parakeet_capi_speaker_embed_pcm and parakeet_capi_free_floats in speaker.md, note in bundle.md that a voice component embeds in the same space as the standalone encoder, and add a README entry. Assisted-by: Claude:claude-sonnet-5-5 [Claude Code]
Configuration menu - View commit details
-
Copy full SHA for 2f9e8ea - Browse repository at this point
Copy the full SHA 2f9e8eaView commit details
Commits on Oct 6, 2026
-
feat: opt-in VAD run gate for the Ultra/Redux heads, and the real-rec…
…ording VAD evidence (#96) * feat: add an opt-in run gate to the VAD segmenter The Ultra and Redux heads call steady noise speech, but a noise run sits on a plateau while a speech run sits high. Add SegmenterOpts::run_gate (default 0 = off): a speech run, a stretch of frames with p >= threshold found before bridging, is dropped when the median of its frame probabilities is below the gate. A median equal to the gate keeps the run. The gate acts first, so dropped frames are silence for bridging, min_speech, pauses and trim. It works for any detector and frame size, in both modes. The streaming event tracker has no run median and ignores it. Expose it as the "run_gate" key (a number in [0, 1)) of the VAD options JSON, so the vad functions and the transcribe functions that take VAD options accept it, and as --run-gate on `parakeet-cli vad` and --vad-run-gate on `transcribe --vad`. A VAD stream refuses a non-zero value instead of ignoring it. With the gate off the output is unchanged byte for byte. Tests use synthetic probability streams at 0.08 s and 0.032 s frames with exact expected runs, the boundary, bridged gaps, a low median under a high peak, the trim, the option parser and CLI errors. A model test runs the gate on a clip with a seeded noise stretch for the head slice, Ultra, Redux and Silero. Assisted-by: Claude:claude-sonnet-5-5 [Claude Code] * docs: the run gate, and the VAD study on real recordings Describe the run gate in docs/vad.md: the definition of the run median, how to use it, what it costs and what it does not do (music still triggers a head, and it is not a noise rejector). Add a Real recordings section to docs/vad-benchmarks.md: 59 recordings with human labels and 2.6 h without speech. It reports frame F1 untuned and tuned, the reference noise and a collar test, false alarms on audio without speech, the audio the decoder receives, word error rate on clean talks and on composites with inserted music and noise, the cost of the 30 s hard cut, and the limits. Update the guidance. Silero stays the always-on gate, the Redux head suits long recordings that are mostly speech, and the gate is opt-in. The fusion gain of the synthetic experiment did not hold on real recordings (+0.10 and +0.46 F1 points, no word error rate gain), so fusion is not built. Assisted-by: Claude:claude-sonnet-5-5 [Claude Code] * scripts: add the real-recording VAD study Add the scripts of the study (data fetch, probability dump, a Python replica of the segmenter, frame and decoder scoring, WER reports) and the small result tables, with a README on how to rerun them. Paths are environment variables. verify_gate.py checks the C++ run gate against the Python gate on stored probabilities. No audio, probabilities or models. Assisted-by: Claude:claude-sonnet-5-5 [Claude Code] --------- Co-authored-by: Ettore Di Giacinto <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 9a28a3c - Browse repository at this point
Copy the full SHA 9a28a3cView commit details
Commits on Oct 7, 2026
-
fix: use 64-bit seek/tell that MSVC has in the bundle loader (#97)
fseeko and ftello are POSIX only, so the Windows cpu, cuda and vulkan builds of v0.6.0 failed with C3861 in model_loader.cpp and the release job was skipped. Wrap them in two small helpers that call _fseeki64 and _ftelli64 on Windows and keep fseeko/ftello elsewhere. Assisted-by: Claude:claude-sonnet-5-5 [Claude Code] Co-authored-by: Ettore Di Giacinto <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 5c9b0fb - Browse repository at this point
Copy the full SHA 5c9b0fbView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v0.6.0...v0.6.1