omeryusufyagci / fast-music-remover

A C++ based, lightweight music and noise remover for YouTube and other internet media, using DeepFilterNet for audio enhancement.
MIT License
208 stars 22 forks source link

Improvement: Add DeepFilter Abstraction Layer to Core #25

Closed omeryusufyagci closed 1 month ago

omeryusufyagci commented 1 month ago

See, the in-place, hardcoded command here.

Updated issue scope and description:

VarunParab commented 1 month ago

Hi @omeryusufyagci. Could you please assign this issue to me? I'd like to work on implementing the filter abstraction layer.

omeryusufyagci commented 1 month ago

Thanks @VarunParab, you got it! Just a few adjustments:

Please take a quick look at the discussion in #4, where we decided to introduce a dedicated class for similar functionality (FFmpegController). The same principles apply here: we'll need a FilterController class to abstract the filter usage, making it generic and adaptable for future changes.

Feel free to reach out if you need more details!

omeryusufyagci commented 1 month ago

Hi @VarunParab, we've had a very similar objective for providing an abstraction layer for FFmpeg operations. Although what we have for filtering currently is a lot more straightforward, we can imagine in the future we may have multiple ML models and we may introduce more functionality with them.

In that sense, I'd prefer to follow the same principles we've decided during these discussions. Please see #45 for a global overview of the subject.

To provide a summary for you, here's what we'll be aiming for:

I realize this is quite an update, and indeed it's come from discussions with Scott as he was building the FFmpeg related functionality. If you're up for it, you can continue to work on the full package. Please let me know if the updated scope won't fit with your schedule and what you'd like to work on and we can readjust the workload. I will preemptively update this issue title and description, and I look forward to your feedback. Thanks!

omeryusufyagci commented 1 month ago

This is cancelled as the recently added DeepFilterCommandBuilder provides a good balance for its singular use within our core. Moving forward we'll prioritize using directly the DeepFilterNetFFI instead, which would likely require a different hierarchy. Please monitor our issues page if you'd like to work on these or other open issues.