try to run denoising
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
use crossbeam::atomic::AtomicCell;
|
||||
use std::sync::Arc;
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct AudioProcessor {
|
||||
df: Option<::df::DFState>,
|
||||
}
|
||||
|
||||
impl AudioProcessor {
|
||||
pub fn new_denoising() -> Self {
|
||||
let df = ::df::DFState::default();
|
||||
AudioProcessor { df: Some(df) }
|
||||
}
|
||||
}
|
||||
|
||||
impl AudioProcessor {
|
||||
pub fn process(&mut self, audio: &[f32]) -> Box<[f32]> {
|
||||
let mut output: Box<[f32]> = vec![0f32; audio.len()].into();
|
||||
if let Some(df) = &mut self.df {
|
||||
df.process_frame(audio, &mut output);
|
||||
} else {
|
||||
output.copy_from_slice(audio);
|
||||
}
|
||||
output
|
||||
}
|
||||
}
|
||||
|
||||
pub type AudioProcessorSender = Arc<AtomicCell<Option<AudioProcessor>>>;
|
||||
Reference in New Issue
Block a user