FrostCo / AdvancedProfanityFilter

A browser extension to filter profanity from webpages
GNU General Public License v3.0
159 stars 26 forks source link

Make It Only Censor The Bad Word But Not The Entire Caption #552

Open ThAt1WeEbK1d opened 2 months ago

ThAt1WeEbK1d commented 2 months ago

IT CENSORS THE ENTIRE CAPTION (lets say its 10 wordlong) AND I CANT HEAR THE !!!NOT!!! BAD WORDS, MAKE IT SO IT ONLY CENSORS THE ONE IN THE SPECIFC TIME THE GUY IN THE VIDEO SAYS IT, PLEASE!!!!!!!!!!!! TALK TO ME WHEN YOU CAN!!!!!!!!!!!!!!

ThAt1WeEbK1d commented 1 month ago

Can someone please fix this!

richardfrost commented 1 month ago

Hi @ThAt1WeEbK1d,

This is related to #484, which is definitely something that would be great to have, but unfortunately it is not trivial, and may not even be possible in many cases. The filter works based on the video's captions/subtitles. On most sites, it watches for changes on the page, which means the filter doesn't know in advance when a phrase will start, or end. It can only observe when it appears, and when it leaves.

Even if you could figure out a perfect algorithm to know if a phrase has 6 words, with a duration of 6 seconds, and you knew that each word was exactly 1 second each (very unlikely to happen in the real-word), you could target a single word, we still don't have enough information to precisely mute and unmute because we don't know that it has a 6 second duration until it has been removed from the page.

On some sites it is possible for the filter to get the entire set of captions, including start and end times for phrases. For sites like that it does open up a lot of possibilities for us to potentially try to work out an algorithm. I've played around with it a bit, and while sometimes it works really well, it can also have really bad times too, where it will mute right before the word that should be muted only to unmute just in time to let you hear the entire word. This is primarily because there is a lot of nuance to spoken language. For instance, the same phrase might be said with a lot of extra pauses if trying to build suspense, or maybe really fast to show or cause panic. I do hope to get something for people to play around with based on that issue I linked, but will definitely encourage people to test it thoroughly with a movie before relying on it, because even if it works the first 10 times, that doesn't mean it will work on the 11th filtered phrase. Realistically I'm hoping that we'll be able to cut muting time down by 50% and still be pretty reliable. I may be able to make that more configurable so people that want to "live on the edge" and have much shorter mute times with a great chance of profanity getting through, so hopefully it can appeal to more tastes.

Basically, its a really hard issue to solve without better data. Practically speaking in the best case scenario we have the start and end time of a phrase (again, not on most sites), but no timing for individual words. At best with an algorithm to guess at timing (based on words, letters, syllables, etc.) we'll be able to get it right some of the time, but it will have issues. This project, especially the audio muting feature, is first and foremost a profanity filter, so the priority is to ensure profanity doesn't make it through. Obviously it falls short due to captions/subtitles not having correct timing, or misspellings or missed words in the text, but if those things are correct it should work really well and not let things through.

ThAt1WeEbK1d commented 1 month ago

thank you and thank you for your extension and thank you for your reply, can you recommend me a way where i can learn how to carefully adjust my settings to get the feature i want from the options menu of your extension? for example the what number i should figure out what to put in the unmute delay and/or youtube muting min/max. i am not asking what settings what i should put, i am saying how do i figure what number i should put in myself

richardfrost commented 1 month ago

You're welcome @ThAt1WeEbK1d. Right now there isn't a lot of adjustment that can be made in the filter, most of what I was describing will hopefully be introduced in the future. That said, those settings you mentioned do provide a bit of control. Here is the explanation on those settings from the help page:

YouTube Minimum Muting - Set a minimum amount of time (in seconds) that the filter will mute matched words in a YouTube video using auto-generated subtitles. (The default is 0) YouTube Maximum Muting - Similar to Minimum muting, but this will only allow a single mute to last this long in seconds. Most commonly used when YouTube auto-generated subtitles have a break between words, like the end of a conversation, and the last word is a filtered word. When that happens the last word may stay there for several seconds (or longer) until the next word is spoken.

Since these only apply to auto-generated captions, they may not have much of an effect for you depending on the videos you are watching on YouTube. Video's with auto-generated captions should already only mute a single word instead of a whole phrase. If you are wanting to reduce mute times, it would be the YouTube Maximum Muting setting, which will allow you to set a maximum time the filter will mute for, again, only on videos that have auto-generated captions on YouTube.