mattttvaughn / chronicle

GNU General Public License v3.0
222 stars 59 forks source link

Feature Request - softer "Skip silent audio" as an option #90

Open spammy1337 opened 2 years ago

spammy1337 commented 2 years ago

Hi! I love the feature "Skip silent audio" and i use it alot, so thank you kindly for adding it! I would want a optional softer version, that doesn't cut those short breaks like comma's and end of sentences, but still reduce those "end of casette side"- and chapter-pauses.

I suggest adding a third option to the "Skip silent audio"-setting, where it currently is only "On" and "Off", adding "On, natural" or possibly a second option to manually set the breaking-point value that activates this feature, for instance with a slider. That breaking-point is referring to the value used to (compare with and to) check if "this_pause" is long enough to be shortened.

The goal is to be able to filter out those longer pauses, like chapters or end of tape side, cutting them down to a pause about the same length as the breaking-point value, but without changing those natural linguistic pauses for commas, dots and other rhythmic variations, witch are typically well below that suggested "natural mode" b-p value.

The current "level" of things, the "skip silent audio" feature is quite impressive and welcome feature in a audiobook player, but as a audiobook-consumer that listens to several languages, the natural pauses helps a lot with text absorption for so many reasons. So the current setting is fine if your desire is to finish the audio book quickly and you're fluent in that particular language, so please add a secondary on-mode or variable pause-duration rather than changing its current fixed breaking-point value.

I wish i could just whip this up and post a pull request but i do not know any java, only C.. :/

mattttvaughn commented 2 years ago

Good idea! I'd be fine with a better-tuned implementation replacing the current one entirely as well, though that could be up for discussion.

Implementation seems fairly simple. Exoplayer SilenceSkippingAudioProcessor docs here if anyone is interested in looking into this. Only did a brief check, not sure the lift of integrating an AudioProcessor but I'd guess this wouldn't be too difficult.