Replies: 3 comments 1 reply
|
Seems like a useful one for sure if we can make it without increasing latency in any way and prove the approach works well :)) Happy to collab on a PR if you're down!! |
|
Thanks @altic-dev — absolutely, and thank you for being open to collaborating on this. I benchmarked the exact candidate gate on Apple Silicon before opening the PR:
Benchmark report and method: https://github.com/aaldrich/FluidVoice/blob/pr-assets/low-level-background-audio-filter/latency-benchmark.md I am preparing the PR now and will link it back here. The filter remains a separate opt-in setting, disabled by default, and the existing Skip Silent Recordings behavior stays unchanged. |
|
Thanks again, @altic-dev. The PR is now ready for review: #993 It links back to this Discussion and includes the opt-in setting, regression coverage, Settings screenshot, benchmark report, and AI-assistance disclosure. I am happy to adjust the naming, thresholds, or architecture based on your review. |
Uh oh!
There was an error while loading. Please reload this page.
Problem
During a long push-to-talk dictation, extremely faint background audio can reach the streaming recognizer and produce unwanted live previews and final text even when the user never speaks.
I reproduced this with a wireless microphone while a television played faintly in the background:
In one 27.5-second reproduction, the captured audio averaged approximately -76.9 dB and satisfied FluidVoice's existing clear-silence thresholds, but the streaming recognizer still interpreted the faint television audio as speech and inserted text.
The existing Skip Silent Recordings option does not address this path. It is a post-capture check for recordings up to four seconds, while streaming ASR receives the raw PCM during recording.
Proposed direction
Add a separate opt-in setting:
Filter Low-Level Background Audio
When enabled, a lightweight activity gate would process the 16 kHz mono PCM before it enters streaming or final ASR:
This would be separate from Skip Silent Recordings, which would retain its current behavior. The new filter would be disabled by default because unusually quiet speech could otherwise be suppressed.
Validation completed
I have a candidate implementation ready, but I am starting with this Discussion before opening a pull request.
It has been tested against:
Strict SwiftLint and the full macOS Apple Silicon Xcode test suite pass. The real-world silent-TV reproduction is rejected while normal speech and speech separated by pauses remain intact.
Questions
AI assistance disclosure
The candidate implementation was developed with AI assistance. The resulting patch has been validated through synthetic regression tests, strict linting, the complete Apple Silicon test suite, and real-world reproduction testing. I will remain responsible for responding to review feedback and maintaining the contribution.
All reactions