| 80 | } |
| 81 | |
| 82 | void run_case(const engine::audio::ZipEnhancerModel & model, int case_index) { |
| 83 | const auto fixture = engine::assets::open_tensor_source( |
| 84 | asset_path("framework/audio_utilities/zipenhancer/zipenhancer_case" + std::to_string(case_index) + ".safetensors")); |
| 85 | const auto input = fixture->require_f32_tensor("input"); |
| 86 | const auto expected = fixture->require_f32_tensor("output"); |
| 87 | require(input.shape.rank == 2 && input.shape.dims[0] == 1, "ZipEnhancer input shape mismatch"); |
| 88 | const auto output = model.denoise_mono_16k(input.values); |
| 89 | require(output.sample_rate == 16000, "ZipEnhancer sample rate mismatch"); |
| 90 | require_close(output.samples, expected, 3.0e-3f, 3.0e-4, "case " + std::to_string(case_index)); |
| 91 | } |
| 92 | |
| 93 | } // namespace |
| 94 |
no test coverage detected