| 48 | } |
| 49 | |
| 50 | StableAudioRequest clamp_request_to_model_limit(StableAudioRequest request, const StableAudioConfig & config) { |
| 51 | if (config.sample_rate <= 0 || config.sample_size <= 0) { |
| 52 | throw std::runtime_error("Stable Audio model duration limit is invalid"); |
| 53 | } |
| 54 | const float max_seconds = static_cast<float>(config.sample_size) / static_cast<float>(config.sample_rate); |
| 55 | for (float & duration : request.durations_seconds) { |
| 56 | duration = std::min(duration, max_seconds); |
| 57 | } |
| 58 | return request; |
| 59 | } |
| 60 | |
| 61 | void clamp_and_truncate_audio( |
| 62 | runtime::AudioBuffer & audio, |