Skip to content

docs: add earshot section to the README - #59

Merged
wavekat-eason merged 1 commit into
mainfrom
docs/earshot-readme
Aug 30, 2026
Merged

wavekat-eason merged 1 commit into
mainfrom
docs/earshot-readme

Conversation

@wavekat-eason

Copy link
Copy Markdown
Contributor

Follow-up to #55 / #57 / #58.

What was missing

#55 added Earshot to the backends table, the dependency snippet, and the feature-flag table — but not to the part of the README where each backend is actually explained. WebRTC, Silero, TEN-VAD and FireRedVAD each have a ### section with a description and a runnable example; Earshot went straight from the FireRedVAD example to the trait docs. Someone who enabled the feature had nowhere to look for how to construct it.

The new section follows the same shape as the other four and calls out the three things that differ from them:

  • construction is infallible, so there is no .unwrap() on new()
  • the frame size is exactly 256 samples, with a pointer to FrameAdapter for 20 ms / 320-sample transports
  • each detector holds ~8 KiB of streaming state, so one per stream, and reset() between streams

FrameAdapter::process_each

The adapter rework in #55 added process_each and made the allocation behaviour of each method meaningful, but the README still listed only the three older methods. Added it to the example, with a note on which methods allocate and what buffered_samples() reports — this is the method to reach for on a real-time path, and it was invisible.

Acknowledgements

Added the earshot crate (MIT OR Apache-2.0, by pyke — the same authors as ort, already credited).

Notes

  • Both new code examples were compiled and run against the crate. The README is not wired into doctests, so CI would not have caught a mistake in them.
  • I did not repeat upstream's accuracy claim. Their README states Earshot is more accurate than Silero VAD v6 and TEN VAD; on the TEN-VAD testset this crate benchmarks against, our measurement puts it at F1 0.928 — level with TEN-VAD and below Silero's 0.938, with the speed advantage intact. The benchmark table speaks for itself, so the section sticks to characteristics rather than comparisons.
  • The benchmark table itself is untouched. It is generated by the update-benchmarks job and chore: release v0.1.17 #56 already has the regenerated five-row version, so hand-editing it here would only conflict.

🤖 Generated with Claude Code

https://claude.ai/code/session_012PF9YKsA6GfchGTPDAWYzL

The earshot backend landed in the feature and backend tables but never
got the usage section every other backend has, so the README went from
FireRedVAD straight to the trait docs with no example for it.

- Adds an Earshot section in the same shape as the others, noting the
  infallible construction, the fixed 256-sample frame, and the ~8 KiB of
  per-stream state.
- Documents `FrameAdapter::process_each`, which was added alongside the
  backend and is the core the other methods are built on, along with
  which methods allocate.
- Credits the earshot crate in the acknowledgements.

Both code examples were compiled and run; the README is not doctested,
so this was checked separately.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012PF9YKsA6GfchGTPDAWYzL
@wavekat-eason
wavekat-eason merged commit 2f9fab6 into main Aug 30, 2026
11 checks passed
@wavekat-eason
wavekat-eason deleted the docs/earshot-readme branch August 30, 2026 01:11
@github-actions github-actions Bot mentioned this pull request Aug 30, 2026
wavekat-eason added a commit that referenced this pull request Aug 30, 2026
## 🤖 New release

* `wavekat-vad`: 0.1.16 -> 0.1.17 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

##
[0.1.17](v0.1.16...v0.1.17)
- 2026-08-30

### Added

- add pure-Rust earshot VAD backend
([#55](#55))

### Other

- add earshot section to the README
([#59](#59))
- add conformance suite and semver check
([#60](#60))
- cover earshot backend and frame adapter
([#57](#57))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Eason WaveKat <eason@wavekat.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant