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

Function main

tests/unittests/test_audio_utility_api.cpp:63–119  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

61} // namespace
62
63int main() {
64 try {
65 const auto root = std::filesystem::temp_directory_path() / "audio_cpp_audio_utility_api_test";
66 std::filesystem::remove_all(root);
67 std::filesystem::create_directories(root);
68 const engine::audio::AudioUtilityPaths paths{repo_path("assets/framework/audio_utilities"), cuda_backend()};
69
70 const auto input48 = root / "input48.wav";
71 engine::audio::write_pcm16_wav(input48, 48000, 1, tone(48000, 1920, 220.0f));
72 const auto rnnoise_out = root / "rnnoise.wav";
73 engine::audio::denoise_file(input48, rnnoise_out, "rnnoise", paths);
74 require_wav_shape(rnnoise_out, 48000);
75
76 const auto dfn_out = root / "deepfilternet2.wav";
77 engine::audio::denoise_file(input48, dfn_out, "deepfilternet2", paths);
78 require_wav_shape(dfn_out, 48000);
79
80 const auto input16 = root / "input16.wav";
81 engine::audio::write_pcm16_wav(input16, 16000, 1, tone(16000, 800, 330.0f));
82 const auto zipenhancer_out = root / "zipenhancer.wav";
83 engine::audio::denoise_file(input16, zipenhancer_out, "zipenhancer", paths);
84 require_wav_shape(zipenhancer_out, 16000);
85
86 const auto flashsr_out = root / "flashsr.wav";
87 engine::audio::super_resolve_file(input16, flashsr_out, "flashsr", paths);
88 require_wav_shape(flashsr_out, 48000);
89
90 const auto input_dir = root / "batch_in";
91 const auto output_dir = root / "batch_out";
92 std::filesystem::create_directories(input_dir);
93 engine::audio::write_pcm16_wav(input_dir / "one.wav", 48000, 1, tone(48000, 1440, 200.0f));
94 engine::audio::write_pcm16_wav(input_dir / "two.wav", 48000, 1, tone(48000, 1440, 300.0f));
95 const auto rnnoise_batch = engine::audio::denoise_directory(input_dir, output_dir / "rnnoise", "rnnoise", paths);
96 require(rnnoise_batch.outputs.size() == 2, "RNNoise directory output count mismatch");
97 for (const auto & output : rnnoise_batch.outputs) {
98 require_wav_shape(output, 48000);
99 }
100
101 const auto zipenhancer_batch = engine::audio::denoise_directory(input_dir, output_dir / "zipenhancer", "zipenhancer", paths);
102 require(zipenhancer_batch.outputs.size() == 2, "ZipEnhancer directory output count mismatch");
103 for (const auto & output : zipenhancer_batch.outputs) {
104 require_wav_shape(output, 16000);
105 }
106
107 const auto flashsr_batch = engine::audio::super_resolve_directory(input_dir, output_dir / "flashsr", "flashsr", paths);
108 require(flashsr_batch.outputs.size() == 2, "FlashSR directory output count mismatch");
109 for (const auto & output : flashsr_batch.outputs) {
110 require_wav_shape(output, 48000);
111 }
112
113 std::cout << "audio_utility_api_test passed\n";
114 } catch (const std::exception & ex) {
115 std::cerr << "audio_utility_api_test failed: " << ex.what() << "\n";
116 return 1;
117 }
118 return 0;
119}

Callers

nothing calls this directly

Calls 11

toneFunction · 0.85
denoise_fileFunction · 0.85
require_wav_shapeFunction · 0.85
super_resolve_fileFunction · 0.85
denoise_directoryFunction · 0.85
super_resolve_directoryFunction · 0.85
repo_pathFunction · 0.70
cuda_backendFunction · 0.70
requireFunction · 0.70
write_pcm16_wavFunction · 0.50
sizeMethod · 0.45

Tested by

no test coverage detected