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

Function denoise_directory

src/framework/audio/utility_api.cpp:114–156  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

112}
113
114AudioUtilityBatchResult denoise_directory(
115 const std::filesystem::path & input_dir,
116 const std::filesystem::path & output_dir,
117 std::string_view model,
118 const AudioUtilityPaths & paths) {
119 if (model != "deepfilternet2" && model != "rnnoise" && model != "zipenhancer") {
120 throw_unsupported_model("denoise", model, "deepfilternet2, rnnoise, zipenhancer");
121 }
122 AudioUtilityBatchResult result;
123 if (model == "deepfilternet2") {
124 const auto denoiser = DeepFilterNet2Model::load_from_directory(require_model_dir(paths, "deepfilternet2"), paths.backend);
125 for (const auto & input_file : sorted_wav_files(input_dir)) {
126 const auto output_file = output_path_for(input_file, output_dir, "_deepfilternet2");
127 const auto input = read_mono_resampled(input_file, 48000);
128 const auto output = denoiser.run_mono_48k(input);
129 write_pcm16_wav(output_file, output.sample_rate, 1, output.samples);
130 result.outputs.push_back(output_file);
131 }
132 return result;
133 }
134 if (model == "zipenhancer") {
135 const auto denoiser = ZipEnhancerModel::load_from_directory(require_model_dir(paths, "zipenhancer"), paths.backend);
136 for (const auto & input_file : sorted_wav_files(input_dir)) {
137 const auto output_file = output_path_for(input_file, output_dir, "_zipenhancer");
138 const auto input = read_mono_resampled(input_file, 16000);
139 const auto output = denoiser.denoise_mono_16k(input);
140 write_pcm16_wav(output_file, output.sample_rate, 1, output.samples);
141 result.outputs.push_back(output_file);
142 }
143 return result;
144 }
145 const auto denoiser = RnnoiseModel::load_from_safetensors(
146 require_model_dir(paths, "rnnoise") / "rnnoise10Gb_15.safetensors",
147 paths.backend);
148 for (const auto & input_file : sorted_wav_files(input_dir)) {
149 const auto output_file = output_path_for(input_file, output_dir, "_rnnoise");
150 const auto input = read_mono_resampled(input_file, 48000);
151 const auto output = denoiser.process_mono_48k(input);
152 write_pcm16_wav(output_file, output.sample_rate, 1, output.samples);
153 result.outputs.push_back(output_file);
154 }
155 return result;
156}
157
158void super_resolve_file(
159 const std::filesystem::path & input_wav,

Callers 1

mainFunction · 0.85

Calls 9

throw_unsupported_modelFunction · 0.85
require_model_dirFunction · 0.85
sorted_wav_filesFunction · 0.85
output_path_forFunction · 0.85
read_mono_resampledFunction · 0.85
run_mono_48kMethod · 0.80
denoise_mono_16kMethod · 0.80
process_mono_48kMethod · 0.80
write_pcm16_wavFunction · 0.70

Tested by 1

mainFunction · 0.68