Improvements to the Skip Silence system

App version: 2.0.2 (ee4b2c055)

Feature you want:

The skip silence feature that comes bundled with ExoPlayer is far far too aggressive by default. It cuts out all silences longer than 150ms, with only 20ms of padding. This causes 2 problems:

  • Natural gaps in speech (moments of quiet between sentences, and even short hesitations between words) get completely cut out, causing sentences and words to run into each other
  • In some cases, someone speaking quietly can actually have parts of the words they are saying be cut out

The net result of this is that for a lot of podcasts, the “Skip Silences” feature is completely useless - it makes the conversation very difficult to comprehend.

Over on the Github, someone proposed that we should make skip silence configurable, but I don’t think that’s the correct solution. As the “Why not add an option for that” article says, sometimes users ask for options when what they really want is for a bug (or poor design choice) to be fixed.

Suggested solution:

The Skip Silence feature should be less aggressive. It should only skip silences longer than (say) 500ms, and should have more than 20ms padding.

These less aggressive settings would probably suit most podcasts better, and make the Skip Silences feature more genuinely useful.

Technical details:

In terms of technical details, it is possible to configure ExoPlayer’s skip silence feature, however it looks a bit fiddly. Depending on how complex this would be to integrate into the current way we use ExoPlayer, we may have to wait for them to make this less of a pain.

Other users?

Before proposing that we should definitely do this for sure, I’m curious:

  • are there many people who use the skip silences feature and don’t mind how aggressive it currently is?
  • are there any users who like how aggressive it is?
  • how many users would object to this change?

Skip silence is a nice feature but I don’t use it mainly because it’s too aggressive.
I would if you could set length of silence you want to skip and set how much seconds silence to replace it.

What I mean is if there is a silence for 1 minutes replace it with a silence of 5/10 seconds.

2 Likes

Instead of making it configurable, let’s work on making skip silence do the right thing. I am sure either myself or another contributor will take a look at the code for skip silence.

2 Likes

I am voting for making it configurable (and have some sane defaults).

Possible configurations:

  • configure the threshold (noisy podcasts) (is that dynamic?)
  • configure what to do with silence, I see 2 options:
    • reduce all silence longer than X to X
    • reduce all silence by a factor, so a silence of X would become to X / Z
2 Likes

I would also like to chime in for this. I just migrated to AntennaPod from Pocket Casts and that app also had a similar deal with skip silence going on several years ago that I actually asked them to work on and they ended up tuning it to be less aggressive enough that now it’s not noticeable and sentences sound way more natural. I think they did as other users in here have suggested and just increased the minimum amount of time silence will be trimmed down to.

I also recognize this now in one of my favorite podcasts. Playing it from their website - all good. But it is not happening with all podcasts.

Either the last update changed something or the podcast producers changed their post-edit workflow and added real silence parts in between what made ExoPlayer react like this.

Maybe the tweak in the code was accidentally reverted or something similar.

1 Like

I am having this experience, also. The skip silence used to skip dead air and I never noticed it and speakers sounded natural. Now it makes most podcasts sound “modern,” like TikTok or YouTube shorts. It’s jarring and makes me feel like a boomer, LOL.

Whatever changed with the last update, please either change it back or provide an interface to turn it off/put it back the way it was. Thanks very much.

If you’re going to change it, let it be configurable. I listen to audiobooks at 1.5x speed with skip silence. Don’t alienate the people who like fast paced audio files. I use it because the 500ms pauses between every sentence in an audiobook is sluggish.

There are several settings: silence threshold, silence truncation length, silence padding.

For example: Anything quieter than -25db is treated as silence. If silence is longer than 200ms, then take the beginning of the silence +25ms of padding, begin the cut, then add 200ms of silence, then end the cut 25ms before the -25db threshold is past.

Silence threshold is “how quiet does it need to be in order to consider it for truncation”. Sometimes you’ll have room noise on the podcast or audio file that is quite loud, so being able to customize the quiet threshold helps us avoid NOT skipping audio that should be skipped. This could also be achieved with a noise removal technique, but that is beyond the scope of silence remover.

Silence truncation length is the amount of silence we put back into the cut after we have marked the beginning and ending of the silence.

The padding is added to the end and beginning of the loud parts, so that words don’t end or start abruptly.