Expand description
§zk-audio
A Rust library for real-time audio capture, voice enhancement, and microphone simulation.
§Features
- Native Audio Capture - CPAL-based cross-platform audio input
- Voice Enhancement Pipeline - 19 DSP processor stages for professional voice quality
- Microphone Simulation - Emulate classic microphones (Neumann U87, Shure SM7B, etc.)
- Profile-Based Processing - Pre-configured profiles for different environments
- WAV Output - Built-in WAV encoding
§Quick Start
use zk_audio::{AudioProfile, NativeCaptureBackend, CaptureBackend};
use std::path::PathBuf;
let config = zk_audio::NativeCaptureConfig::new(
PathBuf::from("recording.wav"),
AudioProfile::VoiceClean,
);
let backend = NativeCaptureBackend::new();
let mut recording = backend.start(config).unwrap();
// ... recording happens here ...
let diagnostics = recording.stop().unwrap();§Audio Profiles
AudioProfile::Raw- No processing, for reference recordingsAudioProfile::VoiceClean- Light processing for quiet environmentsAudioProfile::VoiceNoisyRoom- Moderate noise reductionAudioProfile::VoiceHvac- Aggressive HVAC noise suppression
§Platform Support
Currently supports Linux via PipeWire/PulseAudio. macOS and Windows are planned.
§Feature Flags
native-capture(default) - Enables CPAL-based native audio capture
Re-exports§
pub use builder::NativePipelineBuilder;pub use builder::PipelineBuildRequest;pub use contracts::AudioProcessor;pub use contracts::AudioSink;pub use contracts::CaptureBackend;pub use contracts::DeviceEnumerator;pub use contracts::MetricsCollector;pub use contracts::ProcessorBuildRequest;pub use contracts::ProcessorFactory;pub use core::ActiveListening;pub use core::ActiveRecording;pub use core::AudioProfile;pub use core::CaptureDiagnostics;pub use core::DelayEffectConfig;pub use core::DelayEffectPreset;pub use core::NativeCaptureConfig;pub use core::ProcessorOverrideMode;pub use core::SUPPORTED_AUDIO_PROFILES;pub use core::SUPPORTED_DELAY_EFFECT_PRESETS;pub use factory::ProfileProcessorFactory;pub use mic_sim::MicrophoneSimConfig;pub use mic_sim::MicrophoneSimModel;pub use mic_sim::MicrophoneSimulatorFactory;pub use mic_sim::SUPPORTED_MICROPHONE_SIM_MODELS;pub use native::NativeCaptureBackend;pub use native::list_input_devices;pub use native::set_default_input_device;pub use profiles::ProcessorStage;pub use profiles::SUPPORTED_PROCESSOR_STAGES;pub use types::AudioBlock;pub use types::ProcessContext;pub use types::ProcessorInfo;pub use types::SinkReport;