| 65 | } |
| 66 | |
| 67 | void run_case(int case_index) { |
| 68 | const auto model = engine::audio::FlashSrModel::load_from_directory( |
| 69 | repo_path("assets/framework/audio_utilities/flashsr")); |
| 70 | const auto fixture = engine::assets::open_tensor_source( |
| 71 | asset_path("framework/audio_utilities/flashsr/flashsr_case" + std::to_string(case_index) + ".safetensors")); |
| 72 | const auto input = fixture->require_f32_tensor("audio_values"); |
| 73 | const auto expected = fixture->require_f32_tensor("reconstruction"); |
| 74 | require(input.shape.rank == 2 && input.shape.dims[0] == 1, "FlashSR input shape mismatch"); |
| 75 | const auto output = model.super_resolve_mono_16k(input.values); |
| 76 | require(output.sample_rate == 48000, "FlashSR sample rate mismatch"); |
| 77 | require_close(output.samples, expected, 2.0e-4f, 2.0e-5, "case " + std::to_string(case_index)); |
| 78 | } |
| 79 | |
| 80 | } // namespace |
| 81 |
no test coverage detected