Skip to content

Conversation

phreed
Copy link
Contributor

@phreed phreed commented Sep 10, 2025

RNNoise is a noise suppression library based on a recurrent neural network developed by the Xiph.Org Foundation. This recipe provides:

  • Cross-platform build support (Linux, macOS, Windows)
  • Proper CMake configuration with custom CMakeLists.txt
  • Nushell-based build script for consistent cross-platform builds
  • Comprehensive testing for library and header installation
  • pkg-config support on Unix platforms
  • Custom CMake configuration template (rnnoise-config.cmake.in)

Key features of RNNoise:

  • Real-time noise suppression using deep learning
  • Optimized for speech enhancement with low computational overhead
  • Works on 48 kHz mono audio streams
  • GRU-based recurrent neural network architecture
  • Effective at removing background noise and enhancing voice quality

This library is particularly useful for VoIP applications, streaming services, and any real-time audio processing scenarios requiring noise reduction capabilities.

Checklist

  • Title of this PR is meaningful: e.g. "Adding my_nifty_package", not "updated meta.yaml".
  • License file is packaged (see here for an example).
  • Source is from official source.
  • Package does not vendor other packages. (If a package uses the source of another package, they should be separate packages or the licenses of all packages need to be packaged).
  • If static libraries are linked in, the license of the static library is packaged.
  • Package does not ship static libraries. If static libraries are needed, follow CFEP-18.
  • Build number is 0.
  • A tarball (url) rather than a repo (e.g. git_url) is used in your recipe (see here for more details).
  • GitHub users listed in the maintainer section have posted a comment confirming they are willing to be listed there.
  • When in trouble, please check our knowledge base documentation before pinging a team.

RNNoise is a noise suppression library based on a recurrent neural network
developed by the Xiph.Org Foundation. This recipe provides:

- Cross-platform build support (Linux, macOS, Windows)
- Proper CMake configuration with custom CMakeLists.txt
- Nushell-based build script for consistent cross-platform builds
- Comprehensive testing for library and header installation
- pkg-config support on Unix platforms
- Custom CMake configuration template (rnnoise-config.cmake.in)

Key features of RNNoise:
- Real-time noise suppression using deep learning
- Optimized for speech enhancement with low computational overhead
- Works on 48 kHz mono audio streams
- GRU-based recurrent neural network architecture
- Effective at removing background noise and enhancing voice quality

This library is particularly useful for VoIP applications, streaming
services, and any real-time audio processing scenarios requiring
noise reduction capabilities.
@phreed phreed marked this pull request as draft September 10, 2025 20:43
Copy link
Contributor

Hi! This is the staged-recipes linter and your PR looks excellent! 🚀

@conda-forge-admin
Copy link
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipes/rnnoise/recipe.yaml) and found it was in an excellent condition.

phreed and others added 7 commits September 12, 2025 11:31
The Windows build was failing because the vec.h file includes os_support.h,
but this file doesn't exist in the original RNNoise source. The os_support.h
file is provided in the recipe directory but needs to be copied to the src/
directory where the build expects to find it.

Fixes build error: 'Cannot open include file: os_support.h': No such file or directory
The Windows build was failing because the vec.h file includes
os_support.h, but this file doesn't exist in the original RNNoise
source. The os_support.h file is provided in the recipe directory but
needs to be copied to the src/ directory where the build expects to find
it.

Fixes build error: 'Cannot open include file: os_support.h': No such
file or directory
@phreed phreed marked this pull request as ready for review September 17, 2025 14:41
@phreed
Copy link
Contributor Author

phreed commented Sep 30, 2025

@conda-forge/help-c-cpp review-requested

Comment on lines +4 to +5
version: "0.2"
model_version: "0b50c45"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you explain in a comment how this two are related? This can be useful for future maintainers.

providing a robust foundation for future development while maintaining full compatibility with existing software that depends on the RNNoise library.

The modular design with dedicated model management makes the recipe more maintainable and provides clear separation of concerns,
while the CMake-based build system offers better cross-platform consistency and performance.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems AI-generated and a bit difficult to mantain. While simple README for recipes make sense, I am not sure if this is particularly useful, what do you think?

@traversaro
Copy link
Contributor

Thanks for the contribution @phreed ! Just to understand, conda-forge has full support for building packages with autotools (also on Windows), see for example:

or you can search for any use of the autotools_clang_conda helper package. There is any specific reason for not using those tools instead of having a custom CMakeLists.txt in the recipe that may diverge w.r.t. to upstream?

@phreed
Copy link
Contributor Author

phreed commented Oct 13, 2025

Thanks for the contribution @phreed ! Just to understand, conda-forge has full support for building packages with autotools (also on Windows), see for example:

* [conda-forge/ffmpeg-feedstock@`main`/recipe](https://github.com/conda-forge/ffmpeg-feedstock/tree/main/recipe?rgh-link-date=2025-10-11T16%3A09%3A35Z)

* [conda-forge/ipopt-feedstock@`main`/recipe](https://github.com/conda-forge/ipopt-feedstock/tree/main/recipe?rgh-link-date=2025-10-11T16%3A09%3A35Z)

or you can search for any use of the autotools_clang_conda helper package. There is any specific reason for not using those tools instead of having a custom CMakeLists.txt in the recipe that may diverge w.r.t. to upstream?

I will take a look at those two feedstocks.
I was under the impression that cmake was preferred over autotools on conda-forge (especially when Windows is involved).
I guess that was wrong?

@conda-forge-admin
Copy link
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I wanted to let you know that I linted all conda-recipes in your PR (recipes/rnnoise/recipe.yaml) and found some lint.

Here's what I've got...

For recipes/rnnoise/recipe.yaml:

This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/18481208100. Examine the logs at this URL for more detail.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants