Crate charon_audio

Crate charon_audio 

Source
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