MCPcopy Create free account
hub / github.com/0xShug0/audio.cpp / denoise_file

Function denoise_file

src/framework/audio/utility_api.cpp:80–112  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

78} // namespace
79
80void denoise_file(
81 const std::filesystem::path & input_wav,
82 const std::filesystem::path & output_wav,
83 std::string_view model,
84 const AudioUtilityPaths & paths) {
85 if (model == "deepfilternet2") {
86 const auto denoiser = DeepFilterNet2Model::load_from_directory(require_model_dir(paths, "deepfilternet2"), paths.backend);
87 const auto input = read_mono_resampled(input_wav, 48000);
88 const auto output = denoiser.run_mono_48k(input);
89 create_output_parent(output_wav);
90 write_pcm16_wav(output_wav, output.sample_rate, 1, output.samples);
91 return;
92 }
93 if (model == "rnnoise") {
94 const auto denoiser = RnnoiseModel::load_from_safetensors(
95 require_model_dir(paths, "rnnoise") / "rnnoise10Gb_15.safetensors",
96 paths.backend);
97 const auto input = read_mono_resampled(input_wav, 48000);
98 const auto output = denoiser.process_mono_48k(input);
99 create_output_parent(output_wav);
100 write_pcm16_wav(output_wav, output.sample_rate, 1, output.samples);
101 return;
102 }
103 if (model == "zipenhancer") {
104 const auto denoiser = ZipEnhancerModel::load_from_directory(require_model_dir(paths, "zipenhancer"), paths.backend);
105 const auto input = read_mono_resampled(input_wav, 16000);
106 const auto output = denoiser.denoise_mono_16k(input);
107 create_output_parent(output_wav);
108 write_pcm16_wav(output_wav, output.sample_rate, 1, output.samples);
109 return;
110 }
111 throw_unsupported_model("denoise", model, "deepfilternet2, rnnoise, zipenhancer");
112}
113
114AudioUtilityBatchResult denoise_directory(
115 const std::filesystem::path & input_dir,

Callers 1

mainFunction · 0.85

Calls 8

require_model_dirFunction · 0.85
read_mono_resampledFunction · 0.85
create_output_parentFunction · 0.85
throw_unsupported_modelFunction · 0.85
run_mono_48kMethod · 0.80
process_mono_48kMethod · 0.80
denoise_mono_16kMethod · 0.80
write_pcm16_wavFunction · 0.70

Tested by 1

mainFunction · 0.68