Expand description
§Charon
Modern Rust music source separation library using state-of-the-art ML inference.
Charon provides a complete, pure-Rust implementation for audio source separation,
inspired by Demucs but built with modern Rust ML frameworks (ONNX Runtime via ort,
and HuggingFace Candle).
§Features
- Multiple ML Backends: Support for ONNX Runtime (production-ready, hardware accelerated) and Candle (pure Rust, flexible)
- Audio Processing: Complete audio I/O with Symphonia (decode any format), Rubato (high-quality resampling), and Hound (WAV encoding)
- Real-time Processing: Support for real-time audio separation using CPAL
- Hardware Acceleration: CUDA, TensorRT, Metal, Accelerate support
- Parallel Processing: Multi-threaded audio processing with Rayon
§Quick Start
use charon_audio::{Separator, SeparatorConfig};
// Create a separator with default settings
let separator = Separator::new(SeparatorConfig::default())?;
// Separate an audio file
let stems = separator.separate_file("input.mp3")?;
// Save individual stems
stems.save_all("output_dir")?;Re-exports§
pub use audio::AudioBuffer;pub use audio::AudioFile;pub use audio::AudioFormat;pub use error::CharonError;pub use error::Result;pub use model_zoo::ModelMetadata;pub use model_zoo::ModelZoo;pub use models::ModelBackend;pub use models::ModelConfig;pub use performance::AudioKNN;pub use performance::BatchProcessor;pub use performance::PerformanceHint;pub use performance::PerformanceHints;pub use performance::SimdOps;pub use processor::ProcessConfig;pub use processor::Processor;pub use realtime::RealtimeSeparator;pub use separator::Separator;pub use separator::SeparatorConfig;pub use separator::Stems;
Modules§
- audio
- Audio I/O and processing utilities
- error
- Error types for Charon
- model_
zoo - Pre-trained model zoo for easy model access
- models
- ML model backends and configuration
- performance
- Performance optimization utilities inspired by rust-imbalanced-learn
- processor
- Audio processing pipeline
- realtime
- Real-time audio processing with CPAL
- separator
- Main separator API
- utils
- Utility functions